--- 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 = .11 +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/kernel/vtime.c +++ linux-2.6.35/arch/s390/kernel/vtime.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include @@ -565,6 +566,23 @@ __ctl_set_bit(0,10); } +static int __cpuinit s390_nohz_notify(struct notifier_block *self, + unsigned long action, void *hcpu) +{ + struct s390_idle_data *idle; + long cpu = (long) hcpu; + + idle = &per_cpu(s390_idle, cpu); + switch (action) { + case CPU_DYING: + case CPU_DYING_FROZEN: + idle->nohz_delay = 0; + default: + break; + } + return NOTIFY_OK; +} + void __init vtime_init(void) { /* request the cpu timer external interrupt */ @@ -573,5 +591,6 @@ /* Enable cpu timer interrupts on the boot cpu. */ init_cpu_vtimer(); + cpu_notifier(s390_nohz_notify, 0); } --- linux-2.6.35.orig/arch/s390/kernel/nmi.c +++ linux-2.6.35/arch/s390/kernel/nmi.c @@ -95,7 +95,6 @@ static int notrace s390_revalidate_registers(struct mci *mci) { int kill_task; - u64 tmpclock; u64 zero; void *fpt_save_area, *fpt_creg_save_area; @@ -214,11 +213,10 @@ : "0", "cc"); #endif /* Revalidate clock comparator register */ - asm volatile( - " stck 0(%1)\n" - " sckc 0(%1)" - : "=m" (tmpclock) : "a" (&(tmpclock)) : "cc", "memory"); - + if (S390_lowcore.clock_comparator == -1) + set_clock_comparator(S390_lowcore.mcck_clock); + else + set_clock_comparator(S390_lowcore.clock_comparator); /* Check if old PSW is valid */ if (!mci->wp) /* --- linux-2.6.35.orig/arch/s390/lib/delay.c +++ linux-2.6.35/arch/s390/lib/delay.c @@ -29,17 +29,21 @@ { unsigned long mask, cr0, cr0_saved; u64 clock_saved; + u64 end; + mask = psw_kernel_bits | PSW_MASK_WAIT | PSW_MASK_EXT; + end = get_clock() + (usecs << 12); clock_saved = local_tick_disable(); - set_clock_comparator(get_clock() + (usecs << 12)); __ctl_store(cr0_saved, 0, 0); cr0 = (cr0_saved & 0xffff00e0) | 0x00000800; __ctl_load(cr0 , 0, 0); - mask = psw_kernel_bits | PSW_MASK_WAIT | PSW_MASK_EXT; lockdep_off(); - trace_hardirqs_on(); - __load_psw_mask(mask); - local_irq_disable(); + do { + set_clock_comparator(end); + trace_hardirqs_on(); + __load_psw_mask(mask); + local_irq_disable(); + } while (get_clock() < end); lockdep_on(); __ctl_load(cr0_saved, 0, 0); local_tick_enable(clock_saved); --- 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/um/kernel/uml.lds.S +++ linux-2.6.35/arch/um/kernel/uml.lds.S @@ -22,7 +22,7 @@ _text = .; _stext = .; __init_begin = .; - INIT_TEXT_SECTION(PAGE_SIZE) + INIT_TEXT_SECTION(0) . = ALIGN(PAGE_SIZE); .text : --- linux-2.6.35.orig/arch/um/os-Linux/time.c +++ linux-2.6.35/arch/um/os-Linux/time.c @@ -60,7 +60,7 @@ long long disable_timer(void) { struct itimerval time = ((struct itimerval) { { 0, 0 }, { 0, 0 } }); - int remain, max = UM_NSEC_PER_SEC / UM_HZ; + long long remain, max = UM_NSEC_PER_SEC / UM_HZ; if (setitimer(ITIMER_VIRTUAL, &time, &time) < 0) printk(UM_KERN_ERR "disable_timer - setitimer failed, " --- linux-2.6.35.orig/arch/um/drivers/line.c +++ linux-2.6.35/arch/um/drivers/line.c @@ -727,6 +727,9 @@ static void free_winch(struct winch *winch, int free_irq_ok) { + if (free_irq_ok) + free_irq(WINCH_IRQ, winch); + list_del(&winch->list); if (winch->pid != -1) @@ -735,8 +738,6 @@ os_close_file(winch->fd); if (winch->stack != 0) free_stack(winch->stack, 0); - if (free_irq_ok) - free_irq(WINCH_IRQ, winch); kfree(winch); } --- linux-2.6.35.orig/arch/um/drivers/ubd_kern.c +++ linux-2.6.35/arch/um/drivers/ubd_kern.c @@ -162,6 +162,7 @@ struct scatterlist sg[MAX_SG]; struct request *request; int start_sg, end_sg; + sector_t rq_pos; }; #define DEFAULT_COW { \ @@ -186,6 +187,7 @@ .request = NULL, \ .start_sg = 0, \ .end_sg = 0, \ + .rq_pos = 0, \ } /* Protected by ubd_lock */ @@ -1223,7 +1225,6 @@ { struct io_thread_req *io_req; struct request *req; - sector_t sector; int n; while(1){ @@ -1234,12 +1235,12 @@ return; dev->request = req; + dev->rq_pos = blk_rq_pos(req); dev->start_sg = 0; dev->end_sg = blk_rq_map_sg(q, req, dev->sg); } req = dev->request; - sector = blk_rq_pos(req); while(dev->start_sg < dev->end_sg){ struct scatterlist *sg = &dev->sg[dev->start_sg]; @@ -1251,10 +1252,9 @@ return; } prepare_request(req, io_req, - (unsigned long long)sector << 9, + (unsigned long long)dev->rq_pos << 9, sg->offset, sg->length, sg_page(sg)); - sector += sg->length >> 9; n = os_write_file(thread_fd, &io_req, sizeof(struct io_thread_req *)); if(n != sizeof(struct io_thread_req *)){ @@ -1267,6 +1267,7 @@ return; } + dev->rq_pos += sg->length >> 9; dev->start_sg++; } dev->end_sg = 0; --- linux-2.6.35.orig/arch/sparc/kernel/leon_kernel.c +++ linux-2.6.35/arch/sparc/kernel/leon_kernel.c @@ -114,7 +114,7 @@ if (leon3_gptimer_regs && leon3_irqctrl_regs) { LEON3_BYPASS_STORE_PA(&leon3_gptimer_regs->e[0].val, 0); LEON3_BYPASS_STORE_PA(&leon3_gptimer_regs->e[0].rld, - (((1000000 / 100) - 1))); + (((1000000 / HZ) - 1))); LEON3_BYPASS_STORE_PA(&leon3_gptimer_regs->e[0].ctrl, 0); #ifdef CONFIG_SMP @@ -128,7 +128,7 @@ } LEON3_BYPASS_STORE_PA(&leon3_gptimer_regs->e[1].val, 0); - LEON3_BYPASS_STORE_PA(&leon3_gptimer_regs->e[1].rld, (((1000000/100) - 1))); + LEON3_BYPASS_STORE_PA(&leon3_gptimer_regs->e[1].rld, (((1000000/HZ) - 1))); LEON3_BYPASS_STORE_PA(&leon3_gptimer_regs->e[1].ctrl, 0); # endif --- linux-2.6.35.orig/arch/sparc/include/asm/oplib_64.h +++ linux-2.6.35/arch/sparc/include/asm/oplib_64.h @@ -67,27 +67,6 @@ /* Boot argument acquisition, returns the boot command line string. */ extern char *prom_getbootargs(void); -/* Device utilities. */ - -/* Device operations. */ - -/* Open the device described by the passed string. Note, that the format - * of the string is different on V0 vs. V2->higher proms. The caller must - * know what he/she is doing! Returns the device descriptor, an int. - */ -extern int prom_devopen(const char *device_string); - -/* Close a previously opened device described by the passed integer - * descriptor. - */ -extern int prom_devclose(int device_handle); - -/* Do a seek operation on the device described by the passed integer - * descriptor. - */ -extern void prom_seek(int device_handle, unsigned int seek_hival, - unsigned int seek_lowval); - /* Miscellaneous routines, don't really fit in any category per se. */ /* Reboot the machine with the command line passed. */ @@ -109,33 +88,14 @@ /* Halt and power-off the machine. */ extern void prom_halt_power_off(void) __attribute__ ((noreturn)); -/* Set the PROM 'sync' callback function to the passed function pointer. - * When the user gives the 'sync' command at the prom prompt while the - * kernel is still active, the prom will call this routine. - * - */ -typedef int (*callback_func_t)(long *cmd); -extern void prom_setcallback(callback_func_t func_ptr); - /* Acquire the IDPROM of the root node in the prom device tree. This * gets passed a buffer where you would like it stuffed. The return value * is the format type of this idprom or 0xff on error. */ extern unsigned char prom_get_idprom(char *idp_buffer, int idpbuf_size); -/* Character operations to/from the console.... */ - -/* Non-blocking get character from console. */ -extern int prom_nbgetchar(void); - -/* Non-blocking put character to console. */ -extern int prom_nbputchar(char character); - -/* Blocking get character from console. */ -extern char prom_getchar(void); - -/* Blocking put character to console. */ -extern void prom_putchar(char character); +/* Write a buffer of characters to the console. */ +extern void prom_console_write_buf(const char *buf, int len); /* Prom's internal routines, don't use in kernel/boot code. */ extern void prom_printf(const char *fmt, ...); @@ -185,9 +145,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, @@ -279,34 +238,12 @@ extern int prom_setprop(int node, const char *prop_name, char *prop_value, int value_size); -extern int prom_pathtoinode(const char *path); extern int prom_inst2pkg(int); -extern int prom_service_exists(const char *service_name); extern void prom_sun4v_guest_soft_state(void); 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/oplib_32.h +++ linux-2.6.35/arch/sparc/include/asm/oplib_32.h @@ -60,25 +60,6 @@ extern char *prom_mapio(char *virt_hint, int io_space, unsigned int phys_addr, unsigned int num_bytes); extern void prom_unmapio(char *virt_addr, unsigned int num_bytes); -/* Device operations. */ - -/* Open the device described by the passed string. Note, that the format - * of the string is different on V0 vs. V2->higher proms. The caller must - * know what he/she is doing! Returns the device descriptor, an int. - */ -extern int prom_devopen(char *device_string); - -/* Close a previously opened device described by the passed integer - * descriptor. - */ -extern int prom_devclose(int device_handle); - -/* Do a seek operation on the device described by the passed integer - * descriptor. - */ -extern void prom_seek(int device_handle, unsigned int seek_hival, - unsigned int seek_lowval); - /* Miscellaneous routines, don't really fit in any category per se. */ /* Reboot the machine with the command line passed. */ @@ -121,19 +102,8 @@ /* Get the prom firmware revision. */ extern int prom_getprev(void); -/* Character operations to/from the console.... */ - -/* Non-blocking get character from console. */ -extern int prom_nbgetchar(void); - -/* Non-blocking put character to console. */ -extern int prom_nbputchar(char character); - -/* Blocking get character from console. */ -extern char prom_getchar(void); - -/* Blocking put character to console. */ -extern void prom_putchar(char character); +/* Write a buffer of characters to the console. */ +extern void prom_console_write_buf(const char *buf, int len); /* Prom's internal routines, don't use in kernel/boot code. */ extern void prom_printf(const char *fmt, ...); @@ -238,7 +208,6 @@ extern int prom_setprop(int node, const char *prop_name, char *prop_value, int value_size); -extern int prom_pathtoinode(char *path); extern int prom_inst2pkg(int); /* Dorking with Bus ranges... */ --- linux-2.6.35.orig/arch/sparc/include/asm/openprom.h +++ linux-2.6.35/arch/sparc/include/asm/openprom.h @@ -37,7 +37,7 @@ int (*v2_dev_open)(char *devpath); void (*v2_dev_close)(int d); int (*v2_dev_read)(int d, char *buf, int nbytes); - int (*v2_dev_write)(int d, char *buf, int nbytes); + int (*v2_dev_write)(int d, const char *buf, int nbytes); int (*v2_dev_seek)(int d, int hi, int lo); /* Never issued (multistage load support) */ --- 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 @@ -18,12 +18,19 @@ #include #include -int prom_service_exists(const char *service_name) +static 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,36 +119,37 @@ */ 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(); } -/* Set prom sync handler to call function 'funcp'. */ -void prom_setcallback(callback_func_t funcp) -{ - if (!funcp) - return; - p1275_cmd("set-callback", P1275_ARG(0, P1275_ARG_IN_FUNCTION) | - P1275_INOUT(1, 1), funcp); -} - /* Get the idprom and stuff it into buffer 'idbuf'. Returns the * format type. 'num_bytes' is the number of bytes that your idbuf * has space for. Returns 0xff on error. @@ -173,57 +203,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 +265,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 +322,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/console_64.c +++ linux-2.6.35/arch/sparc/prom/console_64.c @@ -15,59 +15,34 @@ extern int prom_stdin, prom_stdout; -/* Non blocking get character from console input device, returns -1 - * if no input was taken. This can be used for polling. - */ -inline int -prom_nbgetchar(void) +static int __prom_console_write_buf(const char *buf, int len) { - char inc; + unsigned long args[7]; + int ret; - if (p1275_cmd("read", P1275_ARG(1,P1275_ARG_OUT_BUF)| - P1275_INOUT(3,1), - prom_stdin, &inc, P1275_SIZE(1)) == 1) - return inc; - else - return -1; -} - -/* Non blocking put character to console device, returns -1 if - * unsuccessful. - */ -inline int -prom_nbputchar(char c) -{ - 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) - return 0; - else - return -1; -} + args[0] = (unsigned long) "write"; + args[1] = 3; + args[2] = 1; + args[3] = (unsigned int) prom_stdout; + args[4] = (unsigned long) buf; + args[5] = (unsigned int) len; + args[6] = (unsigned long) -1; -/* Blocking version of get character routine above. */ -char -prom_getchar(void) -{ - int character; - while((character = prom_nbgetchar()) == -1) ; - return (char) character; -} + p1275_cmd_direct(args); -/* Blocking version of put character routine above. */ -void -prom_putchar(char c) -{ - prom_nbputchar(c); + ret = (int) args[6]; + if (ret < 0) + return -1; + return ret; } -void -prom_puts(const char *s, int len) +void prom_console_write_buf(const char *buf, int len) { - p1275_cmd("write", P1275_ARG(1,P1275_ARG_IN_BUF)| - P1275_INOUT(3,1), - prom_stdout, s, P1275_SIZE(len)); + while (len) { + int n = __prom_console_write_buf(buf, len); + if (n < 0) + continue; + len -= n; + buf += len; + } } --- 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,42 +340,53 @@ 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; - return node; -} + args[0] = (unsigned long) "instance-to-package"; + args[1] = 1; + args[2] = 1; + args[3] = (unsigned int) inst; + args[4] = (unsigned long) -1; -/* Return 'node' assigned to a particular prom 'path' - * FIXME: Should work for v0 as well - */ -int -prom_pathtoinode(const char *path) -{ - int node, inst; + p1275_cmd_direct(args); - inst = prom_devopen (path); - if (inst == 0) return 0; - node = prom_inst2pkg (inst); - prom_devclose (inst); - if (node == -1) return 0; + node = (int) args[4]; + 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/sparc/prom/console_32.c +++ linux-2.6.35/arch/sparc/prom/console_32.c @@ -16,63 +16,26 @@ extern void restore_current(void); -/* Non blocking get character from console input device, returns -1 - * if no input was taken. This can be used for polling. - */ -int -prom_nbgetchar(void) -{ - static char inc; - int i = -1; - unsigned long flags; - - spin_lock_irqsave(&prom_lock, flags); - switch(prom_vers) { - case PROM_V0: - i = (*(romvec->pv_nbgetchar))(); - break; - case PROM_V2: - case PROM_V3: - if( (*(romvec->pv_v2devops).v2_dev_read)(*romvec->pv_v2bootargs.fd_stdin , &inc, 0x1) == 1) { - i = inc; - } else { - i = -1; - } - break; - default: - i = -1; - break; - }; - restore_current(); - spin_unlock_irqrestore(&prom_lock, flags); - return i; /* Ugh, we could spin forever on unsupported proms ;( */ -} - /* Non blocking put character to console device, returns -1 if * unsuccessful. */ -int -prom_nbputchar(char c) +static int prom_nbputchar(const char *buf) { - static char outc; unsigned long flags; int i = -1; spin_lock_irqsave(&prom_lock, flags); switch(prom_vers) { case PROM_V0: - i = (*(romvec->pv_nbputchar))(c); + i = (*(romvec->pv_nbputchar))(*buf); break; case PROM_V2: case PROM_V3: - outc = c; - if( (*(romvec->pv_v2devops).v2_dev_write)(*romvec->pv_v2bootargs.fd_stdout, &outc, 0x1) == 1) + if ((*(romvec->pv_v2devops).v2_dev_write)(*romvec->pv_v2bootargs.fd_stdout, + buf, 0x1) == 1) i = 0; - else - i = -1; break; default: - i = -1; break; }; restore_current(); @@ -80,18 +43,14 @@ return i; /* Ugh, we could spin forever on unsupported proms ;( */ } -/* Blocking version of get character routine above. */ -char -prom_getchar(void) +void prom_console_write_buf(const char *buf, int len) { - int character; - while((character = prom_nbgetchar()) == -1) ; - return (char) character; + while (len) { + int n = prom_nbputchar(buf); + if (n) + continue; + len--; + buf++; + } } -/* Blocking version of put character routine above. */ -void -prom_putchar(char c) -{ - while(prom_nbputchar(c) == -1) ; -} --- linux-2.6.35.orig/arch/sparc/prom/tree_32.c +++ linux-2.6.35/arch/sparc/prom/tree_32.c @@ -341,18 +341,3 @@ if (node == -1) return 0; return node; } - -/* Return 'node' assigned to a particular prom 'path' - * FIXME: Should work for v0 as well - */ -int prom_pathtoinode(char *path) -{ - int node, inst; - - inst = prom_devopen (path); - if (inst == -1) return 0; - node = prom_inst2pkg (inst); - prom_devclose (inst); - if (node == -1) return 0; - return node; -} --- linux-2.6.35.orig/arch/sparc/prom/printf.c +++ linux-2.6.35/arch/sparc/prom/printf.c @@ -15,22 +15,45 @@ #include #include +#include #include #include +#define CONSOLE_WRITE_BUF_SIZE 1024 + static char ppbuf[1024]; +static char console_write_buf[CONSOLE_WRITE_BUF_SIZE]; +static DEFINE_RAW_SPINLOCK(console_write_lock); void notrace prom_write(const char *buf, unsigned int n) { - char ch; - - while (n != 0) { - --n; - if ((ch = *buf++) == '\n') - prom_putchar('\r'); - prom_putchar(ch); + unsigned int dest_len; + unsigned long flags; + char *dest; + + dest = console_write_buf; + raw_spin_lock_irqsave(&console_write_lock, flags); + + dest_len = 0; + while (n-- != 0) { + char ch = *buf++; + if (ch == '\n') { + *dest++ = '\r'; + dest_len++; + } + *dest++ = ch; + dest_len++; + if (dest_len >= CONSOLE_WRITE_BUF_SIZE - 1) { + prom_console_write_buf(console_write_buf, dest_len); + dest = console_write_buf; + dest_len = 0; + } } + if (dest_len) + prom_console_write_buf(console_write_buf, dest_len); + + raw_spin_unlock_irqrestore(&console_write_lock, flags); } void notrace prom_printf(const char *fmt, ...) --- linux-2.6.35.orig/arch/sparc/prom/Makefile +++ linux-2.6.35/arch/sparc/prom/Makefile @@ -6,7 +6,6 @@ lib-y := bootstr_$(BITS).o lib-$(CONFIG_SPARC32) += devmap.o -lib-y += devops_$(BITS).o lib-y += init_$(BITS).o lib-$(CONFIG_SPARC32) += memory.o lib-y += misc_$(BITS).o --- 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/smp.c +++ linux-2.6.35/arch/x86/xen/smp.c @@ -398,9 +398,9 @@ BUG(); } -static void xen_smp_send_stop(void) +static void xen_stop_other_cpus(int wait) { - smp_call_function(stop_self, NULL, 0); + smp_call_function(stop_self, NULL, wait); } static void xen_smp_send_reschedule(int cpu) @@ -468,7 +468,7 @@ .cpu_disable = xen_cpu_disable, .play_dead = xen_play_dead, - .smp_send_stop = xen_smp_send_stop, + .stop_other_cpus = xen_stop_other_cpus, .smp_send_reschedule = xen_smp_send_reschedule, .send_call_func_ipi = xen_smp_send_call_function_ipi, --- 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, @@ -1000,10 +1022,6 @@ { struct sched_shutdown r = { .reason = reason }; -#ifdef CONFIG_SMP - smp_send_stop(); -#endif - if (HYPERVISOR_sched_op(SCHEDOP_shutdown, &r)) BUG(); } --- 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/amd_iommu.c +++ linux-2.6.35/arch/x86/kernel/amd_iommu.c @@ -1953,6 +1953,7 @@ size_t size, int dir) { + dma_addr_t flush_addr; dma_addr_t i, start; unsigned int pages; @@ -1960,6 +1961,7 @@ (dma_addr + size > dma_dom->aperture_size)) return; + flush_addr = dma_addr; pages = iommu_num_pages(dma_addr, size, PAGE_SIZE); dma_addr &= PAGE_MASK; start = dma_addr; @@ -1974,7 +1976,7 @@ dma_ops_free_addresses(dma_dom, dma_addr, pages); if (amd_iommu_unmap_flush || dma_dom->need_flush) { - iommu_flush_pages(&dma_dom->domain, dma_addr, size); + iommu_flush_pages(&dma_dom->domain, flush_addr, size); dma_dom->need_flush = false; } } --- 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; @@ -568,6 +663,7 @@ if (regs->flags & X86_VM_MASK) { handle_vm86_trap((struct kernel_vm86_regs *) regs, error_code, 1); + preempt_conditional_cli(regs); return; } @@ -801,19 +897,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/xsave.c +++ linux-2.6.35/arch/x86/kernel/xsave.c @@ -305,7 +305,8 @@ */ static void __init setup_xstate_init(void) { - init_xstate_buf = alloc_bootmem(xstate_size); + init_xstate_buf = alloc_bootmem_align(xstate_size, + __alignof__(struct xsave_struct)); init_xstate_buf->i387.mxcsr = MXCSR_DEFAULT; } --- linux-2.6.35.orig/arch/x86/kernel/olpc.c +++ linux-2.6.35/arch/x86/kernel/olpc.c @@ -117,6 +117,7 @@ unsigned long flags; int ret = -EIO; int i; + int restarts = 0; spin_lock_irqsave(&ec_lock, flags); @@ -173,7 +174,9 @@ if (wait_on_obf(0x6c, 1)) { printk(KERN_ERR "olpc-ec: timeout waiting for" " EC to provide data!\n"); - goto restart; + if (restarts++ < 10) + goto restart; + goto err; } outbuf[i] = inb(0x68); printk(KERN_DEBUG "olpc-ec: received 0x%x\n", --- linux-2.6.35.orig/arch/x86/kernel/hw_breakpoint.c +++ linux-2.6.35/arch/x86/kernel/hw_breakpoint.c @@ -421,6 +421,10 @@ dr6_p = (unsigned long *)ERR_PTR(args->err); dr6 = *dr6_p; + /* If it's a single step, TRAP bits are random */ + if (dr6 & DR_STEP) + return NOTIFY_DONE; + /* Do an early return if no trap bits are set in DR6 */ if ((dr6 & DR_TRAP_BITS) == 0) return NOTIFY_DONE; --- linux-2.6.35.orig/arch/x86/kernel/smp.c +++ linux-2.6.35/arch/x86/kernel/smp.c @@ -159,10 +159,10 @@ irq_exit(); } -static void native_smp_send_stop(void) +static void native_stop_other_cpus(int wait) { unsigned long flags; - unsigned long wait; + unsigned long timeout; if (reboot_force) return; @@ -179,9 +179,12 @@ if (num_online_cpus() > 1) { apic->send_IPI_allbutself(REBOOT_VECTOR); - /* Don't wait longer than a second */ - wait = USEC_PER_SEC; - while (num_online_cpus() > 1 && wait--) + /* + * Don't wait longer than a second if the caller + * didn't ask us to wait. + */ + timeout = USEC_PER_SEC; + while (num_online_cpus() > 1 && (wait || timeout--)) udelay(1); } @@ -227,7 +230,7 @@ .smp_prepare_cpus = native_smp_prepare_cpus, .smp_cpus_done = native_smp_cpus_done, - .smp_send_stop = native_smp_send_stop, + .stop_other_cpus = native_stop_other_cpus, .smp_send_reschedule = native_smp_send_reschedule, .cpu_up = native_cpu_up, --- 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; @@ -504,7 +507,7 @@ { unsigned int irq; - irq = create_irq(); + irq = create_irq_nr(0, -1); if (!irq) return -EINVAL; --- linux-2.6.35.orig/arch/x86/kernel/trampoline.c +++ linux-2.6.35/arch/x86/kernel/trampoline.c @@ -1,6 +1,7 @@ #include #include +#include #include #if defined(CONFIG_X86_64) && defined(CONFIG_ACPI_SLEEP) @@ -37,3 +38,19 @@ memcpy(trampoline_base, trampoline_data, TRAMPOLINE_SIZE); return virt_to_phys(trampoline_base); } + +void __init setup_trampoline_page_table(void) +{ +#ifdef CONFIG_X86_32 + /* Copy kernel address range */ + clone_pgd_range(trampoline_pg_dir + KERNEL_PGD_BOUNDARY, + swapper_pg_dir + KERNEL_PGD_BOUNDARY, + KERNEL_PGD_PTRS); + + /* Initialize low mappings */ + clone_pgd_range(trampoline_pg_dir, + swapper_pg_dir + KERNEL_PGD_BOUNDARY, + min_t(unsigned long, KERNEL_PGD_PTRS, + KERNEL_PGD_BOUNDARY)); +#endif +} --- linux-2.6.35.orig/arch/x86/kernel/crash_dump_64.c +++ linux-2.6.35/arch/x86/kernel/crash_dump_64.c @@ -34,7 +34,7 @@ if (!csize) return 0; - vaddr = ioremap(pfn << PAGE_SHIFT, PAGE_SIZE); + vaddr = ioremap_cache(pfn << PAGE_SHIFT, PAGE_SIZE); if (!vaddr) return -ENOMEM; @@ -46,6 +46,7 @@ } else memcpy(buf, vaddr + offset, csize); + set_iounmap_nonlazy(); iounmap(vaddr); return csize; } --- 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/microcode_intel.c +++ linux-2.6.35/arch/x86/kernel/microcode_intel.c @@ -364,8 +364,7 @@ /* For performance reasons, reuse mc area when possible */ if (!mc || mc_size > curr_mc_size) { - if (mc) - vfree(mc); + vfree(mc); mc = vmalloc(mc_size); if (!mc) break; @@ -374,13 +373,11 @@ if (get_ucode_data(mc, ucode_ptr, mc_size) || microcode_sanity_check(mc) < 0) { - vfree(mc); break; } if (get_matching_microcode(&uci->cpu_sig, mc, new_rev)) { - if (new_mc) - vfree(new_mc); + vfree(new_mc); new_rev = mc_header.rev; new_mc = mc; mc = NULL; /* trigger new vmalloc */ @@ -390,12 +387,10 @@ leftover -= mc_size; } - if (mc) - vfree(mc); + vfree(mc); if (leftover) { - if (new_mc) - vfree(new_mc); + vfree(new_mc); state = UCODE_ERROR; goto out; } @@ -405,8 +400,7 @@ goto out; } - if (uci->mc) - vfree(uci->mc); + vfree(uci->mc); uci->mc = (struct microcode_intel *)new_mc; pr_debug("CPU%d found a matching microcode update with version 0x%x (current=0x%x)\n", --- linux-2.6.35.orig/arch/x86/kernel/reboot.c +++ linux-2.6.35/arch/x86/kernel/reboot.c @@ -641,7 +641,7 @@ /* O.K Now that I'm on the appropriate processor, * stop all of the others. */ - smp_send_stop(); + stop_other_cpus(); #endif lapic_shutdown(); --- linux-2.6.35.orig/arch/x86/kernel/amd_iommu_init.c +++ linux-2.6.35/arch/x86/kernel/amd_iommu_init.c @@ -632,6 +632,13 @@ iommu->last_device = calc_devid(MMIO_GET_BUS(range), MMIO_GET_LD(range)); iommu->evt_msi_num = MMIO_MSI_NUM(misc); + + if (is_rd890_iommu(iommu->dev)) { + pci_read_config_dword(iommu->dev, 0xf0, &iommu->cache_cfg[0]); + pci_read_config_dword(iommu->dev, 0xf4, &iommu->cache_cfg[1]); + pci_read_config_dword(iommu->dev, 0xf8, &iommu->cache_cfg[2]); + pci_read_config_dword(iommu->dev, 0xfc, &iommu->cache_cfg[3]); + } } /* @@ -649,29 +656,9 @@ struct ivhd_entry *e; /* - * First set the recommended feature enable bits from ACPI - * into the IOMMU control registers + * First save the recommended feature enable bits from ACPI */ - h->flags & IVHD_FLAG_HT_TUN_EN_MASK ? - iommu_feature_enable(iommu, CONTROL_HT_TUN_EN) : - iommu_feature_disable(iommu, CONTROL_HT_TUN_EN); - - h->flags & IVHD_FLAG_PASSPW_EN_MASK ? - iommu_feature_enable(iommu, CONTROL_PASSPW_EN) : - iommu_feature_disable(iommu, CONTROL_PASSPW_EN); - - h->flags & IVHD_FLAG_RESPASSPW_EN_MASK ? - iommu_feature_enable(iommu, CONTROL_RESPASSPW_EN) : - iommu_feature_disable(iommu, CONTROL_RESPASSPW_EN); - - h->flags & IVHD_FLAG_ISOC_EN_MASK ? - iommu_feature_enable(iommu, CONTROL_ISOC_EN) : - iommu_feature_disable(iommu, CONTROL_ISOC_EN); - - /* - * make IOMMU memory accesses cache coherent - */ - iommu_feature_enable(iommu, CONTROL_COHERENT_EN); + iommu->acpi_flags = h->flags; /* * Done. Now parse the device entries @@ -1116,6 +1103,40 @@ } } +static void iommu_init_flags(struct amd_iommu *iommu) +{ + iommu->acpi_flags & IVHD_FLAG_HT_TUN_EN_MASK ? + iommu_feature_enable(iommu, CONTROL_HT_TUN_EN) : + iommu_feature_disable(iommu, CONTROL_HT_TUN_EN); + + iommu->acpi_flags & IVHD_FLAG_PASSPW_EN_MASK ? + iommu_feature_enable(iommu, CONTROL_PASSPW_EN) : + iommu_feature_disable(iommu, CONTROL_PASSPW_EN); + + iommu->acpi_flags & IVHD_FLAG_RESPASSPW_EN_MASK ? + iommu_feature_enable(iommu, CONTROL_RESPASSPW_EN) : + iommu_feature_disable(iommu, CONTROL_RESPASSPW_EN); + + iommu->acpi_flags & IVHD_FLAG_ISOC_EN_MASK ? + iommu_feature_enable(iommu, CONTROL_ISOC_EN) : + iommu_feature_disable(iommu, CONTROL_ISOC_EN); + + /* + * make IOMMU memory accesses cache coherent + */ + iommu_feature_enable(iommu, CONTROL_COHERENT_EN); +} + +static void iommu_apply_quirks(struct amd_iommu *iommu) +{ + if (is_rd890_iommu(iommu->dev)) { + pci_write_config_dword(iommu->dev, 0xf0, iommu->cache_cfg[0]); + pci_write_config_dword(iommu->dev, 0xf4, iommu->cache_cfg[1]); + pci_write_config_dword(iommu->dev, 0xf8, iommu->cache_cfg[2]); + pci_write_config_dword(iommu->dev, 0xfc, iommu->cache_cfg[3]); + } +} + /* * This function finally enables all IOMMUs found in the system after * they have been initialized @@ -1126,6 +1147,8 @@ for_each_iommu(iommu) { iommu_disable(iommu); + iommu_apply_quirks(iommu); + iommu_init_flags(iommu); iommu_set_device_table(iommu); iommu_enable_command_buffer(iommu); iommu_enable_event_buffer(iommu); --- linux-2.6.35.orig/arch/x86/kernel/head_32.S +++ linux-2.6.35/arch/x86/kernel/head_32.S @@ -328,7 +328,7 @@ /* * Enable paging */ - movl $pa(swapper_pg_dir),%eax + movl pa(initial_page_table), %eax movl %eax,%cr3 /* set the page table pointer.. */ movl %cr0,%eax orl $X86_CR0_PG,%eax @@ -608,6 +608,8 @@ .align 4 ENTRY(initial_code) .long i386_start_kernel +ENTRY(initial_page_table) + .long pa(swapper_pg_dir) /* * BSS section @@ -623,6 +625,10 @@ #endif swapper_pg_fixmap: .fill 1024,4,0 +#ifdef CONFIG_X86_TRAMPOLINE +ENTRY(trampoline_pg_dir) + .fill 1024,4,0 +#endif ENTRY(empty_zero_page) .fill 4096,1,0 --- 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/setup.c +++ linux-2.6.35/arch/x86/kernel/setup.c @@ -1008,6 +1008,8 @@ paging_init(); x86_init.paging.pagetable_setup_done(swapper_pg_dir); + setup_trampoline_page_table(); + tboot_probe(); #ifdef CONFIG_X86_64 --- linux-2.6.35.orig/arch/x86/kernel/smpboot.c +++ linux-2.6.35/arch/x86/kernel/smpboot.c @@ -73,7 +73,6 @@ #ifdef CONFIG_X86_32 u8 apicid_2_node[MAX_APICID]; -static int low_mappings; #endif /* State of each CPU */ @@ -91,6 +90,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)]) @@ -281,6 +299,18 @@ * fragile that we want to limit the things done here to the * most necessary things. */ + +#ifdef CONFIG_X86_32 + /* + * Switch away from the trampoline page-table + * + * Do this before cpu_init() because it needs to access per-cpu + * data which may not be mapped in the trampoline page-table. + */ + load_cr3(swapper_pg_dir); + __flush_tlb_all(); +#endif + vmi_bringup(); cpu_init(); preempt_disable(); @@ -299,12 +329,6 @@ legacy_pic->chip->unmask(0); } -#ifdef CONFIG_X86_32 - while (low_mappings) - cpu_relax(); - __flush_tlb_all(); -#endif - /* This must be done before setting cpu_online_mask */ set_cpu_sibling_map(raw_smp_processor_id()); wmb(); @@ -754,6 +778,7 @@ #ifdef CONFIG_X86_32 /* Stack for startup_32 can be just as for start_secondary onwards */ irq_ctx_init(cpu); + initial_page_table = __pa(&trampoline_pg_dir); #else clear_tsk_thread_flag(c_idle.idle, TIF_FORK); initial_gs = per_cpu_offset(cpu); @@ -816,6 +841,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)) @@ -894,20 +926,8 @@ per_cpu(cpu_state, cpu) = CPU_UP_PREPARE; -#ifdef CONFIG_X86_32 - /* init low mem mapping */ - clone_pgd_range(swapper_pg_dir, swapper_pg_dir + KERNEL_PGD_BOUNDARY, - min_t(unsigned long, KERNEL_PGD_PTRS, KERNEL_PGD_BOUNDARY)); - flush_tlb_all(); - low_mappings = 1; - err = do_boot_cpu(apicid, cpu); - zap_low_mappings(false); - low_mappings = 0; -#else - err = do_boot_cpu(apicid, cpu); -#endif if (err) { pr_debug("do_boot_cpu failed %d\n", err); return -EIO; @@ -1367,11 +1387,94 @@ local_irq_disable(); } +#define MWAIT_SUBSTATE_MASK 0xf +#define MWAIT_SUBSTATE_SIZE 4 + +#define CPUID_MWAIT_LEAF 5 +#define CPUID5_ECX_EXTENSIONS_SUPPORTED 0x1 + +/* + * We need to flush the caches before going to sleep, lest we have + * dirty data in our caches when we come back up. + */ +static inline void mwait_play_dead(void) +{ + unsigned int eax, ebx, ecx, edx; + unsigned int highest_cstate = 0; + unsigned int highest_subcstate = 0; + int i; + void *mwait_ptr; + + if (!cpu_has(¤t_cpu_data, X86_FEATURE_MWAIT)) + return; + if (!cpu_has(¤t_cpu_data, X86_FEATURE_CLFLSH)) + return; + if (current_cpu_data.cpuid_level < CPUID_MWAIT_LEAF) + return; + + eax = CPUID_MWAIT_LEAF; + ecx = 0; + native_cpuid(&eax, &ebx, &ecx, &edx); + + /* + * eax will be 0 if EDX enumeration is not valid. + * Initialized below to cstate, sub_cstate value when EDX is valid. + */ + if (!(ecx & CPUID5_ECX_EXTENSIONS_SUPPORTED)) { + eax = 0; + } else { + edx >>= MWAIT_SUBSTATE_SIZE; + for (i = 0; i < 7 && edx; i++, edx >>= MWAIT_SUBSTATE_SIZE) { + if (edx & MWAIT_SUBSTATE_MASK) { + highest_cstate = i; + highest_subcstate = edx & MWAIT_SUBSTATE_MASK; + } + } + eax = (highest_cstate << MWAIT_SUBSTATE_SIZE) | + (highest_subcstate - 1); + } + + /* + * This should be a memory location in a cache line which is + * unlikely to be touched by other processors. The actual + * content is immaterial as it is not actually modified in any way. + */ + mwait_ptr = ¤t_thread_info()->flags; + + wbinvd(); + + while (1) { + /* + * The CLFLUSH is a workaround for erratum AAI65 for + * the Xeon 7400 series. It's not clear it is actually + * needed, but it should be harmless in either case. + * The WBINVD is insufficient due to the spurious-wakeup + * case where we return around the loop. + */ + clflush(mwait_ptr); + __monitor(mwait_ptr, 0, 0); + mb(); + __mwait(eax, 0); + } +} + +static inline void hlt_play_dead(void) +{ + if (current_cpu_data.x86 >= 4) + wbinvd(); + + while (1) { + native_halt(); + } +} + void native_play_dead(void) { play_dead_common(); tboot_shutdown(TB_SHUTDOWN_WFS); - wbinvd_halt(); + + mwait_play_dead(); /* Only returns on failure */ + hlt_play_dead(); } #else /* ... !CONFIG_HOTPLUG_CPU */ --- linux-2.6.35.orig/arch/x86/kernel/Makefile +++ linux-2.6.35/arch/x86/kernel/Makefile @@ -11,6 +11,8 @@ CFLAGS_REMOVE_tsc.o = -pg CFLAGS_REMOVE_rtc.o = -pg CFLAGS_REMOVE_paravirt-spinlocks.o = -pg +CFLAGS_REMOVE_pvclock.o = -pg +CFLAGS_REMOVE_kvmclock.o = -pg CFLAGS_REMOVE_ftrace.o = -pg CFLAGS_REMOVE_early_printk.o = -pg endif --- 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/vm86_32.c +++ linux-2.6.35/arch/x86/kernel/vm86_32.c @@ -551,8 +551,14 @@ int handle_vm86_trap(struct kernel_vm86_regs *regs, long error_code, int trapno) { if (VMPI.is_vm86pus) { - if ((trapno == 3) || (trapno == 1)) - return_to_32bit(regs, VM86_TRAP + (trapno << 8)); + if ((trapno == 3) || (trapno == 1)) { + KVM86->regs32->ax = VM86_TRAP + (trapno << 8); + /* setting this flag forces the code in entry_32.S to + call save_v86_state() and change the stack pointer + to KVM86->regs32 */ + set_thread_flag(TIF_IRET); + return 0; + } do_int(regs, trapno, (unsigned char __user *) (regs->pt.ss << 4), SP(regs)); return 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/cpu.h +++ linux-2.6.35/arch/x86/kernel/cpu/cpu.h @@ -33,5 +33,6 @@ *const __x86_cpu_dev_end[]; extern void cpu_detect_cache_sizes(struct cpuinfo_x86 *c); +extern void get_cpu_cap(struct cpuinfo_x86 *c); #endif --- linux-2.6.35.orig/arch/x86/kernel/cpu/common.c +++ linux-2.6.35/arch/x86/kernel/cpu/common.c @@ -537,7 +537,7 @@ } } -static void __cpuinit get_cpu_cap(struct cpuinfo_x86 *c) +void __cpuinit get_cpu_cap(struct cpuinfo_x86 *c) { u32 tfms, xlvl; u32 ebx; @@ -576,6 +576,7 @@ if (c->extended_cpuid_level >= 0x80000007) c->x86_power = cpuid_edx(0x80000007); + init_scattered_cpuid_features(c); } static void __cpuinit identify_cpu_without_cpuid(struct cpuinfo_x86 *c) @@ -731,7 +732,6 @@ get_model_name(c); /* Default name */ - init_scattered_cpuid_features(c); detect_nopl(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/intel.c +++ linux-2.6.35/arch/x86/kernel/cpu/intel.c @@ -39,6 +39,7 @@ misc_enable &= ~MSR_IA32_MISC_ENABLE_LIMIT_CPUID; wrmsrl(MSR_IA32_MISC_ENABLE, misc_enable); c->cpuid_level = cpuid_eax(0); + get_cpu_cap(c); } } --- 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/amd.c +++ linux-2.6.35/arch/x86/kernel/cpu/amd.c @@ -305,8 +305,7 @@ /* use socket ID also for last level cache */ per_cpu(cpu_llc_id, cpu) = c->phys_proc_id; /* fixup topology information on multi-node processors */ - if ((c->x86 == 0x10) && (c->x86_model == 9)) - amd_fixup_dcm(c); + amd_fixup_dcm(c); #endif } --- 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/perf_event_amd.c +++ linux-2.6.35/arch/x86/kernel/cpu/perf_event_amd.c @@ -52,7 +52,7 @@ [ C(DTLB) ] = { [ C(OP_READ) ] = { [ C(RESULT_ACCESS) ] = 0x0040, /* Data Cache Accesses */ - [ C(RESULT_MISS) ] = 0x0046, /* L1 DTLB and L2 DLTB Miss */ + [ C(RESULT_MISS) ] = 0x0746, /* L1_DTLB_AND_L2_DLTB_MISS.ALL */ }, [ C(OP_WRITE) ] = { [ C(RESULT_ACCESS) ] = 0, @@ -66,7 +66,7 @@ [ C(ITLB) ] = { [ C(OP_READ) ] = { [ C(RESULT_ACCESS) ] = 0x0080, /* Instruction fecthes */ - [ C(RESULT_MISS) ] = 0x0085, /* Instr. fetch ITLB misses */ + [ C(RESULT_MISS) ] = 0x0385, /* L1_ITLB_AND_L2_ITLB_MISS.ALL */ }, [ C(OP_WRITE) ] = { [ C(RESULT_ACCESS) ] = -1, --- linux-2.6.35.orig/arch/x86/kernel/cpu/mcheck/mce_amd.c +++ linux-2.6.35/arch/x86/kernel/cpu/mcheck/mce_amd.c @@ -141,6 +141,7 @@ address = (low & MASK_BLKPTR_LO) >> 21; if (!address) break; + address += MCG_XBLK_ADDR; } else ++address; @@ -148,12 +149,8 @@ if (rdmsr_safe(address, &low, &high)) break; - if (!(high & MASK_VALID_HI)) { - if (block) - continue; - else - break; - } + if (!(high & MASK_VALID_HI)) + continue; if (!(high & MASK_CNTP_HI) || (high & MASK_LOCKED_HI)) --- 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/cleanup.c +++ linux-2.6.35/arch/x86/kernel/cpu/mtrr/cleanup.c @@ -827,7 +827,7 @@ if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD) return 0; - if (boot_cpu_data.x86 < 0xf || boot_cpu_data.x86 > 0x11) + if (boot_cpu_data.x86 < 0xf) return 0; /* In case some hypervisor doesn't pass SYSCFG through: */ if (rdmsr_safe(MSR_K8_SYSCFG, &l, &h) < 0) --- 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/acpi-cpufreq.c +++ linux-2.6.35/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c @@ -704,6 +704,7 @@ per_cpu(acfreq_data, policy->cpu) = NULL; acpi_processor_unregister_performance(data->acpi_data, policy->cpu); + kfree(data->freq_table); kfree(data); } --- 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/acpi/cstate.c +++ linux-2.6.35/arch/x86/kernel/acpi/cstate.c @@ -13,6 +13,7 @@ #include #include +#include /* * Initialize bm_flags based on the CPU cache properties @@ -65,16 +66,6 @@ static short mwait_supported[ACPI_PROCESSOR_MAX_POWER]; -#define MWAIT_SUBSTATE_MASK (0xf) -#define MWAIT_CSTATE_MASK (0xf) -#define MWAIT_SUBSTATE_SIZE (4) - -#define CPUID_MWAIT_LEAF (5) -#define CPUID5_ECX_EXTENSIONS_SUPPORTED (0x1) -#define CPUID5_ECX_INTERRUPT_BREAK (0x2) - -#define MWAIT_ECX_INTERRUPT_BREAK (0x1) - #define NATIVE_CSTATE_BEYOND_HALT (2) static long acpi_processor_ffh_cstate_probe_cpu(void *_cx) --- linux-2.6.35.orig/arch/x86/kernel/acpi/boot.c +++ linux-2.6.35/arch/x86/kernel/acpi/boot.c @@ -1425,6 +1425,42 @@ DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"), }, }, + /* ThinkPad Edge 11 (AMD) */ + { + .callback = dmi_ignore_irq0_timer_override, + .ident = "ThinkPad Edge", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_NAME, "254523U"), + }, + }, + /* ThinkPad Edge 13 (AMD) */ + { + .callback = dmi_ignore_irq0_timer_override, + .ident = "ThinkPad Edge", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_NAME, "022120U"), + }, + }, + /* ThinkPad Edge 14 (AMD) */ + { + .callback = dmi_ignore_irq0_timer_override, + .ident = "ThinkPad Edge", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_NAME, "019923U"), + }, + }, + /* ThinkPad Edge 15 (AMD) */ + { + .callback = dmi_ignore_irq0_timer_override, + .ident = "ThinkPad Edge", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_NAME, "030222U"), + }, + }, {} }; --- linux-2.6.35.orig/arch/x86/kernel/apic/io_apic.c +++ linux-2.6.35/arch/x86/kernel/apic/io_apic.c @@ -306,14 +306,19 @@ old_cfg = old_desc->chip_data; - memcpy(cfg, old_cfg, sizeof(struct irq_cfg)); + cfg->vector = old_cfg->vector; + cfg->move_in_progress = old_cfg->move_in_progress; + cpumask_copy(cfg->domain, old_cfg->domain); + cpumask_copy(cfg->old_domain, old_cfg->old_domain); init_copy_irq_2_pin(old_cfg, cfg, node); } -static void free_irq_cfg(struct irq_cfg *old_cfg) +static void free_irq_cfg(struct irq_cfg *cfg) { - kfree(old_cfg); + free_cpumask_var(cfg->domain); + free_cpumask_var(cfg->old_domain); + kfree(cfg); } void arch_free_chip_data(struct irq_desc *old_desc, struct irq_desc *desc) @@ -1392,6 +1397,7 @@ irte.dlvry_mode = apic->irq_delivery_mode; irte.vector = vector; irte.dest_id = IRTE_DEST(destination); + irte.redir_hint = 1; /* Set source-id of interrupt request */ set_ioapic_sid(&irte, apic_id); @@ -1728,6 +1734,8 @@ struct irq_pin_list *entry; cfg = desc->chip_data; + if (!cfg) + continue; entry = cfg->irq_2_pin; if (!entry) continue; @@ -3341,6 +3349,7 @@ irte.dlvry_mode = apic->irq_delivery_mode; irte.vector = cfg->vector; irte.dest_id = IRTE_DEST(dest); + irte.redir_hint = 1; /* Set source-id of interrupt request */ if (pdev) @@ -3397,7 +3406,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); @@ -3617,6 +3626,7 @@ msg.data |= MSI_DATA_VECTOR(cfg->vector); msg.address_lo &= ~MSI_ADDR_DEST_ID_MASK; msg.address_lo |= MSI_ADDR_DEST_ID(dest); + msg.address_hi = MSI_ADDR_BASE_HI | MSI_ADDR_EXT_DEST_ID(dest); dmar_msi_write(irq, &msg); --- linux-2.6.35.orig/arch/x86/kernel/apic/probe_64.c +++ linux-2.6.35/arch/x86/kernel/apic/probe_64.c @@ -76,13 +76,6 @@ /* need to update phys_pkg_id */ apic->phys_pkg_id = apicid_phys_pkg_id; } - - /* - * Now that apic routing model is selected, configure the - * fault handling for intr remapping. - */ - if (intr_remapping_enabled) - enable_drhd_fault_handling(); } /* Same for both flat and physical. */ --- linux-2.6.35.orig/arch/x86/kernel/apic/apic.c +++ linux-2.6.35/arch/x86/kernel/apic/apic.c @@ -1340,6 +1340,14 @@ setup_apic_nmi_watchdog(NULL); apic_pm_activate(); + + /* + * Now that local APIC setup is completed for BP, configure the fault + * handling for interrupt remapping. + */ + if (!smp_processor_id() && intr_remapping_enabled) + enable_drhd_fault_handling(); + } #ifdef CONFIG_X86_X2APIC @@ -1606,7 +1614,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/svm.c +++ linux-2.6.35/arch/x86/kvm/svm.c @@ -87,6 +87,14 @@ /* A VMEXIT is required but not yet emulated */ bool exit_required; + /* + * If we vmexit during an instruction emulation we need this to restore + * the l1 guest rip after the emulation + */ + unsigned long vmexit_rip; + unsigned long vmexit_rsp; + unsigned long vmexit_rax; + /* cache for intercepts of the guest */ u16 intercept_cr_read; u16 intercept_cr_write; @@ -766,7 +774,6 @@ control->iopm_base_pa = iopm_base; control->msrpm_base_pa = __pa(svm->msrpm); - control->tsc_offset = 0; control->int_ctl = V_INTR_MASKING_MASK; init_seg(&save->es); @@ -902,6 +909,7 @@ svm->vmcb_pa = page_to_pfn(page) << PAGE_SHIFT; svm->asid_generation = 0; init_vmcb(svm); + svm->vmcb->control.tsc_offset = 0-native_read_tsc(); fx_init(&svm->vcpu); svm->vcpu.arch.apic_base = 0xfee00000 | MSR_IA32_APICBASE_ENABLE; @@ -1201,8 +1209,12 @@ if (old == new) { /* cr0 write with ts and mp unchanged */ svm->vmcb->control.exit_code = SVM_EXIT_CR0_SEL_WRITE; - if (nested_svm_exit_handled(svm) == NESTED_EXIT_DONE) + if (nested_svm_exit_handled(svm) == NESTED_EXIT_DONE) { + svm->nested.vmexit_rip = kvm_rip_read(vcpu); + svm->nested.vmexit_rsp = kvm_register_read(vcpu, VCPU_REGS_RSP); + svm->nested.vmexit_rax = kvm_register_read(vcpu, VCPU_REGS_RAX); return; + } } } @@ -2398,6 +2410,23 @@ return 1; } +static int cr0_write_interception(struct vcpu_svm *svm) +{ + struct kvm_vcpu *vcpu = &svm->vcpu; + int r; + + r = emulate_instruction(&svm->vcpu, 0, 0, 0); + + if (svm->nested.vmexit_rip) { + kvm_register_write(vcpu, VCPU_REGS_RIP, svm->nested.vmexit_rip); + kvm_register_write(vcpu, VCPU_REGS_RSP, svm->nested.vmexit_rsp); + kvm_register_write(vcpu, VCPU_REGS_RAX, svm->nested.vmexit_rax); + svm->nested.vmexit_rip = 0; + } + + return r == EMULATE_DONE; +} + static int cr8_write_interception(struct vcpu_svm *svm) { struct kvm_run *kvm_run = svm->vcpu.run; @@ -2671,7 +2700,7 @@ [SVM_EXIT_READ_CR4] = emulate_on_interception, [SVM_EXIT_READ_CR8] = emulate_on_interception, [SVM_EXIT_CR0_SEL_WRITE] = emulate_on_interception, - [SVM_EXIT_WRITE_CR0] = emulate_on_interception, + [SVM_EXIT_WRITE_CR0] = cr0_write_interception, [SVM_EXIT_WRITE_CR3] = emulate_on_interception, [SVM_EXIT_WRITE_CR4] = emulate_on_interception, [SVM_EXIT_WRITE_CR8] = cr8_write_interception, @@ -3067,8 +3096,8 @@ sync_lapic_to_cr8(vcpu); save_host_msrs(vcpu); - fs_selector = kvm_read_fs(); - gs_selector = kvm_read_gs(); + savesegment(fs, fs_selector); + savesegment(gs, gs_selector); ldt_selector = kvm_read_ldt(); svm->vmcb->save.cr2 = vcpu->arch.cr2; /* required for live migration with NPT */ @@ -3155,10 +3184,15 @@ vcpu->arch.regs[VCPU_REGS_RSP] = svm->vmcb->save.rsp; vcpu->arch.regs[VCPU_REGS_RIP] = svm->vmcb->save.rip; - kvm_load_fs(fs_selector); - kvm_load_gs(gs_selector); - kvm_load_ldt(ldt_selector); load_host_msrs(vcpu); + kvm_load_ldt(ldt_selector); + loadsegment(fs, fs_selector); +#ifdef CONFIG_X86_64 + load_gs_index(gs_selector); + wrmsrl(MSR_KERNEL_GS_BASE, current->thread.gs); +#else + loadsegment(gs, gs_selector); +#endif reload_tss(vcpu); @@ -3253,6 +3287,10 @@ static void svm_set_supported_cpuid(u32 func, struct kvm_cpuid_entry2 *entry) { switch (func) { + case 0x80000001: + if (nested) + entry->ecx |= (1 << 2); /* Set SVM bit */ + break; case 0x8000000A: entry->eax = 1; /* SVM revision 1 */ entry->ebx = 8; /* Lets support 8 ASIDs in case we add proper --- 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; @@ -745,7 +746,7 @@ */ vmx->host_state.ldt_sel = kvm_read_ldt(); vmx->host_state.gs_ldt_reload_needed = vmx->host_state.ldt_sel; - vmx->host_state.fs_sel = kvm_read_fs(); + savesegment(fs, vmx->host_state.fs_sel); if (!(vmx->host_state.fs_sel & 7)) { vmcs_write16(HOST_FS_SELECTOR, vmx->host_state.fs_sel); vmx->host_state.fs_reload_needed = 0; @@ -753,7 +754,7 @@ vmcs_write16(HOST_FS_SELECTOR, 0); vmx->host_state.fs_reload_needed = 1; } - vmx->host_state.gs_sel = kvm_read_gs(); + savesegment(gs, vmx->host_state.gs_sel); if (!(vmx->host_state.gs_sel & 7)) vmcs_write16(HOST_GS_SELECTOR, vmx->host_state.gs_sel); else { @@ -783,28 +784,22 @@ static void __vmx_load_host_state(struct vcpu_vmx *vmx) { - unsigned long flags; - if (!vmx->host_state.loaded) return; ++vmx->vcpu.stat.host_state_reload; vmx->host_state.loaded = 0; - if (vmx->host_state.fs_reload_needed) - kvm_load_fs(vmx->host_state.fs_sel); if (vmx->host_state.gs_ldt_reload_needed) { kvm_load_ldt(vmx->host_state.ldt_sel); - /* - * If we have to reload gs, we must take care to - * preserve our gs base. - */ - local_irq_save(flags); - kvm_load_gs(vmx->host_state.gs_sel); #ifdef CONFIG_X86_64 - wrmsrl(MSR_GS_BASE, vmcs_readl(HOST_GS_BASE)); + load_gs_index(vmx->host_state.gs_sel); + wrmsrl(MSR_KERNEL_GS_BASE, current->thread.gs); +#else + loadsegment(gs, vmx->host_state.gs_sel); #endif - local_irq_restore(flags); } + if (vmx->host_state.fs_reload_needed) + loadsegment(fs, vmx->host_state.fs_sel); reload_tss(); #ifdef CONFIG_X86_64 if (is_long_mode(&vmx->vcpu)) { @@ -812,6 +807,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 +1310,8 @@ ept_sync_global(); + store_gdt(&__get_cpu_var(host_gdt)); + return 0; } @@ -2514,8 +2512,8 @@ vmcs_write16(HOST_CS_SELECTOR, __KERNEL_CS); /* 22.2.4 */ vmcs_write16(HOST_DS_SELECTOR, __KERNEL_DS); /* 22.2.4 */ vmcs_write16(HOST_ES_SELECTOR, __KERNEL_DS); /* 22.2.4 */ - vmcs_write16(HOST_FS_SELECTOR, kvm_read_fs()); /* 22.2.4 */ - vmcs_write16(HOST_GS_SELECTOR, kvm_read_gs()); /* 22.2.4 */ + vmcs_write16(HOST_FS_SELECTOR, 0); /* 22.2.4 */ + vmcs_write16(HOST_GS_SELECTOR, 0); /* 22.2.4 */ vmcs_write16(HOST_SS_SELECTOR, __KERNEL_DS); /* 22.2.4 */ #ifdef CONFIG_X86_64 rdmsrl(MSR_FS_BASE, a); --- 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 @@ -1910,9 +1910,9 @@ 0 /* Reserved, XSAVE, OSXSAVE */; /* cpuid 0x80000001.ecx */ const u32 kvm_supported_word6_x86_features = - F(LAHF_LM) | F(CMP_LEGACY) | F(SVM) | 0 /* ExtApicSpace */ | + F(LAHF_LM) | F(CMP_LEGACY) | 0 /*SVM*/ | 0 /* ExtApicSpace */ | F(CR8_LEGACY) | F(ABM) | F(SSE4A) | F(MISALIGNSSE) | - F(3DNOWPREFETCH) | 0 /* OSVW */ | 0 /* IBS */ | F(SSE5) | + F(3DNOWPREFETCH) | 0 /* OSVW */ | 0 /* IBS */ | F(XOP) | 0 /* SKINIT */ | 0 /* WDT */; /* all calls to cpuid_count() should be made on the same cpu */ @@ -2220,6 +2220,7 @@ !kvm_exception_is_soft(vcpu->arch.exception.nr); events->exception.nr = vcpu->arch.exception.nr; events->exception.has_error_code = vcpu->arch.exception.has_error_code; + events->exception.pad = 0; events->exception.error_code = vcpu->arch.exception.error_code; events->interrupt.injected = @@ -2233,13 +2234,14 @@ events->nmi.injected = vcpu->arch.nmi_injected; events->nmi.pending = vcpu->arch.nmi_pending; events->nmi.masked = kvm_x86_ops->get_nmi_mask(vcpu); + events->nmi.pad = 0; events->sipi_vector = vcpu->arch.sipi_vector; events->flags = (KVM_VCPUEVENT_VALID_NMI_PENDING | KVM_VCPUEVENT_VALID_SIPI_VECTOR | KVM_VCPUEVENT_VALID_SHADOW); - + memset(&events->reserved, 0, sizeof(events->reserved)); vcpu_put(vcpu); } @@ -2289,6 +2291,7 @@ dbgregs->dr6 = vcpu->arch.dr6; dbgregs->dr7 = vcpu->arch.dr7; dbgregs->flags = 0; + memset(&dbgregs->reserved, 0, sizeof(dbgregs->reserved)); vcpu_put(vcpu); } @@ -2756,6 +2759,7 @@ sizeof(ps->channels)); ps->flags = kvm->arch.vpit->pit_state.flags; mutex_unlock(&kvm->arch.vpit->pit_state.lock); + memset(&ps->reserved, 0, sizeof(ps->reserved)); return r; } @@ -2825,10 +2829,6 @@ if (is_dirty) { struct kvm_memslots *slots, *old_slots; - spin_lock(&kvm->mmu_lock); - kvm_mmu_slot_remove_write_access(kvm, log->slot); - spin_unlock(&kvm->mmu_lock); - slots = kzalloc(sizeof(struct kvm_memslots), GFP_KERNEL); if (!slots) goto out_free; @@ -2841,6 +2841,11 @@ synchronize_srcu_expedited(&kvm->srcu); dirty_bitmap = old_slots->memslots[log->slot].dirty_bitmap; kfree(old_slots); + + spin_lock(&kvm->mmu_lock); + kvm_mmu_slot_remove_write_access(kvm, log->slot); + spin_unlock(&kvm->mmu_lock); + } r = 0; @@ -3152,6 +3157,7 @@ now_ns = timespec_to_ns(&now); user_ns.clock = kvm->arch.kvmclock_offset + now_ns; user_ns.flags = 0; + memset(&user_ns.pad, 0, sizeof(user_ns.pad)); r = -EFAULT; if (copy_to_user(argp, &user_ns, sizeof(user_ns))) @@ -5438,6 +5444,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 +5461,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, @@ -1712,17 +1712,16 @@ struct x86_emulate_ops *ops) { struct decode_cache *c = &ctxt->decode; - u64 old = c->dst.orig_val; + u64 old = c->dst.orig_val64; if (((u32) (old >> 0) != (u32) c->regs[VCPU_REGS_RAX]) || ((u32) (old >> 32) != (u32) c->regs[VCPU_REGS_RDX])) { - c->regs[VCPU_REGS_RAX] = (u32) (old >> 0); c->regs[VCPU_REGS_RDX] = (u32) (old >> 32); ctxt->eflags &= ~EFLG_ZF; } else { - c->dst.val = ((u64)c->regs[VCPU_REGS_RCX] << 32) | - (u32) c->regs[VCPU_REGS_RBX]; + c->dst.val64 = ((u64)c->regs[VCPU_REGS_RCX] << 32) | + (u32) c->regs[VCPU_REGS_RBX]; ctxt->eflags |= EFLG_ZF; } @@ -2535,7 +2534,7 @@ ctxt->vcpu); if (rc != X86EMUL_CONTINUE) goto done; - c->src.orig_val = c->src.val; + c->src.orig_val64 = c->src.val64; } if (c->src2.type == OP_MEM) { --- 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/kvm/irq.h +++ linux-2.6.35/arch/x86/kvm/irq.h @@ -45,7 +45,6 @@ u8 irr; /* interrupt request register */ u8 imr; /* interrupt mask register */ u8 isr; /* interrupt service register */ - u8 isr_ack; /* interrupt ack detection */ u8 priority_add; /* highest irq priority */ u8 irq_base; u8 read_reg_select; @@ -58,6 +57,7 @@ u8 init4; /* true if 4 byte init */ u8 elcr; /* PIIX edge/trigger selection */ u8 elcr_mask; + u8 isr_ack; /* interrupt ack detection */ struct kvm_pic *pics_state; }; --- 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,19 @@ case 14: *cpu_type = "i386/core"; break; - case 15: case 23: + case 0x0f: + case 0x16: + case 0x17: + case 0x1d: *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 +705,8 @@ char *cpu_type = NULL; int ret = 0; + using_nmi = 0; + if (!cpu_has_apic) return -ENODEV; @@ -761,7 +786,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/oprofile/op_model_amd.c +++ linux-2.6.35/arch/x86/oprofile/op_model_amd.c @@ -484,21 +484,29 @@ return 0; } -/* initialize the APIC for the IBS interrupts if available */ +/* + * check and reserve APIC extended interrupt LVT offset for IBS if + * available + * + * init_ibs() preforms implicitly cpu-local operations, so pin this + * thread to its current CPU + */ + static void init_ibs(void) { - ibs_caps = get_ibs_caps(); + preempt_disable(); + ibs_caps = get_ibs_caps(); if (!ibs_caps) - return; + goto out; - if (__init_ibs_nmi()) { + if (__init_ibs_nmi() < 0) ibs_caps = 0; - return; - } + else + printk(KERN_INFO "oprofile: AMD IBS detected (0x%08x)\n", ibs_caps); - printk(KERN_INFO "oprofile: AMD IBS detected (0x%08x)\n", - (unsigned)ibs_caps); +out: + preempt_enable(); } static int (*create_arch_files)(struct super_block *sb, struct dentry *root); --- 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/mm/srat_64.c +++ linux-2.6.35/arch/x86/mm/srat_64.c @@ -420,9 +420,11 @@ return -1; } - for_each_node_mask(i, nodes_parsed) - e820_register_active_regions(i, nodes[i].start >> PAGE_SHIFT, - nodes[i].end >> PAGE_SHIFT); + for (i = 0; i < num_node_memblks; i++) + e820_register_active_regions(memblk_nodeid[i], + node_memblk_range[i].start >> PAGE_SHIFT, + node_memblk_range[i].end >> PAGE_SHIFT); + /* for out of order entries in SRAT */ sort_node_map(); if (!nodes_cover_memory(nodes)) { --- 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/io.h +++ linux-2.6.35/arch/x86/include/asm/io.h @@ -206,6 +206,7 @@ extern void iounmap(volatile void __iomem *addr); +extern void set_iounmap_nonlazy(void); #ifdef __KERNEL__ --- linux-2.6.35.orig/arch/x86/include/asm/cpufeature.h +++ linux-2.6.35/arch/x86/include/asm/cpufeature.h @@ -150,7 +150,7 @@ #define X86_FEATURE_3DNOWPREFETCH (6*32+ 8) /* 3DNow prefetch instructions */ #define X86_FEATURE_OSVW (6*32+ 9) /* OS Visible Workaround */ #define X86_FEATURE_IBS (6*32+10) /* Instruction Based Sampling */ -#define X86_FEATURE_SSE5 (6*32+11) /* SSE-5 */ +#define X86_FEATURE_XOP (6*32+11) /* extended AVX instructions */ #define X86_FEATURE_SKINIT (6*32+12) /* SKINIT/STGI instructions */ #define X86_FEATURE_WDT (6*32+13) /* Watchdog timer */ #define X86_FEATURE_NODEID_MSR (6*32+19) /* NodeId MSR */ @@ -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/processor.h +++ linux-2.6.35/arch/x86/include/asm/processor.h @@ -763,29 +763,6 @@ extern unsigned long idle_halt; extern unsigned long idle_nomwait; -/* - * on systems with caches, caches must be flashed as the absolute - * last instruction before going into a suspended halt. Otherwise, - * dirty data can linger in the cache and become stale on resume, - * leading to strange errors. - * - * perform a variety of operations to guarantee that the compiler - * will not reorder instructions. wbinvd itself is serializing - * so the processor will not reorder. - * - * Systems without cache can just go into halt. - */ -static inline void wbinvd_halt(void) -{ - mb(); - /* check for clflush to determine if wbinvd is legal */ - if (cpu_has_clflush) - asm volatile("cli; wbinvd; 1: hlt; jmp 1b" : : : "memory"); - else - while (1) - halt(); -} - extern void enable_sep_cpu(void); extern int sysenter_setup(void); --- linux-2.6.35.orig/arch/x86/include/asm/pgtable_32.h +++ linux-2.6.35/arch/x86/include/asm/pgtable_32.h @@ -26,6 +26,7 @@ struct vm_area_struct; extern pgd_t swapper_pg_dir[1024]; +extern pgd_t trampoline_pg_dir[1024]; static inline void pgtable_cache_init(void) { } static inline void check_pgt_cache(void) { } --- linux-2.6.35.orig/arch/x86/include/asm/smp.h +++ linux-2.6.35/arch/x86/include/asm/smp.h @@ -50,7 +50,7 @@ void (*smp_prepare_cpus)(unsigned max_cpus); void (*smp_cpus_done)(unsigned max_cpus); - void (*smp_send_stop)(void); + void (*stop_other_cpus)(int wait); void (*smp_send_reschedule)(int cpu); int (*cpu_up)(unsigned cpu); @@ -73,7 +73,12 @@ static inline void smp_send_stop(void) { - smp_ops.smp_send_stop(); + smp_ops.stop_other_cpus(0); +} + +static inline void stop_other_cpus(void) +{ + smp_ops.stop_other_cpus(1); } static inline void smp_prepare_boot_cpu(void) --- 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/trampoline.h +++ linux-2.6.35/arch/x86/include/asm/trampoline.h @@ -13,14 +13,17 @@ extern unsigned long init_rsp; extern unsigned long initial_code; +extern unsigned long initial_page_table; extern unsigned long initial_gs; #define TRAMPOLINE_SIZE roundup(trampoline_end - trampoline_data, PAGE_SIZE) extern unsigned long setup_trampoline(void); +extern void __init setup_trampoline_page_table(void); extern void __init reserve_trampoline_memory(void); #else -static inline void reserve_trampoline_memory(void) {}; +static inline void setup_trampoline_page_table(void) {} +static inline void reserve_trampoline_memory(void) {} #endif /* CONFIG_X86_TRAMPOLINE */ #endif /* __ASSEMBLY__ */ --- 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/mwait.h +++ linux-2.6.35/arch/x86/include/asm/mwait.h @@ -0,0 +1,15 @@ +#ifndef _ASM_X86_MWAIT_H +#define _ASM_X86_MWAIT_H + +#define MWAIT_SUBSTATE_MASK 0xf +#define MWAIT_CSTATE_MASK 0xf +#define MWAIT_SUBSTATE_SIZE 4 +#define MWAIT_MAX_NUM_CSTATES 8 + +#define CPUID_MWAIT_LEAF 5 +#define CPUID5_ECX_EXTENSIONS_SUPPORTED 0x1 +#define CPUID5_ECX_INTERRUPT_BREAK 0x2 + +#define MWAIT_ECX_INTERRUPT_BREAK 0x1 + +#endif /* _ASM_X86_MWAIT_H */ --- linux-2.6.35.orig/arch/x86/include/asm/kvm_emulate.h +++ linux-2.6.35/arch/x86/include/asm/kvm_emulate.h @@ -143,7 +143,15 @@ struct operand { enum { OP_REG, OP_MEM, OP_IMM, OP_NONE } type; unsigned int bytes; - unsigned long val, orig_val, *ptr; + union { + unsigned long orig_val; + u64 orig_val64; + }; + unsigned long *ptr; + union { + unsigned long val; + u64 val64; + }; }; struct fetch_cache { --- linux-2.6.35.orig/arch/x86/include/asm/kvm_host.h +++ linux-2.6.35/arch/x86/include/asm/kvm_host.h @@ -673,20 +673,6 @@ return (struct kvm_mmu_page *)page_private(page); } -static inline u16 kvm_read_fs(void) -{ - u16 seg; - asm("mov %%fs, %0" : "=g"(seg)); - return seg; -} - -static inline u16 kvm_read_gs(void) -{ - u16 seg; - asm("mov %%gs, %0" : "=g"(seg)); - return seg; -} - static inline u16 kvm_read_ldt(void) { u16 ldt; @@ -694,16 +680,6 @@ return ldt; } -static inline void kvm_load_fs(u16 sel) -{ - asm("mov %0, %%fs" : : "rm"(sel)); -} - -static inline void kvm_load_gs(u16 sel) -{ - asm("mov %0, %%gs" : : "rm"(sel)); -} - static inline void kvm_load_ldt(u16 sel) { asm("lldt %0" : : "rm"(sel)); --- 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/amd_iommu_types.h +++ linux-2.6.35/arch/x86/include/asm/amd_iommu_types.h @@ -368,6 +368,9 @@ /* capabilities of that IOMMU read from ACPI */ u32 cap; + /* flags read from acpi table */ + u8 acpi_flags; + /* * Capability pointer. There could be more than one IOMMU per PCI * device function if there are more than one AMD IOMMU capability @@ -411,6 +414,15 @@ /* default dma_ops domain for that IOMMU */ struct dma_ops_domain *default_dom; + + /* + * This array is required to work around a potential BIOS bug. + * The BIOS may miss to restore parts of the PCI configuration + * space when the system resumes from S3. The result is that the + * IOMMU does not execute commands anymore which leads to system + * failure. + */ + u32 cache_cfg[4]; }; /* --- 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/amd_iommu_proto.h +++ linux-2.6.35/arch/x86/include/asm/amd_iommu_proto.h @@ -38,4 +38,10 @@ #endif /* !CONFIG_AMD_IOMMU_STATS */ +static inline bool is_rd890_iommu(struct pci_dev *pdev) +{ + return (pdev->vendor == PCI_VENDOR_ID_ATI) && + (pdev->device == PCI_DEVICE_ID_RD890_IOMMU); +} + #endif /* _ASM_X86_AMD_IOMMU_PROTO_H */ --- 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/vdso/Makefile +++ linux-2.6.35/arch/x86/vdso/Makefile @@ -25,7 +25,7 @@ export CPPFLAGS_vdso.lds += -P -C -VDSO_LDFLAGS_vdso.lds = -m elf_x86_64 -Wl,-soname=linux-vdso.so.1 \ +VDSO_LDFLAGS_vdso.lds = -m64 -Wl,-soname=linux-vdso.so.1 \ -Wl,-z,max-page-size=4096 -Wl,-z,common-page-size=4096 $(obj)/vdso.o: $(src)/vdso.S $(obj)/vdso.so @@ -69,7 +69,7 @@ vdso32-images = $(vdso32.so-y:%=vdso32-%.so) CPPFLAGS_vdso32.lds = $(CPPFLAGS_vdso.lds) -VDSO_LDFLAGS_vdso32.lds = -m elf_i386 -Wl,-soname=linux-gate.so.1 +VDSO_LDFLAGS_vdso32.lds = -m32 -Wl,-soname=linux-gate.so.1 # This makes sure the $(obj) subdirectory exists even though vdso32/ # is not a kbuild sub-make subdirectory. --- 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/ppc970-pmu.c +++ linux-2.6.35/arch/powerpc/kernel/ppc970-pmu.c @@ -169,9 +169,11 @@ switch (unit) { case PM_VPU: mask = 0x4c; /* byte 0 bits 2,3,6 */ + break; case PM_LSU0: /* byte 2 bits 0,2,3,4,6; all of byte 1 */ mask = 0x085dff00; + break; case PM_LSU1L: mask = 0x50 << 24; /* byte 3 bits 4,6 */ break; --- linux-2.6.35.orig/arch/powerpc/kernel/head_64.S +++ linux-2.6.35/arch/powerpc/kernel/head_64.S @@ -572,15 +572,21 @@ /* Set thread priority to MEDIUM */ HMT_MEDIUM - /* Do early setup for that CPU (stab, slb, hash table pointer) */ - bl .early_setup_secondary - /* Initialize the kernel stack. Just a repeat for iSeries. */ LOAD_REG_ADDR(r3, current_set) sldi r28,r24,3 /* get current_set[cpu#] */ - ldx r1,r3,r28 - addi r1,r1,THREAD_SIZE-STACK_FRAME_OVERHEAD - std r1,PACAKSAVE(r13) + ldx r14,r3,r28 + addi r14,r14,THREAD_SIZE-STACK_FRAME_OVERHEAD + std r14,PACAKSAVE(r13) + + /* Do early setup for that CPU (stab, slb, hash table pointer) */ + bl .early_setup_secondary + + /* + * setup the new stack pointer, but *don't* use this until + * translation is on. + */ + mr r1, r14 /* Clear backchain so we get nice backtraces */ li r7,0 --- 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/mm/hash_utils_64.c +++ linux-2.6.35/arch/powerpc/mm/hash_utils_64.c @@ -1122,7 +1122,7 @@ else #endif /* CONFIG_PPC_HAS_HASH_64K */ rc = __hash_page_4K(ea, access, vsid, ptep, trap, local, ssize, - subpage_protection(pgdir, ea)); + subpage_protection(mm, ea)); /* Dump some info in case of hash insertion failure, they should * never happen so it is really useful to know if/when they do --- 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/sh/include/asm/syscalls_32.h +++ linux-2.6.35/arch/sh/include/asm/syscalls_32.h @@ -19,8 +19,8 @@ asmlinkage int sys_vfork(unsigned long r4, unsigned long r5, unsigned long r6, unsigned long r7, struct pt_regs __regs); -asmlinkage int sys_execve(char __user *ufilename, char __user * __user *uargv, - char __user * __user *uenvp, unsigned long r7, +asmlinkage int sys_execve(char __user *ufilename, const char __user * __user *uargv, + const char __user * __user *uenvp, unsigned long r7, struct pt_regs __regs); asmlinkage int sys_sigsuspend(old_sigset_t mask, unsigned long r5, unsigned long r6, unsigned long r7, --- 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/microblaze/Makefile +++ linux-2.6.35/arch/microblaze/Makefile @@ -72,12 +72,16 @@ all: linux.bin -BOOT_TARGETS = linux.bin linux.bin.gz simpleImage.% +# With make 3.82 we cannot mix normal and wildcard targets +BOOT_TARGETS1 = linux.bin linux.bin.gz +BOOT_TARGETS2 = simpleImage.% archclean: $(Q)$(MAKE) $(clean)=$(boot) -$(BOOT_TARGETS): vmlinux +$(BOOT_TARGETS1): vmlinux + $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ +$(BOOT_TARGETS2): vmlinux $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ define archhelp --- linux-2.6.35.orig/arch/arm/Kconfig +++ linux-2.6.35/arch/arm/Kconfig @@ -273,7 +273,6 @@ bool "Atmel AT91" select ARCH_REQUIRE_GPIOLIB select HAVE_CLK - select ARCH_USES_GETTIMEOFFSET help This enables support for systems based on the Atmel AT91RM9200, AT91SAM9 and AT91CAP9 processors. @@ -1027,6 +1026,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 +1386,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 +1692,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/dma.c +++ linux-2.6.35/arch/arm/plat-omap/dma.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -993,11 +994,17 @@ l = dma_read(CCR(lch)); /* - * Errata: On ES2.0 BUFFERING disable must be set. - * This will always fail on ES1.0 + * Errata: Inter Frame DMA buffering issue (All OMAP2420 and + * OMAP2430ES1.0): DMA will wrongly buffer elements if packing and + * bursting is enabled. This might result in data gets stalled in + * FIFO at the end of the block. + * Workaround: DMA channels must have BUFFERING_DISABLED bit set to + * guarantee no data will stay in the DMA FIFO in case inter frame + * buffering occurs. */ - if (cpu_is_omap24xx()) - l |= OMAP_DMA_CCR_EN; + if (cpu_is_omap2420() || + (cpu_is_omap2430() && (omap_type() == OMAP2430_REV_ES1_0))) + l |= OMAP_DMA_CCR_BUFFERING_DISABLE; l |= OMAP_DMA_CCR_EN; dma_write(l, CCR(lch)); @@ -1015,8 +1022,39 @@ dma_write(0, CICR(lch)); l = dma_read(CCR(lch)); - l &= ~OMAP_DMA_CCR_EN; - dma_write(l, CCR(lch)); + /* OMAP3 Errata i541: sDMA FIFO draining does not finish */ + if (cpu_is_omap34xx() && (l & OMAP_DMA_CCR_SEL_SRC_DST_SYNC)) { + int i = 0; + u32 sys_cf; + + /* Configure No-Standby */ + l = dma_read(OCP_SYSCONFIG); + sys_cf = l; + l &= ~DMA_SYSCONFIG_MIDLEMODE_MASK; + l |= DMA_SYSCONFIG_MIDLEMODE(DMA_IDLEMODE_NO_IDLE); + dma_write(l , OCP_SYSCONFIG); + + l = dma_read(CCR(lch)); + l &= ~OMAP_DMA_CCR_EN; + dma_write(l, CCR(lch)); + + /* Wait for sDMA FIFO drain */ + l = dma_read(CCR(lch)); + while (i < 100 && (l & (OMAP_DMA_CCR_RD_ACTIVE | + OMAP_DMA_CCR_WR_ACTIVE))) { + udelay(5); + i++; + l = dma_read(CCR(lch)); + } + if (i >= 100) + printk(KERN_ERR "DMA drain did not complete on " + "lch %d\n", lch); + /* Restore OCP_SYSCONFIG */ + dma_write(sys_cf, OCP_SYSCONFIG); + } else { + l &= ~OMAP_DMA_CCR_EN; + dma_write(l, CCR(lch)); + } if (!omap_dma_in_1510_mode() && dma_chan[lch].next_lch != -1) { int next_lch, cur_lch = lch; --- linux-2.6.35.orig/arch/arm/plat-omap/common.c +++ linux-2.6.35/arch/arm/plat-omap/common.c @@ -309,19 +309,13 @@ .uart1_phys = OMAP3_UART1_BASE, .uart2_phys = OMAP3_UART2_BASE, .uart3_phys = OMAP3_UART3_BASE, + .uart4_phys = OMAP3_UART4_BASE, /* Only on 3630 */ }; -void __init omap2_set_globals_343x(void) +void __init omap2_set_globals_3xxx(void) { __omap2_set_globals(&omap3_globals); } - -void __init omap2_set_globals_36xx(void) -{ - omap3_globals.uart4_phys = OMAP3_UART4_BASE; - - __omap2_set_globals(&omap3_globals); -} #endif #if defined(CONFIG_ARCH_OMAP4) --- linux-2.6.35.orig/arch/arm/plat-omap/include/plat/dma.h +++ linux-2.6.35/arch/arm/plat-omap/include/plat/dma.h @@ -319,6 +319,8 @@ #define OMAP34XX_DMA_USIM_TX 79 /* S_DMA_78 */ #define OMAP34XX_DMA_USIM_RX 80 /* S_DMA_79 */ +#define OMAP36XX_DMA_UART4_TX 81 /* S_DMA_80 */ +#define OMAP36XX_DMA_UART4_RX 82 /* S_DMA_81 */ /*----------------------------------------------------------------------------*/ #define OMAP1_DMA_TOUT_IRQ (1 << 0) @@ -335,6 +337,10 @@ #define OMAP2_DMA_MISALIGNED_ERR_IRQ (1 << 11) #define OMAP_DMA_CCR_EN (1 << 7) +#define OMAP_DMA_CCR_RD_ACTIVE (1 << 9) +#define OMAP_DMA_CCR_WR_ACTIVE (1 << 10) +#define OMAP_DMA_CCR_SEL_SRC_DST_SYNC (1 << 24) +#define OMAP_DMA_CCR_BUFFERING_DISABLE (1 << 25) #define OMAP_DMA_DATA_TYPE_S8 0x00 #define OMAP_DMA_DATA_TYPE_S16 0x01 --- linux-2.6.35.orig/arch/arm/plat-omap/include/plat/irqs.h +++ linux-2.6.35/arch/arm/plat-omap/include/plat/irqs.h @@ -345,6 +345,8 @@ #define INT_34XX_MMC3_IRQ 94 #define INT_34XX_GPT12_IRQ 95 +#define INT_36XX_UART4_IRQ 80 + #define INT_35XX_HECC0_IRQ 24 #define INT_35XX_HECC1_IRQ 28 #define INT_35XX_EMAC_C0_RXTHRESH_IRQ 67 --- 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/plat-omap/include/plat/common.h +++ linux-2.6.35/arch/arm/plat-omap/include/plat/common.h @@ -56,8 +56,7 @@ void omap2_set_globals_242x(void); void omap2_set_globals_243x(void); -void omap2_set_globals_343x(void); -void omap2_set_globals_36xx(void); +void omap2_set_globals_3xxx(void); void omap2_set_globals_443x(void); /* These get called from omap2_set_globals_xxxx(), do not call these */ --- 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/mach-cns3xxx/include/mach/debug-macro.S +++ linux-2.6.35/arch/arm/mach-cns3xxx/include/mach/debug-macro.S @@ -10,7 +10,7 @@ * published by the Free Software Foundation. */ - .macro addruart,rx + .macro addruart,rx,rtmp mrc p15, 0, \rx, c1, c0 tst \rx, #1 @ MMU enabled? moveq \rx, #0x10000000 --- 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/oprofile/common.c +++ linux-2.6.35/arch/arm/oprofile/common.c @@ -102,6 +102,7 @@ if (IS_ERR(pevent)) { ret = PTR_ERR(pevent); } else if (pevent->state != PERF_EVENT_STATE_ACTIVE) { + perf_event_release_kernel(pevent); pr_warning("oprofile: failed to enable event %d " "on CPU %d\n", event, cpu); ret = -EBUSY; @@ -365,6 +366,7 @@ ret = init_driverfs(); if (ret) { kfree(counter_config); + counter_config = NULL; return ret; } @@ -402,7 +404,6 @@ struct perf_event *event; if (*perf_events) { - exit_driverfs(); for_each_possible_cpu(cpu) { for (id = 0; id < perf_num_counters; ++id) { event = perf_events[cpu][id]; @@ -413,8 +414,10 @@ } } - if (counter_config) + if (counter_config) { kfree(counter_config); + exit_driverfs(); + } } #else int __init oprofile_arch_init(struct oprofile_operations *ops) --- 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(); @@ -509,7 +607,7 @@ static void __init omap3_beagle_map_io(void) { - omap2_set_globals_343x(); + omap2_set_globals_3xxx(); omap34xx_map_common_io(); } --- 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); @@ -486,7 +568,7 @@ static void __init overo_map_io(void) { - omap2_set_globals_343x(); + omap2_set_globals_3xxx(); omap34xx_map_common_io(); } --- linux-2.6.35.orig/arch/arm/mach-omap2/serial.c +++ linux-2.6.35/arch/arm/mach-omap2/serial.c @@ -444,7 +444,7 @@ omap_uart_smart_idle_enable(uart, 0); if (cpu_is_omap34xx()) { - u32 mod = (uart->num == 2) ? OMAP3430_PER_MOD : CORE_MOD; + u32 mod = (uart->num > 1) ? OMAP3430_PER_MOD : CORE_MOD; u32 wk_mask = 0; u32 padconf = 0; @@ -463,6 +463,10 @@ wk_mask = OMAP3430_ST_UART3_MASK; padconf = 0x19e; break; + case 3: + wk_mask = OMAP3630_ST_UART4_MASK; + padconf = 0x0d2; + break; } uart->wk_mask = wk_mask; uart->padconf = padconf; @@ -556,6 +560,11 @@ #define DEV_CREATE_FILE(dev, attr) WARN_ON(device_create_file(dev, attr)) #else static inline void omap_uart_idle_init(struct omap_uart_state *uart) {} +static void omap_uart_block_sleep(struct omap_uart_state *uart) +{ + /* Needed to enable UART clocks when built without CONFIG_PM */ + omap_uart_enable_clocks(uart); +} #define DEV_CREATE_FILE(dev, attr) #endif /* CONFIG_PM */ --- linux-2.6.35.orig/arch/arm/mach-omap2/pm34xx.c +++ linux-2.6.35/arch/arm/mach-omap2/pm34xx.c @@ -753,6 +753,14 @@ static void __init prcm_setup_regs(void) { + u32 omap3630_auto_uart4_mask = cpu_is_omap3630() ? + OMAP3630_AUTO_UART4_MASK : 0; + u32 omap3630_en_uart4_mask = cpu_is_omap3630() ? + OMAP3630_EN_UART4_MASK : 0; + u32 omap3630_grpsel_uart4_mask = cpu_is_omap3630() ? + OMAP3630_GRPSEL_UART4_MASK : 0; + + /* XXX Reset all wkdeps. This should be done when initializing * powerdomains */ prm_write_mod_reg(0, OMAP3430_IVA2_MOD, PM_WKDEP); @@ -839,6 +847,7 @@ CM_AUTOIDLE); cm_write_mod_reg( + omap3630_auto_uart4_mask | OMAP3430_AUTO_GPIO6_MASK | OMAP3430_AUTO_GPIO5_MASK | OMAP3430_AUTO_GPIO4_MASK | @@ -915,14 +924,16 @@ OMAP3430_DSS_MOD, PM_WKEN); /* Enable wakeups in PER */ - prm_write_mod_reg(OMAP3430_EN_GPIO2_MASK | OMAP3430_EN_GPIO3_MASK | + prm_write_mod_reg(omap3630_en_uart4_mask | + OMAP3430_EN_GPIO2_MASK | OMAP3430_EN_GPIO3_MASK | OMAP3430_EN_GPIO4_MASK | OMAP3430_EN_GPIO5_MASK | OMAP3430_EN_GPIO6_MASK | OMAP3430_EN_UART3_MASK | OMAP3430_EN_MCBSP2_MASK | OMAP3430_EN_MCBSP3_MASK | OMAP3430_EN_MCBSP4_MASK, OMAP3430_PER_MOD, PM_WKEN); /* and allow them to wake up MPU */ - prm_write_mod_reg(OMAP3430_GRPSEL_GPIO2_MASK | + prm_write_mod_reg(omap3630_grpsel_uart4_mask | + OMAP3430_GRPSEL_GPIO2_MASK | OMAP3430_GRPSEL_GPIO3_MASK | OMAP3430_GRPSEL_GPIO4_MASK | OMAP3430_GRPSEL_GPIO5_MASK | --- linux-2.6.35.orig/arch/arm/mach-omap2/board-omap3stalker.c +++ linux-2.6.35/arch/arm/mach-omap2/board-omap3stalker.c @@ -654,7 +654,7 @@ static void __init omap3_stalker_map_io(void) { - omap2_set_globals_343x(); + omap2_set_globals_3xxx(); omap34xx_map_common_io(); } --- linux-2.6.35.orig/arch/arm/mach-omap2/board-zoom3.c +++ linux-2.6.35/arch/arm/mach-omap2/board-zoom3.c @@ -27,7 +27,7 @@ static void __init omap_zoom_map_io(void) { - omap2_set_globals_36xx(); + omap2_set_globals_3xxx(); omap34xx_map_common_io(); } --- linux-2.6.35.orig/arch/arm/mach-omap2/board-zoom2.c +++ linux-2.6.35/arch/arm/mach-omap2/board-zoom2.c @@ -86,7 +86,7 @@ static void __init omap_zoom2_map_io(void) { - omap2_set_globals_343x(); + omap2_set_globals_3xxx(); omap34xx_map_common_io(); } --- linux-2.6.35.orig/arch/arm/mach-omap2/board-omap3touchbook.c +++ linux-2.6.35/arch/arm/mach-omap2/board-omap3touchbook.c @@ -561,7 +561,7 @@ static void __init omap3_touchbook_map_io(void) { - omap2_set_globals_343x(); + omap2_set_globals_3xxx(); omap34xx_map_common_io(); } --- linux-2.6.35.orig/arch/arm/mach-omap2/board-omap3pandora.c +++ linux-2.6.35/arch/arm/mach-omap2/board-omap3pandora.c @@ -592,7 +592,7 @@ static void __init omap3pandora_map_io(void) { - omap2_set_globals_343x(); + omap2_set_globals_3xxx(); omap34xx_map_common_io(); } --- 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); @@ -717,7 +722,7 @@ static void __init omap3_evm_map_io(void) { - omap2_set_globals_343x(); + omap2_set_globals_3xxx(); omap34xx_map_common_io(); } --- linux-2.6.35.orig/arch/arm/mach-omap2/board-3630sdp.c +++ linux-2.6.35/arch/arm/mach-omap2/board-3630sdp.c @@ -68,7 +68,7 @@ static void __init omap_sdp_map_io(void) { - omap2_set_globals_36xx(); + omap2_set_globals_3xxx(); omap34xx_map_common_io(); } --- linux-2.6.35.orig/arch/arm/mach-omap2/board-ldp.c +++ linux-2.6.35/arch/arm/mach-omap2/board-ldp.c @@ -408,7 +408,7 @@ static void __init omap_ldp_map_io(void) { - omap2_set_globals_343x(); + omap2_set_globals_3xxx(); omap34xx_map_common_io(); } --- linux-2.6.35.orig/arch/arm/mach-omap2/prm-regbits-34xx.h +++ linux-2.6.35/arch/arm/mach-omap2/prm-regbits-34xx.h @@ -122,6 +122,7 @@ #define OMAP3430_MEMRETSTATE_MASK (1 << 8) /* PM_MPUGRPSEL_PER, PM_IVA2GRPSEL_PER shared bits */ +#define OMAP3630_GRPSEL_UART4_MASK (1 << 18) #define OMAP3430_GRPSEL_GPIO6_MASK (1 << 17) #define OMAP3430_GRPSEL_GPIO5_MASK (1 << 16) #define OMAP3430_GRPSEL_GPIO4_MASK (1 << 15) --- linux-2.6.35.orig/arch/arm/mach-omap2/board-devkit8000.c +++ linux-2.6.35/arch/arm/mach-omap2/board-devkit8000.c @@ -816,7 +816,7 @@ static void __init devkit8000_map_io(void) { - omap2_set_globals_343x(); + omap2_set_globals_3xxx(); omap34xx_map_common_io(); } --- linux-2.6.35.orig/arch/arm/mach-omap2/board-am3517evm.c +++ linux-2.6.35/arch/arm/mach-omap2/board-am3517evm.c @@ -463,7 +463,7 @@ static void __init am3517_evm_map_io(void) { - omap2_set_globals_343x(); + omap2_set_globals_3xxx(); omap34xx_map_common_io(); } --- 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,55 +666,21 @@ 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) { - omap2_set_globals_343x(); + omap2_set_globals_3xxx(); omap34xx_map_common_io(); } --- linux-2.6.35.orig/arch/arm/mach-omap2/board-rx51.c +++ linux-2.6.35/arch/arm/mach-omap2/board-rx51.c @@ -143,7 +143,7 @@ static void __init rx51_map_io(void) { - omap2_set_globals_343x(); + omap2_set_globals_3xxx(); rx51_video_mem_init(); omap34xx_map_common_io(); } --- linux-2.6.35.orig/arch/arm/mach-omap2/board-cm-t35.c +++ linux-2.6.35/arch/arm/mach-omap2/board-cm-t35.c @@ -710,7 +710,7 @@ static void __init cm_t35_map_io(void) { - omap2_set_globals_343x(); + omap2_set_globals_3xxx(); omap34xx_map_common_io(); } --- linux-2.6.35.orig/arch/arm/mach-omap2/prcm-common.h +++ linux-2.6.35/arch/arm/mach-omap2/prcm-common.h @@ -382,6 +382,9 @@ #define OMAP3430_EN_MPU_SHIFT 1 /* CM_FCLKEN_PER, CM_ICLKEN_PER, PM_WKEN_PER shared bits */ + +#define OMAP3630_EN_UART4_MASK (1 << 18) +#define OMAP3630_EN_UART4_SHIFT 18 #define OMAP3430_EN_GPIO6_MASK (1 << 17) #define OMAP3430_EN_GPIO6_SHIFT 17 #define OMAP3430_EN_GPIO5_MASK (1 << 16) @@ -422,6 +425,8 @@ #define OMAP3430_EN_MCBSP2_SHIFT 0 /* CM_IDLEST_PER, PM_WKST_PER shared bits */ +#define OMAP3630_ST_UART4_SHIFT 18 +#define OMAP3630_ST_UART4_MASK (1 << 18) #define OMAP3430_ST_GPIO6_SHIFT 17 #define OMAP3430_ST_GPIO6_MASK (1 << 17) #define OMAP3430_ST_GPIO5_SHIFT 16 --- 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-omap2/clock3xxx_data.c +++ linux-2.6.35/arch/arm/mach-omap2/clock3xxx_data.c @@ -2465,6 +2465,16 @@ .recalc = &followparent_recalc, }; +static struct clk uart4_fck = { + .name = "uart4_fck", + .ops = &clkops_omap2_dflt_wait, + .parent = &per_48m_fck, + .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN), + .enable_bit = OMAP3630_EN_UART4_SHIFT, + .clkdm_name = "per_clkdm", + .recalc = &followparent_recalc, +}; + static struct clk gpt2_fck = { .name = "gpt2_fck", .ops = &clkops_omap2_dflt_wait, @@ -2715,6 +2725,16 @@ .recalc = &followparent_recalc, }; +static struct clk uart4_ick = { + .name = "uart4_ick", + .ops = &clkops_omap2_dflt_wait, + .parent = &per_l4_ick, + .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_ICLKEN), + .enable_bit = OMAP3630_EN_UART4_SHIFT, + .clkdm_name = "per_clkdm", + .recalc = &followparent_recalc, +}; + static struct clk gpt9_ick = { .name = "gpt9_ick", .ops = &clkops_omap2_dflt_wait, @@ -3344,6 +3364,7 @@ CLK(NULL, "per_96m_fck", &per_96m_fck, CK_3XXX), CLK(NULL, "per_48m_fck", &per_48m_fck, CK_3XXX), CLK(NULL, "uart3_fck", &uart3_fck, CK_3XXX), + CLK(NULL, "uart4_fck", &uart4_fck, CK_36XX), CLK(NULL, "gpt2_fck", &gpt2_fck, CK_3XXX), CLK(NULL, "gpt3_fck", &gpt3_fck, CK_3XXX), CLK(NULL, "gpt4_fck", &gpt4_fck, CK_3XXX), @@ -3367,6 +3388,7 @@ CLK(NULL, "gpio2_ick", &gpio2_ick, CK_3XXX), CLK(NULL, "wdt3_ick", &wdt3_ick, CK_3XXX), CLK(NULL, "uart3_ick", &uart3_ick, CK_3XXX), + CLK(NULL, "uart4_ick", &uart4_ick, CK_36XX), CLK(NULL, "gpt9_ick", &gpt9_ick, CK_3XXX), CLK(NULL, "gpt8_ick", &gpt8_ick, CK_3XXX), CLK(NULL, "gpt7_ick", &gpt7_ick, CK_3XXX), --- linux-2.6.35.orig/arch/arm/mach-omap2/board-3430sdp.c +++ linux-2.6.35/arch/arm/mach-omap2/board-3430sdp.c @@ -805,7 +805,7 @@ static void __init omap_3430sdp_map_io(void) { - omap2_set_globals_343x(); + omap2_set_globals_3xxx(); omap34xx_map_common_io(); } --- linux-2.6.35.orig/arch/arm/mach-omap2/cm-regbits-34xx.h +++ linux-2.6.35/arch/arm/mach-omap2/cm-regbits-34xx.h @@ -649,6 +649,8 @@ #define OMAP3430_ST_MCBSP2_MASK (1 << 0) /* CM_AUTOIDLE_PER */ +#define OMAP3630_AUTO_UART4_MASK (1 << 18) +#define OMAP3630_AUTO_UART4_SHIFT 18 #define OMAP3430_AUTO_GPIO6_MASK (1 << 17) #define OMAP3430_AUTO_GPIO6_SHIFT 17 #define OMAP3430_AUTO_GPIO5_MASK (1 << 16) --- 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/mach-at91/include/mach/at91_mci.h +++ linux-2.6.35/arch/arm/mach-at91/include/mach/at91_mci.h @@ -74,6 +74,8 @@ #define AT91_MCI_TRTYP_BLOCK (0 << 19) #define AT91_MCI_TRTYP_MULTIPLE (1 << 19) #define AT91_MCI_TRTYP_STREAM (2 << 19) +#define AT91_MCI_TRTYP_SDIO_BYTE (4 << 19) +#define AT91_MCI_TRTYP_SDIO_BLOCK (5 << 19) #define AT91_MCI_BLKR 0x18 /* Block Register */ #define AT91_MCI_BLKR_BCNT(n) ((0xffff & (n)) << 0) /* Block count */ --- linux-2.6.35.orig/arch/arm/mm/fault-armv.c +++ linux-2.6.35/arch/arm/mm/fault-armv.c @@ -65,6 +65,30 @@ return ret; } +#if USE_SPLIT_PTLOCKS +/* + * If we are using split PTE locks, then we need to take the page + * lock here. Otherwise we are using shared mm->page_table_lock + * which is already locked, thus cannot take it. + */ +static inline void do_pte_lock(spinlock_t *ptl) +{ + /* + * Use nested version here to indicate that we are already + * holding one similar spinlock. + */ + spin_lock_nested(ptl, SINGLE_DEPTH_NESTING); +} + +static inline void do_pte_unlock(spinlock_t *ptl) +{ + spin_unlock(ptl); +} +#else /* !USE_SPLIT_PTLOCKS */ +static inline void do_pte_lock(spinlock_t *ptl) {} +static inline void do_pte_unlock(spinlock_t *ptl) {} +#endif /* USE_SPLIT_PTLOCKS */ + static int adjust_pte(struct vm_area_struct *vma, unsigned long address, unsigned long pfn) { @@ -89,11 +113,11 @@ */ ptl = pte_lockptr(vma->vm_mm, pmd); pte = pte_offset_map_nested(pmd, address); - spin_lock(ptl); + do_pte_lock(ptl); ret = do_adjust_pte(vma, address, pfn, pte); - spin_unlock(ptl); + do_pte_unlock(ptl); pte_unmap_nested(pte); return ret; --- 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/mm/cache-v6.S +++ linux-2.6.35/arch/arm/mm/cache-v6.S @@ -196,6 +196,10 @@ * - end - virtual end address of region */ v6_dma_inv_range: +#ifdef CONFIG_DMA_CACHE_RWFO + ldrb r2, [r0] @ read for ownership + strb r2, [r0] @ write for ownership +#endif tst r0, #D_CACHE_LINE_SIZE - 1 bic r0, r0, #D_CACHE_LINE_SIZE - 1 #ifdef HARVARD_CACHE @@ -204,6 +208,10 @@ mcrne p15, 0, r0, c7, c11, 1 @ clean unified line #endif tst r1, #D_CACHE_LINE_SIZE - 1 +#ifdef CONFIG_DMA_CACHE_RWFO + ldrneb r2, [r1, #-1] @ read for ownership + strneb r2, [r1, #-1] @ write for ownership +#endif bic r1, r1, #D_CACHE_LINE_SIZE - 1 #ifdef HARVARD_CACHE mcrne p15, 0, r1, c7, c14, 1 @ clean & invalidate D line @@ -211,10 +219,6 @@ mcrne p15, 0, r1, c7, c15, 1 @ clean & invalidate unified line #endif 1: -#ifdef CONFIG_DMA_CACHE_RWFO - ldr r2, [r0] @ read for ownership - str r2, [r0] @ write for ownership -#endif #ifdef HARVARD_CACHE mcr p15, 0, r0, c7, c6, 1 @ invalidate D line #else @@ -222,6 +226,10 @@ #endif add r0, r0, #D_CACHE_LINE_SIZE cmp r0, r1 +#ifdef CONFIG_DMA_CACHE_RWFO + ldrlo r2, [r0] @ read for ownership + strlo r2, [r0] @ write for ownership +#endif blo 1b mov r0, #0 mcr p15, 0, r0, c7, c10, 4 @ drain write buffer @@ -256,12 +264,12 @@ * - end - virtual end address of region */ ENTRY(v6_dma_flush_range) - bic r0, r0, #D_CACHE_LINE_SIZE - 1 -1: #ifdef CONFIG_DMA_CACHE_RWFO - ldr r2, [r0] @ read for ownership - str r2, [r0] @ write for ownership + ldrb r2, [r0] @ read for ownership + strb r2, [r0] @ write for ownership #endif + bic r0, r0, #D_CACHE_LINE_SIZE - 1 +1: #ifdef HARVARD_CACHE mcr p15, 0, r0, c7, c14, 1 @ clean & invalidate D line #else @@ -269,6 +277,10 @@ #endif add r0, r0, #D_CACHE_LINE_SIZE cmp r0, r1 +#ifdef CONFIG_DMA_CACHE_RWFO + ldrlob r2, [r0] @ read for ownership + strlob r2, [r0] @ write for ownership +#endif blo 1b mov r0, #0 mcr p15, 0, r0, c7, c10, 4 @ drain write buffer --- linux-2.6.35.orig/arch/arm/lib/findbit.S +++ linux-2.6.35/arch/arm/lib/findbit.S @@ -174,8 +174,8 @@ */ .L_found: #if __LINUX_ARM_ARCH__ >= 5 - rsb r1, r3, #0 - and r3, r3, r1 + rsb r0, r3, #0 + and r3, r3, r0 clz r3, r3 rsb r3, r3, #31 add r0, r2, r3 @@ -190,5 +190,7 @@ addeq r2, r2, #1 mov r0, r2 #endif + cmp r1, r0 @ Clamp to maxbit + movlo r0, r1 mov pc, lr --- 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/arch/arm/include/asm/assembler.h +++ linux-2.6.35/arch/arm/include/asm/assembler.h @@ -215,7 +215,7 @@ @ Slightly optimised to avoid incrementing the pointer twice usraccoff \instr, \reg, \ptr, \inc, 0, \cond, \abort .if \rept == 2 - usraccoff \instr, \reg, \ptr, \inc, 4, \cond, \abort + usraccoff \instr, \reg, \ptr, \inc, \inc, \cond, \abort .endif add\cond \ptr, #\rept * \inc --- linux-2.6.35.orig/arch/arm/mach-vexpress/ct-ca9x4.c +++ linux-2.6.35/arch/arm/mach-vexpress/ct-ca9x4.c @@ -225,7 +225,7 @@ int i; #ifdef CONFIG_CACHE_L2X0 - l2x0_init(MMIO_P2V(CT_CA9X4_L2CC), 0x00000000, 0xfe0fffff); + l2x0_init(MMIO_P2V(CT_CA9X4_L2CC), 0x00400000, 0xfe0fffff); #endif clkdev_add_table(lookups, ARRAY_SIZE(lookups)); --- 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,6139 @@ +linux (2.6.35-28.50) maverick-proposed; urgency=low + + [ Brad Figg ] + + * Release Tracking Bug + - LP: #734399 + + [ Corentin Chary ] + + * SAUCE: (drop after 2.6.38) eeepc-wmi: reorder keymap + - LP: #689393 + * SAUCE: (drop after 2.6.38) eeepc-wmi: add wlan key found on 1015P + - LP: #689393 + + [ Keng-Yu Lin ] + + * SAUCE: eeepc-wmi: set the touchpad toggle key code to F22 + - LP: #689393 + + [ Tim Gardner ] + + * [Config] CONFIG_BOOT_PRINTK_DELAY=y + - LP: #733191 + + [ Upstream Kernel Changes ] + + * Revert "drm/radeon/bo: add some fallback placements for VRAM only + objects." + - LP: #652934 + * eeepc-wmi: add additional hotkeys + - LP: #689393 + * xen: don't bother to stop other cpus on shutdown/reboot + - LP: #727814 + * Yama: use thread group leader when creating match + - LP: #729839 + * mmc: sdhci-pci: add ricoh e822 pci id with device specific quirks + - LP: #730820 + + -- Brad Figg Sun, 13 Mar 2011 07:01:39 -0700 + +linux (2.6.35-28.49) maverick-proposed; urgency=low + + [ Brad Figg ] + + * Release Tracking Bug + - LP: #726796 + + [ Colin Ian King ] + + * SAUCE: Dell All-In-One: Remove need for Dell module alias + + [ Manoj Iyer ] + + * SAUCE: add ricoh 0xe823 pci id. + - LP: #717435 + + [ Upstream Kernel Changes ] + + * virtio_net: Add schedule check to napi_enable call + - LP: #579276 + * mmc: make sdhci work with ricoh mmc controller + - LP: #717435 + * NFS: fix the return value of nfs_file_fsync() + - LP: #585657 + * rt2x00: Pad beacon to multiple of 32 bits. + - LP: #659143 + * rt2x00: Fix firmware loading regression on x86_64. + - LP: #659143 + * rt2x00: Check for errors from skb_pad() calls + - LP: #659143 + * block: check for proper length of iov entries earlier in + blk_rq_map_user_iov(), CVE-2010-4163 + - LP: #721504 + - CVE-2010-4163 + * tty: Make tiocgicount a handler, CVE-2010-4076, CVE-2010-4077 + - LP: #720189 + - CVE-2010-4077 + - CVE-2010-4076 + * rds: Integer overflow in RDS cmsg handling, CVE-2010-4175 + - LP: #721455 + - CVE-2010-4175 + + -- Brad Figg Mon, 28 Feb 2011 13:02:53 -0800 + +linux (2.6.35-27.48) maverick-proposed; urgency=low + + [ Steve Conklin ] + + * Release Tracking Bug + - LP: #723335 + + [ Upstream Kernel Changes ] + + * thinkpad-acpi: avoid keymap pitfall + - LP: #722747 + + -- Brad Figg Tue, 22 Feb 2011 19:39:40 -0800 + +linux (2.6.35-27.47) maverick-proposed; urgency=low + + [ Brad Figg ] + + * Release Tracking Bug + - LP: #716532 + + [ Upstream Kernel Changes ] + + * Revert "USB: gadget: Allow function access to device ID data during + bind()" + - LP: #714732 + * net: fix rds_iovec page count overflow, CVE-2010-3865 + - LP: #709153 + - CVE-2010-3865 + * Input: fix typo in keycode validation supporting large scancodes + - LP: #658198 + * net: ax25: fix information leak to userland, CVE-2010-3875 + - LP: #710714 + - CVE-2010-3875 + * net: ax25: fix information leak to userland harder, CVE-2010-3875 + - LP: #710714 + - CVE-2010-3875 + * net: packet: fix information leak to userland, CVE-2010-3876 + - LP: #710714 + - CVE-2010-3876 + * net: tipc: fix information leak to userland, CVE-2010-3877 + - LP: #711291 + - CVE-2010-3877 + * posix-cpu-timers: workaround to suppress the problems with mt exec, + CVE-2010-4248 + - LP: #712609 + - CVE-2010-4248 + * sys_semctl: fix kernel stack leakage, CVE-2010-4083 + - LP: #712749 + - CVE-2010-4083 + * thinkpad-acpi: lock down size of hotkey keymap + - LP: #712174 + * thinkpad-acpi: add support for model-specific keymaps + - LP: #712174 + * thinkpad-acpi: Add KEY_CAMERA (Fn-F6) for Lenovo keyboards + - LP: #712174 + * x86, hotplug: Use mwait to offline a processor, fix the legacy case + - LP: #714732 + * fuse: verify ioctl retries + - LP: #714732 + * fuse: fix ioctl when server is 32bit + - LP: #714732 + * ALSA: hda: Use position_fix=1 for Acer Aspire 5538 to enable capture on + internal mic + - LP: #685161, #714732 + * ALSA: hda: Use model=lg quirk for LG P1 Express to enable playback and + capture + - LP: #595482, #714732 + * drm/radeon/kms: don't apply 7xx HDP flush workaround on AGP + - LP: #714732 + * drm/kms: remove spaces from connector names (v2) + - LP: #714732 + * drm/radeon/kms: fix vram base calculation on rs780/rs880 + - LP: #714732 + * nohz: Fix printk_needs_cpu() return value on offline cpus + - LP: #714732 + * nohz: Fix get_next_timer_interrupt() vs cpu hotplug + - LP: #714732 + * nfsd: Fix possible BUG_ON firing in set_change_info + - LP: #714732 + * NFS: Fix fcntl F_GETLK not reporting some conflicts + - LP: #714732 + * sunrpc: prevent use-after-free on clearing XPT_BUSY + - LP: #714732 + * hwmon: (adm1026) Allow 1 as a valid divider value + - LP: #714732 + * hwmon: (adm1026) Fix setting fan_div + - LP: #714732 + * EDAC: Fix workqueue-related crashes + - LP: #714732 + * amd64_edac: Fix interleaving check + - LP: #714732 + * ASoC: Fix swap of left and right channels for WM8993/4 speaker boost + gain + - LP: #714732 + * ASoC: Fix off by one error in WM8994 EQ register bank size + - LP: #714732 + * ASoC: WM8580: Fix R8 initial value + - LP: #714732 + * ASoC: fix deemphasis control in wm8904/55/60 codecs + - LP: #714732 + * bootmem: Add alloc_bootmem_align() + - LP: #714732 + * x86, xsave: Use alloc_bootmem_align() instead of alloc_bootmem() + - LP: #714732 + * IB/uverbs: Handle large number of entries in poll CQ + - LP: #714732 + * PM / Hibernate: Fix PM_POST_* notification with user-space suspend + - LP: #714732 + * ARM: 6535/1: V6 MPCore v6_dma_inv_range and v6_dma_flush_range RWFO fix + - LP: #714732 + * qla2xxx: Correct issue where NPIV-config data was not being allocated + for 82xx parts. + - LP: #714732 + * qla2xxx: Populate Command Type 6 LUN field properly. + - LP: #714732 + * llc: fix a device refcount imbalance + - LP: #714732 + * ath9k: Disable SWBA interrupt on remove_interface + - LP: #714732 + * ath9k: fix bug in tx power + - LP: #714732 + * mac80211: Fix BUG in pskb_expand_head when transmitting shared skbs + - LP: #714732 + * SPARC/LEON: removed constant timer initialization as if HZ=100, now it + reflects the value of HZ + - LP: #714732 + * sparc64: Delete prom_puts() unused. + - LP: #714732 + * sparc: Remove prom_pathtoinode() + - LP: #714732 + * sparc: Kill prom devops_{32,64}.c + - LP: #714732 + * sparc64: Unexport prom_service_exists(). + - LP: #714732 + * sparc64: Delete prom_setcallback(). + - LP: #714732 + * sparc: Do not export prom_nb{get,put}char(). + - LP: #714732 + * sparc: Pass buffer pointer all the way down to prom_{get,put}char(). + - LP: #714732 + * sparc: Delete prom_*getchar(). + - LP: #714732 + * sparc: Write to prom console using indirect buffer. + - LP: #714732 + * tcp: Don't change unlocked socket state in tcp_v4_err(). + - LP: #714732 + * tcp: Make TCP_MAXSEG minimum more correct. + - LP: #714732 + * tcp: Bug fix in initialization of receive window. + - LP: #714732 + * tcp: avoid a possible divide by zero + - LP: #714732 + * tcp: protect sysctl_tcp_cookie_size reads + - LP: #714732 + * 8139cp: fix checksum broken + - LP: #714732 + * r8169: fix sleeping while holding spinlock. + - LP: #714732 + * scm: Capture the full credentials of the scm sender. + - LP: #714732 + * af_unix: Allow credentials to work across user and pid namespaces. + - LP: #714732 + * user_ns: Introduce user_nsmap_uid and user_ns_map_gid. + - LP: #714732 + * sock: Introduce cred_to_ucred + - LP: #714732 + * net: Export cred_to_ucred to modules. + - LP: #714732 + * af_unix: limit recursion level + - LP: #714732 + * driver/net/benet: fix be_cmd_multicast_set() memcpy bug + - LP: #714732 + * bonding: Fix slave selection bug. + - LP: #714732 + * bridge: fix IPv6 queries for bridge multicast snooping + - LP: #714732 + * cls_cgroup: Fix crash on module unload + - LP: #714732 + * filter: fix sk_filter rcu handling + - LP: #714732 + * econet: Do the correct cleanup after an unprivileged SIOCSIFADDR. + - LP: #714732 + * econet: Fix crash in aun_incoming(). + - LP: #714732 + * ifb: goto resched directly if error happens and dp->tq isn't empty + - LP: #714732 + * l2tp: Fix modalias of l2tp_ip + - LP: #714732 + * x25: decrement netdev reference counts on unload + - LP: #714732 + * tehuti: Firmware filename is tehuti/bdx.bin + - LP: #714732 + * net/dst: dst_dev_event() called after other notifiers + - LP: #714732 + * net: Fix header size check for GSO case in recvmsg (af_packet) + - LP: #714732 + * ACPICA: Fix Scope() op in module level code + - LP: #714732 + * nouveau: Acknowledge HPD irq in handler, not bottom half + - LP: #714732 + * printk: Fix wake_up_klogd() vs cpu hotplug + - LP: #714732 + * sched: Cure more NO_HZ load average woes + - LP: #714732 + * ACPI: EC: Add another dmi match entry for MSI hardware + - LP: #714732 + * PM / Runtime: Fix pm_runtime_suspended() + - LP: #714732 + * inotify: stop kernel memory leak on file creation failure + - LP: #714732 + * orinoco: fix TKIP countermeasure behaviour + - LP: #714732 + * orinoco: clear countermeasure setting on commit + - LP: #714732 + * x86, amd: Fix panic on AMD CPU family 0x15 + - LP: #714732 + * md: fix bug with re-adding of partially recovered device. + - LP: #714732 + * md: protect against NULL reference when waiting to start a raid10. + - LP: #714732 + * tracing: Fix panic when lseek() called on "trace" opened for writing + - LP: #714732 + * x86, gcc-4.6: Use gcc -m options when building vdso + - LP: #714732 + * x86: Enable the intr-remap fault handling after local APIC setup + - LP: #714732 + * x86, vt-d: Handle previous faults after enabling fault handling + - LP: #714732 + * x86, vt-d: Fix the vt-d fault handling irq migration in the x2apic mode + - LP: #714732 + * x86, vt-d: Quirk for masking vtd spec errors to platform error handling + logic + - LP: #714732 + * rt2x00: Fix max TX power settings + - LP: #714732 + * install_special_mapping skips security_file_mmap check. + - LP: #714732 + * USB: misc: uss720.c: add another vendor/product ID + - LP: #714732 + * USB: ftdi_sio: Add D.O.Tec PID + - LP: #714732 + * USB: usb-storage: unusual_devs entry for the Samsung YP-CP3 + - LP: #714732 + * p54usb: add 5 more USBIDs + - LP: #714732 + * p54usb: New USB ID for Gemtek WUBI-100GW + - LP: #714732 + * n_gsm: Fix message length handling when building header + - LP: #714732 + * n_gsm: gsm_data_alloc buffer allocation could fail and it is not being + checked + - LP: #714732 + * xhci: Fix issue with port array setup and buggy hosts. + - LP: #714732 + * gpio: Fix null pointer dereference while accessing rdc321x + platform_data + - LP: #714732 + * cs5535-gpio: don't apply errata #36 to edge detect GPIOs + - LP: #714732 + * cs5535-gpio: handle GPIO regs where higher (clear) bits are set + - LP: #714732 + * mmc: at91_mci: fix multiblock SDIO transfers + - LP: #714732 + * mmc: atmel-mci: fix multiblock SDIO transfers + - LP: #714732 + * mmc: Fix re-probing with PM_POST_RESTORE notification + - LP: #714732 + * fix freeing user_struct in user cache + - LP: #714732 + * rtc: rs5c372: fix buffer size + - LP: #714732 + * RAMOOPS: Don't overflow over non-allocated regions + - LP: #714732 + * watchdog: Fix null pointer dereference while accessing rdc321x + platform_data + - LP: #714732 + * arch/x86/oprofile/op_model_amd.c: Perform initialisation on a single + CPU + - LP: #714732 + * mfd: Support additional parent IDs for wm831x + - LP: #714732 + * mfd: Supply IRQ base for WM832x devices + - LP: #714732 + * drm/radeon/kms/evergreen: reset the grbm blocks at resume and init + - LP: #714732 + * drm/radeon/kms: fix evergreen asic reset + - LP: #714732 + * drm/radeon/kms: reorder display resume to avoid problems + - LP: #714732 + * drm/i915/dp: Fix I2C/EDID handling with active DisplayPort to DVI + converter + - LP: #714732 + * sound: Prevent buffer overflow in OSS load_mixer_volumes + - LP: #714732 + * mv_xor: fix race in tasklet function + - LP: #714732 + * ima: fix add LSM rule bug + - LP: #714732 + * libata-sff: fix HSM_ST_ERR handling in __ata_sff_port_intr() + - LP: #714732 + * mac80211: fix mesh forwarding + - LP: #714732 + * ALSA: hda: Use LPIB quirk for Dell Inspiron m101z/1120 + - LP: #714732 + * Sched: fix skip_clock_update optimization + - LP: #714732 + * block: Deprecate QUEUE_FLAG_CLUSTER and use queue_limits instead + - LP: #714732 + * x86/microcode: Fix double vfree() and remove redundant pointer checks + before vfree() + - LP: #714732 + * gspca - sonixj: Set the flag for some devices + - LP: #714732 + * gspca - sonixj: Add a flag in the driver_info table + - LP: #714732 + * mac80211: fix hard lockup in sta_addba_resp_timer_expired + - LP: #714732 + * mac80211: fix mesh forwarding when ratelimited too + - LP: #714732 + * mac80211: fix initialization of skb->cb in ieee80211_subif_start_xmit + - LP: #714732 + * Release 2.6.35.11 + - LP: #714732 + * inet_diag: Make sure we actually run the same bytecode we audited, + CVE-2010-3880 + - LP: #711865 + - CVE-2010-3880 + + -- Brad Figg Mon, 07 Feb 2011 09:37:35 -0800 + +linux (2.6.35-26.46) maverick-proposed; urgency=low + [ Steve Conklin ] + + * Tracking Bug + - LP: #709352 + + [ Andy Whitcroft ] + + * SAUCE: ensure root is ready before running usermodehelpers in it + + [ Colin Ian King ] + + * SAUCE: Add WMI hotkeys support for another Dell All-In-One series + - LP: #701530 + * SAUCE: Dell WMI: Use sparse keymaps and tidy up code. + - LP: #701530 + + [ Tim Gardner ] + + * [Config] Set CONFIG_NR_CPUS=256 for amd64 server + - LP: #706058 + + [ Upstream Kernel Changes ] + + * Input: i8042 - introduce 'notimeout' blacklist for Dell Vostro V13 + - LP: #380126 + * ACPI / Sleep: Consolidate suspend and hibernation routines + - LP: #703228 + * Quirk to fix suspend/resume on Lenovo Edge 11,13,14,15 + - LP: #702434 + * dell-laptop: Add another Dell laptop family to the DMI whitelist + - LP: #693078 + * KVM: Fix fs/gs reload oops with invalid ldt, CVE-2010-3698 + - LP: #707000 + - CVE-2010-3698 + * V4L/DVB: ivtvfb: prevent reading uninitialized stack memory, + CVE-2010-4079 + - LP: #707649 + - CVE-2010-4079 + * tpm: Autodetect itpm devices + - LP: #705845 + * tpm: fix panic caused by "tpm: Autodetect itpm devices" + - LP: #705845 + + -- Steve Conklin Fri, 28 Jan 2011 13:25:59 -0600 + +linux (2.6.35-25.44) maverick-proposed; urgency=low + + [ Upstream Kernel Changes ] + + * Revert "drm/radeon/kms: properly compute group_size on 6xx/7xx" + - LP: #703553 + + -- Steve Conklin Fri, 21 Jan 2011 10:30:04 -0800 + +linux (2.6.35-25.43) maverick-proposed; urgency=low + + [ Brad Figg ] + + - LP: #697948 + + [ Andy Whitcroft ] + + * [Config] add vmware-balloon driver to -virtual flavour + - LP: #592039 + + [ Manoj Iyer ] + + * SAUCE: Enable jack sense for Thinkpad Edge 13 + - LP: #685015 + + [ Robert Hooker ] + + * Revert "(pre-stable): input: Support Clickpad devices in ClickZone + mode" + - LP: #669399 + + [ Stefan Bader ] + + * Set virtual flavour maximum of domain visible memory to 70G + - LP: #667796 + + [ Takashi Iwai ] + + * SAUCE: input: Support Clickpad devices in ClickZone mode + - LP: #516329 + + [ Tim Gardner ] + + * [Config] Add nfsd modules to -virtual flavour + - LP: #688070 + * [Config] Added autofs4.ko to -virtual flavour + - LP: #692917 + + [ Upstream Kernel Changes ] + + * intel_idle: delete substates DEBUG modparam + - LP: #684888 + * intel_idle: delete power_policy modparam, and choose substate functions + - LP: #684888 + * intel_idle: add support for Westmere-EX + - LP: #684888 + * intel_idle: recognize Lincroft Atom Processor + - LP: #684888 + * x86, mwait: Move mwait constants to a common header file + - LP: #684888 + * intel_idle: Change mode 755 => 644 + - LP: #684888 + * intel_idle: add missing __percpu markup + - LP: #684888 + * cpuidle: extend cpuidle and menu governor to handle dynamic states + - LP: #684888 + * intel_idle: Voluntary leave_mm before entering deeper + - LP: #684888 + * intel_idle: enable Atom C6 + - LP: #684888 + * intel_idle: simplify test for leave_mm() + - LP: #684888 + * intel_idle: delete bogus data from cpuidle_state.power_usage + - LP: #684888 + * intel_idle: add initial Sandy Bridge support + - LP: #684888 + * intel_idle: do not use the LAPIC timer for ATOM C2 + - LP: #684888 + * staging: usbip: Notify usb core of port status changes + - LP: #686158 + * staging: usbip: Process event flags without delay + - LP: #686158 + * Staging: phison: fix problem caused by libata change + - LP: #686158 + * perf_events: Fix bogus AMD64 generic TLB events + - LP: #686158 + * perf_events: Fix bogus context time tracking + - LP: #686158 + * powerpc/perf: Fix sampling enable for PPC970 + - LP: #686158 + * pcmcia: synclink_cs: fix information leak to userland + - LP: #686158 + * sched: Drop all load weight manipulation for RT tasks + - LP: #686158 + * sched: Fix string comparison in /proc/sched_features + - LP: #686158 + * bluetooth: Fix missing NULL check + - LP: #686158 + * futex: Fix errors in nested key ref-counting + - LP: #686158 + * cifs: fix broken oplock handling + - LP: #686158 + * libahci: fix result_tf handling after an ATA PIO data-in command + - LP: #686158 + * mm, x86: Saving vmcore with non-lazy freeing of vmas + - LP: #686158 + * x86, cpu: Fix renamed, not-yet-shipping AMD CPUID feature bit + - LP: #686158 + * x86, kexec: Make sure to stop all CPUs before exiting the kernel + - LP: #686158 + * x86, olpc: Don't retry EC commands forever + - LP: #686158 + * x86, mtrr: Assume SYS_CFG[Tom2ForceMemTypeWB] exists on all future AMD + CPUs + - LP: #686158 + * x86, intr-remap: Set redirection hint in the IRTE + - LP: #686158 + * x86, kdump: Change copy_oldmem_page() to use cached addressing + - LP: #686158 + * x86, vm86: Fix preemption bug for int1 debug and int3 breakpoint + handlers. + - LP: #686158 + * KVM: X86: Report SVM bit to userspace only when supported + - LP: #686158 + * KVM: SVM: Restore correct registers after sel_cr0 intercept emulation + - LP: #686158 + * USB: mct_u232: fix broken close + - LP: #686158 + * pipe: fix failure to return error code on ->confirm() + - LP: #686158 + * p54usb: fix off-by-one on !CONFIG_PM + - LP: #686158 + * p54usb: add five more USBIDs + - LP: #686158 + * drivers/net/wireless/p54/eeprom.c: Return -ENOMEM on memory allocation + failure + - LP: #686158 + * usb gadget: composite: prevent OOPS for non-standard control request + - LP: #686158 + * USB: gadget: g_ffs: fixed vendor and product ID + - LP: #686158 + * USB: gadget: g_multi: fixed vendor and product ID + - LP: #686158 + * USB: ftdi_sio: Add PID for accesio products + - LP: #686158 + * USB: ftdi_sio: revert "USB: ftdi_sio: fix DTR/RTS line modes" + - LP: #686158, #690798 + * USB: add PID for FTDI based OpenDCC hardware + - LP: #686158 + * USB: ftdi_sio: new VID/PIDs for various Papouch devices + - LP: #686158 + * USB: ftdi_sio: add device ids for ScienceScope + - LP: #686158 + * USB: MUSB: fix kernel WARNING/oops when unloading module in OTG mode + - LP: #686158 + * usb: musb: blackfin: call usb_nop_xceiv_unregister() in + musb_platform_exit() + - LP: #686158 + * usb: musb: blackfin: call gpio_free() on error path in + musb_platform_init() + - LP: #686158 + * USB: Change acm_iad_descriptor bFunctionProtocol to + USB_CDC_ACM_PROTO_AT_V25TER + - LP: #686158 + * USB: option: Add more ZTE modem USB id's + - LP: #686158 + * USB: cp210x: Add Renesas RX-Stick device ID + - LP: #686158 + * USB: cp210x: Add WAGO 750-923 Service Cable device ID + - LP: #686158 + * USB: atmel_usba_udc: force vbus_pin at -EINVAL when gpio_request + failled + - LP: #686158 + * USB: disable endpoints after unbinding interfaces, not before + - LP: #686158 + * USB: visor: fix initialisation of UX50/TH55 devices + - LP: #686158 + * USB: opticon: Fix long-standing bugs in opticon driver + - LP: #686158 + * usb: r8a66597-hcd: Change mistake of the outsw function + - LP: #686158 + * USB: accept some invalid ep0-maxpacket values + - LP: #686158 + * asus-laptop: fix gps rfkill + - LP: #686158 + * sd name space exhaustion causes system hang + - LP: #686158 + * libsas: fix NCQ mixing with non-NCQ + - LP: #686158 + * gdth: integer overflow in ioctl + - LP: #686158 + * Fix race when removing SCSI devices + - LP: #686158 + * Fix regressions in scsi_internal_device_block + - LP: #686158 + * net: clear heap allocations for privileged ethtool actions + - LP: #686158 + * gianfar: fix double lock typo + - LP: #686158 + * gianfar: Fix crashes on RX path (Was Re: [Bugme-new] [Bug 19692] New: + linux-2.6.36-rc5 crash with gianfar ethernet at full line rate traffic) + - LP: #686158 + * ip: fix truesize mismatch in ip fragmentation + - LP: #686158 + * ipv6: fix refcnt problem related to POSTDAD state + - LP: #686158 + * net: Fix IPv6 PMTU disc. w/ asymmetric routes + - LP: #686158 + * netxen: dont set skb->truesize + - LP: #686158 + * qlcnic: dont set skb->truesize + - LP: #686158 + * Phonet: Correct header retrieval after pskb_may_pull + - LP: #686158 + * r6040: Fix multicast filter some more + - LP: #686158 + * rose: Fix signedness issues wrt. digi count. + - LP: #686158 + * net: Fix the condition passed to sk_wait_event() + - LP: #686158 + * Limit sysctl_tcp_mem and sysctl_udp_mem initializers to prevent integer + overflows. + - LP: #686158 + * tcp: Fix race in tcp_poll + - LP: #686158 + * net-2.6: SYN retransmits: Add new parameter to retransmits_timed_out() + - LP: #686158 + * Revert c6537d6742985da1fbf12ae26cde6a096fd35b5c + - LP: #686158 + * Revert d88dca79d3852a3623f606f781e013d61486828a + - LP: #686158 + * net: add a recursion limit in xmit path + - LP: #686158 + * net/core: Allow tagged VLAN packets to flow through VETH devices. + - LP: #686158 + * xfrm4: strip ECN bits from tos field + - LP: #686158 + * secmark: do not return early if there was no error + - LP: #686158 + * ARM: cns3xxx: Fixup the missing second parameter to addruart macro to + allow them to build. + - LP: #686158 + * sgi-xp: incoming XPC channel messages can come in after the channel's + partition structures have been torn down + - LP: #686158 + * isdn: avoid calling tty_ldisc_flush() in atomic context + - LP: #686158 + * KVM: x86 emulator: fix regression with cmpxchg8b on i386 hosts + - LP: #686158 + * Linux 2.6.35.9 + - LP: #686158 + * Input: synaptics - fix handling of 2-button ClickPads + - LP: #687750 + * NFS: Fix panic after nfs_umount() + - LP: #683938 + * block: Ensure physical block size is unsigned int + - LP: #690730 + * block: Fix race during disk initialization + - LP: #690730 + * block: limit vec count in bio_kmalloc() and bio_alloc_map_data() + - LP: #690730 + * block: take care not to overflow when calculating total iov length + - LP: #690730 + * block: check for proper length of iov entries in blk_rq_map_user_iov() + - LP: #690730 + * drm/radeon/kms: don't disable shared encoders on pre-DCE3 display + blocks + - LP: #690730 + * jme: Fix PHY power-off error + - LP: #690730 + * irda: Fix parameter extraction stack overflow + - LP: #690730 + * irda: Fix heap memory corruption in iriap.c + - LP: #690730 + * cfg80211: fix BSS double-unlinking + - LP: #690730 + * cfg80211: fix locking + - LP: #690730 + * cfg80211: fix regression on processing country IEs + - LP: #690730 + * mac80211: fix channel assumption for association done work + - LP: #690730 + * mac80211: fix offchannel assumption upon association + - LP: #690730 + * mac80211: Fix signal strength average initialization for CQM events + - LP: #690730 + * mac80211: add helper for reseting the connection monitor + - LP: #690730 + * mac80211: reset connection idle when going offchannel + - LP: #690730 + * mac80211: make the beacon monitor available externally + - LP: #690730 + * mac80211: send last 3/5 probe requests as unicast + - LP: #690730 + * mac80211: disable beacon monitor while going offchannel + - LP: #690730 + * mac80211: use correct station flags lock + - LP: #690730 + * mac80211: clear txflags for ps-filtered frames + - LP: #690730 + * mac80211: reset probe send counter upon connection timer reset + - LP: #690730 + * mac80211: Fix ibss station got expired immediately + - LP: #690730 + * mac80211: don't sanitize invalid rates + - LP: #690730 + * mac80211: delete AddBA response timer + - LP: #690730 + * isdn/gigaset: fix bas_gigaset AT read error handling + - LP: #690730 + * isdn/gigaset: correct bas_gigaset rx buffer handling + - LP: #690730 + * isdn/gigaset: bas_gigaset locking fix + - LP: #690730 + * i2c-pca-platform: Change device name of request_irq + - LP: #690730 + * viafb: fix i2c_transfer error handling + - LP: #690730 + * drm/radeon/kms: register an i2c adapter name for the dp aux bus + - LP: #690730 + * ALSA: hda - Fix wrong SPDIF NID assignment for CA0110 + - LP: #690730 + * ALSA: hda - Add some workarounds for Creative IBG + - LP: #690730 + * ALSA: OSS mixer emulation - fix locking + - LP: #690730 + * powerpc: Fix call to subpage_protection() + - LP: #690730 + * microblaze: Fix build with make 3.82 + - LP: #690730 + * NFSv4: Don't call nfs4_reclaim_complete() on receiving + NFS4ERR_STALE_CLIENTID + - LP: #690730 + * NFSv4: Don't call nfs4_state_mark_reclaim_reboot() from error handlers + - LP: #690730 + * NFSv4: Fix open recovery + - LP: #690730 + * NFS: Don't SIGBUS if nfs_vm_page_mkwrite races with a cache + invalidation + - LP: #690730 + * drm/radeon/kms: MC vram map needs to be >= pci aperture size + - LP: #690730 + * drm/radeon/kms: properly compute group_size on 6xx/7xx + - LP: #690730 + * drm/radeon/kms: make sure blit addr masks are 64 bit + - LP: #690730 + * drm/radeon/kms: fix handling of tex lookup disable in cs checker on + r2xx + - LP: #690730 + * drm/i915: Free hardware status page on unload when physically mapped + - LP: #690730 + * drm/i915: diasable clock gating for the panel power sequencer + - LP: #690730 + * drm/i915/overlay: Ensure that the reg_bo is in the GTT prior to + writing. + - LP: #690730 + * pcnet_cs: add new_id + - LP: #690730 + * SH: Add missing consts to sys_execve() declaration + - LP: #690730 + * reiserfs: fix inode mutex - reiserfs lock misordering + - LP: #690730 + * reiserfs: don't acquire lock recursively in reiserfs_acl_chmod + - LP: #690730 + * staging: rt2870: Add new USB ID for Belkin F6D4050 v1 + - LP: #690730 + * Staging: asus_oled: fix up some sysfs attribute permissions + - LP: #690730 + * Staging: asus_oled: fix up my fixup for some sysfs attribute + permissions + - LP: #690730 + * ALSA: hda: Use hp-laptop quirk to enable headphones automute for Asus + A52J + - LP: #677652, #690730 + * Staging: line6: fix up some sysfs attribute permissions + - LP: #690730 + * hpet: fix unwanted interrupt due to stale irq status bit + - LP: #690730 + * hpet: unmap unused I/O space + - LP: #690730 + * olpc_battery: Fix endian neutral breakage for s16 values + - LP: #690730 + * percpu: fix list_head init bug in __percpu_counter_init() + - LP: #690730 + * ipmi: proper spinlock initialization + - LP: #690730 + * um: remove PAGE_SIZE alignment in linker script causing kernel + segfault. + - LP: #690730 + * um: fix global timer issue when using CONFIG_NO_HZ + - LP: #690730 + * numa: fix slab_node(MPOL_BIND) + - LP: #690730 + * hwmon: (lm85) Fix ADT7468 frequency table + - LP: #690730 + * oprofile: Fix the hang while taking the cpu offline + - LP: #690730 + * mm: fix return value of scan_lru_pages in memory unplug + - LP: #690730 + * mm, page-allocator: do not check the state of a non-existant buddy + during free + - LP: #690730 + * mm: fix is_mem_section_removable() page_order BUG_ON check + - LP: #690730 + * agp/intel: Also add B43.1 to list of supported devices + - LP: #690730 + * b43: Fix warning at drivers/mmc/core/core.c:237 in mmc_wait_for_cmd + - LP: #690730 + * wireless: b43: fix error path in SDIO + - LP: #690730 + * ssb: b43-pci-bridge: Add new vendor for BCM4318 + - LP: #690730 + * drivers/misc/ad525x_dpot.c: fix typo in spi write16 and write24 + transfer counts + - LP: #690730 + * sgi-xpc: XPC fails to discover partitions with all nasids above 128 + - LP: #690730 + * xen: ensure that all event channels start off bound to VCPU 0 + - LP: #690730 + * ipc: initialize structure memory to zero for compat functions + - LP: #690730 + * net: NETIF_F_HW_CSUM does not imply FCoE CRC offload + - LP: #690730 + * drivers/char/vt_ioctl.c: fix VT_OPENQRY error value + - LP: #690730 + * viafb: use proper register for colour when doing fill ops + - LP: #690730 + * sata_via: apply magic FIFO fix to vt6420 too + - LP: #690730 + * eCryptfs: Clear LOOKUP_OPEN flag when creating lower file + - LP: #690730 + * ecryptfs: call vfs_setxattr() in ecryptfs_setxattr() + - LP: #690730 + * md/raid1: really fix recovery looping when single good device fails. + - LP: #690730 + * md: fix return value of rdev_size_change() + - LP: #690730 + * ALSA: hda: Use BIOS auto-parsing instead of existing model quirk for + MEDION MD2 + - LP: #682199, #690730 + * tty: prevent DOS in the flush_to_ldisc + - LP: #690730 + * TTY: restore tty_ldisc_wait_idle + - LP: #690730 + * tty_ldisc: Fix BUG() on hangup + - LP: #690730 + * TTY: ldisc, fix open flag handling + - LP: #690730 + * usbnet: fix usb_autopm_get_interface failure(v1) + - LP: #690730 + * HID: Fix for problems with eGalax/DWAV multi-touch-screen + - LP: #690730 + * gspca - sonixj: Fix a regression of sensors hv7131r and mi0360 + - LP: #690730 + * hdpvr: Add missing URB_NO_TRANSFER_DMA_MAP flag + - LP: #690730 + * drivers/media/video/cx23885/cx23885-core.c: fix + cx23885_dev_checkrevision() + - LP: #690730 + * KVM: Write protect memory after slot swap + - LP: #690730 + * KVM: x86: fix information leak to userland + - LP: #690730 + * KVM: Correct ordering of ldt reload wrt fs/gs reload + - LP: #690730 + * ASoC: Remove volatility from WM8900 POWER1 register + - LP: #690730 + * ASoC: wm8961 - clear WM8961_DACSLOPE bit for normal mode + - LP: #690730 + * ASoC: wm8961 - clear WM8961_MCLKDIV bit for freq <= 16500000 + - LP: #690730 + * firewire: ohci: fix buffer overflow in AR split packet handling + - LP: #690730 + * firewire: ohci: fix race in AR split packet handling + - LP: #690730 + * ALSA: ac97: Apply quirk for Dell Latitude D610 binding Master and + Headphone controls + - LP: #669279, #690730 + * ALSA: HDA: Add fixup pins for Ideapad Y550 + - LP: #611803, #690730 + * ALSA: hda - Added fixup for Lenovo Y550P + - LP: #690730 + * ALSA: hda: Add speaker pin to automute Acer Aspire 8943G + - LP: #656625, #690730 + * ALSA: hda: Add Samsung R720 SSID for subwoofer pin fixup + - LP: #677830, #690730 + * ALSA: hda - Use ALC_INIT_DEFAULT for really default initialization + - LP: #690730 + * ALSA: hda - Fix ALC660-VD/ALC861-VD capture/playback mixers + - LP: #690730 + * ALSA: Fix SNDCTL_DSP_RESET ioctl for OSS emulation + - LP: #690730 + * ALSA: hda: Use "alienware" model quirk for another SSID + - LP: #683695, #690730 + * netfilter: nf_conntrack: allow nf_ct_alloc_hashtable() to get highmem + pages + - LP: #690730 + * netfilter: NF_HOOK_COND has wrong conditional + - LP: #690730 + * radix-tree: fix RCU bug + - LP: #690730 + * latencytop: fix per task accumulator + - LP: #690730 + * mm/vfs: revalidate page->mapping in do_generic_file_read() + - LP: #690730 + * bio: take care not overflow page count when mapping/copying user data + - LP: #690730 + * drm/radeon/kms/atom: set sane defaults in atombios_get_encoder_mode() + - LP: #690730 + * drm/radeon/kms: fix typos in disabled vbios code + - LP: #690730 + * drm/radeon/kms: add workaround for dce3 ddc line vbios bug + - LP: #690730 + * drm/radeon/kms: Fix retrying ttm_bo_init() after it failed once. + - LP: #690730 + * drm/radeon/kms: fix interlaced and doublescan handling + - LP: #690730 + * exec: make argv/envp memory visible to oom-killer + - LP: #690730 + * exec: copy-and-paste the fixes into compat_do_execve() paths + - LP: #690730 + * drm/i915/sdvo: Always add a 30ms delay to make SDVO TV detection + reliable + - LP: #690730 + * intel-gtt: fix gtt_total_entries detection + - LP: #690730 + * sched: fix RCU lockdep splat from task_group() + - LP: #690730 + * libata: fix NULL sdev dereference race in atapi_qc_complete() + - LP: #690730 + * PCI: fix size checks for mmap() on /proc/bus/pci files + - LP: #690730 + * PCI: fix offset check for sysfs mmapped files + - LP: #690730 + * xHCI: fix wMaxPacketSize mask + - LP: #690730 + * xhci: Fix reset-device and configure-endpoint commands + - LP: #690730 + * xhci: Setup array of USB 2.0 and USB 3.0 ports. + - LP: #690730 + * xhci: Don't let the USB core disable SuperSpeed ports. + - LP: #690730 + * USB: gadget: AT91: fix typo in atmel_usba_udc driver + - LP: #690730 + * usb: musb: fix kernel oops when loading musb_hdrc module for the 2nd + time + - LP: #690730 + * USB: ftdi_sio: add device IDs for Milkymist One JTAG/serial + - LP: #690730 + * USB: option: fix when the driver is loaded incorrectly for some Huawei + devices. + - LP: #690730 + * usb: misc: sisusbvga: fix information leak to userland + - LP: #690730 + * usb: misc: iowarrior: fix information leak to userland + - LP: #690730 + * usb: core: fix information leak to userland + - LP: #690730 + * USB: EHCI: fix obscure race in ehci_endpoint_disable + - LP: #690730 + * USB: storage: sierra_ms: fix sysfs file attribute + - LP: #690730 + * USB: atm: ueagle-atm: fix up some permissions on the sysfs files + - LP: #690730 + * USB: misc: cypress_cy7c63: fix up some sysfs attribute permissions + - LP: #690730 + * USB: misc: usbled: fix up some sysfs attribute permissions + - LP: #690730 + * USB: misc: trancevibrator: fix up a sysfs attribute permission + - LP: #690730 + * USB: misc: usbsevseg: fix up some sysfs attribute permissions + - LP: #690730 + * USB: ftdi_sio: Add ID for RT Systems USB-29B radio cable + - LP: #690730 + * USB: serial: ftdi_sio: Vardaan USB RS422/485 converter PID added + - LP: #690730 + * USB: fix autosuspend bug in usb-serial + - LP: #690730 + * e1000: fix screaming IRQ + - LP: #690730 + * ACPI battery: support percentage battery remaining capacity + - LP: #690730 + * acpi-cpufreq: fix a memleak when unloading driver + - LP: #690730 + * ACPI: debugfs custom_method open to non-root + - LP: #690730 + * PNPACPI: cope with invalid device IDs + - LP: #690730 + * saa7134: Fix autodetect for Behold A7 and H7 TV cards + - LP: #690730 + * fuse: fix attributes after open(O_TRUNC) + - LP: #690730 + * cs5535-gpio: apply CS5536 errata workaround for GPIOs + - LP: #690730 + * do_exit(): make sure that we run with get_fs() == USER_DS + - LP: #690730 + * cifs: fix another memleak, in cifs_root_iget + - LP: #690730 + * uml: disable winch irq before freeing handler data + - LP: #690730 + * backlight: grab ops_lock before testing bd->ops + - LP: #690730 + * nommu: yield CPU while disposing VM + - LP: #690730 + * x86: Ignore trap bits on single step exceptions + - LP: #690730 + * mmc: fix rmmod race for hosts using card-detection polling + - LP: #690730 + * DECnet: don't leak uninitialized stack byte + - LP: #690730 + * perf_events: Fix perf_counter_mmap() hook in mprotect() + - LP: #690730 + * ARM: 6464/2: fix spinlock recursion in adjust_pte() + - LP: #690730 + * ARM: 6489/1: thumb2: fix incorrect optimisation in usracc + - LP: #690730 + * ARM: 6482/2: Fix find_next_zero_bit and related assembly + - LP: #690730 + * leds: fix bug with reading NAS SS4200 dmi code + - LP: #690730 + * Staging: udlfb: fix up some sysfs attribute permissions + - LP: #690730 + * Staging: iio: adis16220: fix up some sysfs attribute permissions + - LP: #690730 + * Staging: iio: adis16220: fix up my fixup for some sysfs attribute + permissions + - LP: #690730 + * Staging: samsung-laptop: fix up some sysfs attribute permissions + - LP: #690730 + * Staging: samsung-laptop: fix up my fixup for some sysfs attribute + permissions + - LP: #690730 + * Staging: frontier: fix up some sysfs attribute permissions + - LP: #690730 + * staging: rtl8187se: Change panic to warn when RF switch turned off + - LP: #690730 + * Staging: batman-adv: ensure that eth_type_trans gets linear memory + - LP: #690730 + * perf: Fix inherit vs. context rotation bug + - LP: #690730 + * ARM: 6456/1: Fix for building DEBUG with sa11xx_base.c as a module. + - LP: #690730 + * PM / Hibernate: Fix memory corruption related to swap + - LP: #690730 + * wmi: use memcmp instead of strncmp to compare GUIDs + - LP: #690730 + * nohz/s390: fix arch_needs_cpu() return value on offline cpus + - LP: #690730 + * genirq: Fix incorrect proc spurious output + - LP: #690730 + * net: Truncate recvfrom and sendto length to INT_MAX. + - LP: #690730 + * net: Limit socket I/O iovec total length to INT_MAX. + - LP: #690730 + * Input: i8042 - add Sony VAIO VPCZ122GX to nomux list + - LP: #690730 + * omap: dma: Fix buffering disable bit setting for omap24xx + - LP: #690730 + * OMAP3: DMA: Errata i541: sDMA FIFO draining does not finish + - LP: #690730 + * memory corruption in X.25 facilities parsing + - LP: #690730 + * net: optimize Berkeley Packet Filter (BPF) processing + - LP: #690730 + * filter: make sure filters dont read uninitialized memory + - LP: #690730 + * can-bcm: fix minor heap overflow + - LP: #690730 + * x25: Prevent crashing when parsing bad X.25 facilities + - LP: #690730 + * crypto: padlock - Fix AES-CBC handling on odd-block-sized input + - LP: #690730 + * rds: Integer overflow in RDS cmsg handling + - LP: #690730 + * cfg80211: fix extension channel checks to initiate communication + - LP: #690730 + * r8169: fix rx checksum offload + - LP: #690730 + * r8169: (re)init phy on resume + - LP: #690730 + * r8169: fix checksum broken + - LP: #690730 + * nmi: fix clock comparator revalidation + - LP: #690730 + * Rename 'pipe_info()' to 'get_pipe_info()' + - LP: #690730 + * Export 'get_pipe_info()' to other users + - LP: #690730 + * Un-inline get_pipe_info() helper function + - LP: #690730 + * Release 2.6.35.10 + - LP: #690730 + * OMAP3: PRCM: Consider UART4 for 3630 chip in prcm_setup_regs + - LP: #688765 + * OMAP clock: Add uart4_ick/fck definitions for 3630 + - LP: #688765 + * OMAP3: serial: Fix uart4 handling for 3630 + - LP: #688765 + * omap: serial: Fix the boot-up crash/reboot without CONFIG_PM + - LP: #688765 + * OMAP: some definitions extracted from commit 046465b76a + - LP: #688765 + * omap3: Unify omap2_set_globals_3[43,6x]x functions + - LP: #688765 + * ALSA: HDA: Quirk for Dell Vostro 320 to make microphone work + - LP: #497546 + * tcp: Increase TCP_MAXSEG socket option minimum. + - CVE-2010-4165 + * af_unix: limit unix_tot_inflight + - CVE-2010-4249 + + -- Tim Gardner Mon, 06 Dec 2010 10:45:38 -0700 + +linux (2.6.35-24.42) maverick-proposed; urgency=low + + [ Brad Figg ] + + - LP: #683422 + + [ Colin Ian King ] + + * SAUCE: Allow registration of handler to multiple WMI events with same + GUID + - LP: #676997 + * SAUCE: Add WMI hotkeys support for Dell All-In-One series + - LP: #676997 + * [Config] Enable Dell All-In-One WMI Hotkeys driver + - LP: #676997 + + [ David Woodhouse ] + + * [Upstream] Call acpi_video_register() in intel_opregion_init() failure + path + - LP: #615947 + + [ Manoj Iyer ] + + * SAUCE: enable rfkill for rtl8192se driver + - LP: #640992 + * SAUCE: Enable jack sense for Thinkpad Edge 11 + - LP: #677210 + + [ Tim Gardner ] + + * [Config] Use correct be2iscsi module name in d-i/modules/scsi-modules + - LP: #628776 + * [Config] Added NFS and related modules to virtual flavour + - LP: #659084 + * [Config] Add support for cross compiling armel + * Simplify the use of CROSS_COMPILER + + [ Upstream Kernel Changes ] + + * Revert "(pre-stable) ACPI: enable repeated PCIEXP wakeup by clearing + PCIEXP_WAKE_STS on resume" + * Revert "(pre-stable) mm: Move vma_stack_continue into mm.h" + * x86, cpu: After uncapping CPUID, re-run CPU feature detection + - LP: #672664 + * ALSA: sound/pci/rme9652: prevent reading uninitialized stack memory + - LP: #672664 + * ALSA: oxygen: fix analog capture on Claro halo cards + - LP: #672664 + * ALSA: hda - Add Dell Latitude E6400 model quirk + - LP: #643891, #672664 + * ALSA: prevent heap corruption in snd_ctl_new() + - LP: #672664 + * ALSA: rawmidi: fix oops (use after free) when unloading a driver module + - LP: #672664 + * hwmon: (lis3) Fix Oops with NULL platform data + - LP: #672664 + * USB: fix bug in initialization of interface minor numbers + - LP: #672664 + * usb: musb: gadget: fix kernel panic if using out ep with FIFO_TXRX + style + - LP: #672664 + * usb: musb: gadget: restart request on clearing endpoint halt + - LP: #672664 + * HID: hidraw, fix a NULL pointer dereference in hidraw_ioctl + - LP: #672664 + * HID: hidraw, fix a NULL pointer dereference in hidraw_write + - LP: #672664 + * ahci: fix module refcount breakage introduced by libahci split + - LP: #672664 + * lib/list_sort: do not pass bad pointers to cmp callback + - LP: #672664 + * ACPI: invoke DSDT corruption workaround on all Toshiba Satellite + - LP: #672664 + * oprofile: Add Support for Intel CPU Family 6 / Model 29 + - LP: #672664 + * oprofile, ARM: Release resources on failure + - LP: #672664 + * RDMA/cxgb3: Turn off RX coalescing for iWARP connections + - LP: #672664 + * drm/radeon/kms: fix bad cast/shift in evergreen.c + - LP: #672664 + * drm/radeon/kms: avivo cursor workaround applies to evergreen as well + - LP: #672664 + * ARM: 6400/1: at91: fix arch_gettimeoffset fallout + - LP: #672664 + * ARM: 6395/1: VExpress: Set bit 22 in the PL310 (cache controller) + AuxCtlr register + - LP: #672664 + * V4L/DVB: gspca - main: Fix a crash of some webcams on ARM arch + - LP: #672664 + * V4L/DVB: gspca - sn9c20x: Bad transfer size of Bayer images + - LP: #672664 + * mmc: sdhci-s3c: fix NULL ptr access in sdhci_s3c_remove + - LP: #672664 + * x86/amd-iommu: Set iommu configuration flags in enable-loop + - LP: #672664 + * x86/amd-iommu: Fix rounding-bug in __unmap_single + - LP: #672664 + * x86/amd-iommu: Work around S3 BIOS bug + - LP: #672664 + * tracing/x86: Don't use mcount in pvclock.c + - LP: #672664 + * tracing/x86: Don't use mcount in kvmclock.c + - LP: #672664 + * ksm: fix bad user data when swapping + - LP: #672664 + * i7core_edac: fix panic in udimm sysfs attributes registration + - LP: #672664 + * v4l1: fix 32-bit compat microcode loading translation + - LP: #672664 + * V4L/DVB: cx231xx: Avoid an OOPS when card is unknown (card=0) + - LP: #672664 + * V4L/DVB: IR: fix keys beeing stuck down forever + - LP: #672664 + * V4L/DVB: Don't identify PV SBTVD Hybrid as a DibCom device + - LP: #672664 + * Input: joydev - fix JSIOCSAXMAP ioctl + - LP: #672664 + * Input: wacom - fix pressure in Cintiq 21UX2 + - LP: #672664 + * ioat2: fix performance regression + - LP: #672664 + * mac80211: fix use-after-free + - LP: #672664 + * x86, hpet: Fix bogus error check in hpet_assign_irq() + - LP: #672664 + * x86, irq: Plug memory leak in sparse irq + - LP: #672664 + * ubd: fix incorrect sector handling during request restart + - LP: #672664 + * OSS: soundcard: locking bug in sound_ioctl() + - LP: #672664 + * virtio-blk: fix request leak. + - LP: #672664 + * ring-buffer: Fix typo of time extends per page + - LP: #672664 + * dmaengine: fix interrupt clearing for mv_xor + - LP: #672664 + * drivers/gpu/drm/i915/i915_gem.c: Add missing error handling code + - LP: #672664 + * hrtimer: Preserve timer state in remove_hrtimer() + - LP: #672664 + * i2c-pca: Fix waitforcompletion() return value + - LP: #672664 + * reiserfs: fix dependency inversion between inode and reiserfs mutexes + - LP: #672664 + * reiserfs: fix unwanted reiserfs lock recursion + - LP: #672664 + * mfd: Ignore non-GPIO IRQs when setting wm831x IRQ types + - LP: #672664 + * wext: fix potential private ioctl memory content leak + - LP: #672664 + * atl1: fix resume + - LP: #672664 + * x86, numa: For each node, register the memory blocks actually used + - LP: #672664 + * x86, AMD, MCE thresholding: Fix the MCi_MISCj iteration order + - LP: #672664 + * firewire: ohci: fix TI TSB82AA2 regression since 2.6.35 + - LP: #672664 + * De-pessimize rds_page_copy_user + - LP: #672664 + * drm/i915: Prevent module unload to avoid random memory corruption + - LP: #672664 + * drm/i915: fix GMCH power reporting + - LP: #672664 + * drm: Prune GEM vma entries + - LP: #672664 + * drm: Hold the mutex when dropping the last GEM reference (v2) + - LP: #672664 + * drm/radeon: fix PCI ID 5657 to be an RV410 + - LP: #672664 + * drm/radeon/kms: fix possible sigbus in evergreen accel code + - LP: #672664 + * drm/radeon/kms: fix up encoder info messages for DFP6 + - LP: #672664 + * drm/radeon/kms: fix potential segfault in r600_ioctl_wait_idle + - LP: #672664 + * drm/radeon/kms: add quirk for MSI K9A2GM motherboard + - LP: #672664 + * mmc: sdio: fix SDIO suspend/resume regression + - LP: #672664 + * V4L/DVB: dib7770: enable the current mirror + - LP: #672664 + * xfs: properly account for reclaimed inodes + - LP: #672664 + * skge: add quirk to limit DMA + - LP: #672664 + * r8169: allocate with GFP_KERNEL flag when able to sleep + - LP: #672664 + * KVM: i8259: fix migration + - LP: #672664 + * KVM: x86: Fix SVM VMCB reset + - LP: #672664 + * KVM: x86: Move TSC reset out of vmcb_init + - LP: #672664 + * KVM: fix irqfd assign/deassign race + - LP: #672664 + * KVM: Fix reboot on Intel hosts + - LP: #672664 + * bsg: fix incorrect device_status value + - LP: #672664 + * Fix VPD inquiry page wrapper + - LP: #672664 + * virtio: console: Don't block entire guest if host doesn't read data + - LP: #672664 + * ACPI: Handle ACPI0007 Device in acpi_early_set_pdc + - LP: #672664 + * powerpc: Initialise paca->kstack before early_setup_secondary + - LP: #672664 + * powerpc: Don't use kernel stack with translation off + - LP: #672664 + * b44: fix carrier detection on bind + - LP: #672664 + * ACPI: enable repeated PCIEXP wakeup by clearing PCIEXP_WAKE_STS on + resume + - LP: #613381, #672664 + * ACPI: EC: add Vista incompatibility DMI entry for Toshiba Satellite + L355 + - LP: #672664 + * ACPI: delete ZEPTO idle=nomwait DMI quirk + - LP: #672664 + * ACPI: Disable Windows Vista compatibility for Toshiba P305D + - LP: #672664 + * PM / ACPI: Blacklist systems known to require acpi_sleep=nonvs + - LP: #672664 + * x86: detect scattered cpuid features earlier + - LP: #672664 + * agp/intel: Fix cache control for Sandybridge + - LP: #672664 + * x86-32: Separate 1:1 pagetables from swapper_pg_dir + - LP: #672664 + * x86-32: Fix dummy trampoline-related inline stubs + - LP: #672664 + * x86, mm: Fix CONFIG_VMSPLIT_1G and 2G_OPT trampoline + - LP: #672664 + * setup_arg_pages: diagnose excessive argument size + - LP: #672664 + * execve: improve interactivity with large arguments + - LP: #672664 + * execve: make responsive to SIGKILL with large arguments + - LP: #672664 + * mm: Move vma_stack_continue into mm.h + - LP: #672664 + * Linux 2.6.35.8 + - LP: #672664 + * SRU:[Config] Disable inte_idle for -virtual kernels + - LP: #651370 + * smsc95xx: generate random MAC address once, not every ifup + - LP: #673504, #673509 + * ALSA: HDA: Enable SKU quirks for Realtek + - LP: #617647 + * ALSA: HDA: Apply SKU override for Acer aspire 7736z + - LP: #617647 + * net: clear heap allocation for ETHTOOL_GRXCLSRLALL + - CVE-2010-3861 + * ipc: shm: fix information leak to userland + - CVE-2010-4072 + * drm/i915: Avoid pageflipping freeze when we miss the flip prepare + interrupt + - LP: #680204 + * ALSA: HDA: Add an extra DAC for Realtek ALC887-VD + - LP: #682596 + * ALSA: hda - Fixed ALC887-VD initial error + - LP: #682596 + -- Brad Figg Tue, 30 Nov 2010 12:29:50 -0800 + +linux (2.6.35-23.41) maverick-security; urgency=low + + [ Leann Ogasawara ] + + * SAUCE: AF_ECONET prevent kernel stack overflow + - CVE-2010-3848 + * SAUCE: AF_ECONET SIOCSIFADDR ioctl does not check privileges + - CVE-2010-3850 + * SAUCE: AF_ECONET saddr->cookie prevent NULL pointer dereference + - CVE-2010-3849 + + -- Leann Ogasawara Fri, 19 Nov 2010 15:23:52 -0800 + +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-28 +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-28/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-28 +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-28 + This package provides the architecture dependant parts for kernel + version locked tools for version 2.6.35-28 on + DESC. + + +Package: linux-image-2.6.35-28-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-28-generic +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-generic-pae +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-omap +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-powerpc +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-server +Architecture: amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-versatile +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-virtual +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28 +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-28/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-28 +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-28 + This package provides the architecture dependant parts for kernel + version locked tools for version 2.6.35-28 on + DESC. + + +Package: linux-image-2.6.35-28-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-28-generic +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-generic-pae +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-omap +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-powerpc +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-server +Architecture: amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-versatile +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-virtual +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-generic-di +XC-Package-Type: udeb +Provides: kernel-image +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-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-28-generic-di +XC-Package-Type: udeb +Provides: nic-modules +Depends: kernel-image-2.6.35-28-generic-di, nic-shared-modules-2.6.35-28-generic-di, virtio-modules-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: Network interface support + +Package: nic-shared-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: nic-shared-modules +Depends: kernel-image-2.6.35-28-generic-di, crypto-modules-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: nic shared modules + This package contains modules which support nic modules + +Package: serial-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: serial-modules +Depends: kernel-image-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: Serial port support + +Package: ppp-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: ppp-modules +Depends: kernel-image-2.6.35-28-generic-di, nic-shared-modules-2.6.35-28-generic-di, serial-modules-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: PPP (serial port) networking support + +Package: firewire-core-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: firewire-core-modules +Depends: kernel-image-2.6.35-28-generic-di, storage-core-modules-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: Firewire (IEEE-1394) Support + +Package: scsi-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: scsi-modules +Depends: kernel-image-2.6.35-28-generic-di, storage-core-modules-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: SCSI storage support + +Package: plip-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: plip-modules +Depends: kernel-image-2.6.35-28-generic-di, nic-shared-modules-2.6.35-28-generic-di, parport-modules-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: PLIP (parallel port) networking support + +Package: floppy-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: floppy-modules +Depends: kernel-image-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: Floppy driver support + +Package: fat-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: fat-modules +Depends: kernel-image-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: FAT filesystem support + This includes Windows FAT and VFAT support. + +Package: nfs-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: nfs-modules +Depends: kernel-image-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: NFS filesystem drivers + Includes the NFS client driver, and supporting modules. + +Package: md-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: md-modules +Depends: kernel-image-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: Multi-device support (raid, device-mapper, lvm) + +Package: usb-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: usb-modules +Depends: kernel-image-2.6.35-28-generic-di, storage-core-modules-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: Core USB support + +Package: pcmcia-storage-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: pcmcia-storage-modules +Depends: kernel-image-2.6.35-28-generic-di, scsi-modules-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: PCMCIA storage support + +Package: fb-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: fb-modules +Depends: kernel-image-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: Framebuffer modules + +Package: input-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: input-modules +Depends: kernel-image-2.6.35-28-generic-di, usb-modules-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: Support for various input methods + +Package: mouse-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: mouse-modules +Depends: kernel-image-2.6.35-28-generic-di, input-modules-2.6.35-28-generic-di, usb-modules-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: extra +Description: Mouse support + This package contains mouse drivers for the Linux kernel. + +Package: irda-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: irda-modules +Depends: kernel-image-2.6.35-28-generic-di, nic-shared-modules-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: Support for Infrared protocols + +Package: parport-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: parport-modules +Depends: kernel-image-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: Parallel port support + +Package: nic-pcmcia-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: nic-pcmcia-modules +Depends: kernel-image-2.6.35-28-generic-di, nic-shared-modules-2.6.35-28-generic-di, nic-modules-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: PCMCIA network interface support + +Package: pcmcia-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: pcmcia-modules +Depends: kernel-image-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: PCMCIA Modules + +Package: nic-usb-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: nic-usb-modules +Depends: kernel-image-2.6.35-28-generic-di, nic-shared-modules-2.6.35-28-generic-di, usb-modules-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: USB network interface support + +Package: sata-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: sata-modules +Depends: kernel-image-2.6.35-28-generic-di, storage-core-modules-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: SATA storage support + +Package: crypto-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: crypto-modules +Depends: kernel-image-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: extra +Description: crypto modules + This package contains crypto modules. + +Package: char-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: char-modules +Depends: kernel-image-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: Character module support + +Package: fs-core-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: fs-core-modules, jfs-modules, reiserfs-modules, xfs-modules +Depends: kernel-image-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: Base filesystem modules + This includes jfs, reiserfs and xfs. + +Package: fs-secondary-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: fs-secondary-modules, ntfs-modules, hfs-modules +Depends: kernel-image-2.6.35-28-generic-di, fat-modules-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-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-28-generic-di +XC-Package-Type: udeb +Provides: pata-modules +Depends: kernel-image-2.6.35-28-generic-di, storage-core-modules-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: PATA support modules + +Package: storage-core-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: storage-core-modules, loop-modules +Depends: kernel-image-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-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-28-generic-di +XC-Package-Type: udeb +Provides: block-modules +Depends: kernel-image-2.6.35-28-generic-di, storage-core-modules-2.6.35-28-generic-di, parport-modules-2.6.35-28-generic-di, virtio-modules-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-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-28-generic-di +XC-Package-Type: udeb +Provides: message-modules +Depends: kernel-image-2.6.35-28-generic-di, storage-core-modules-2.6.35-28-generic-di, scsi-modules-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-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-28-generic-di +XC-Package-Type: udeb +Provides: virtio-modules +Depends: kernel-image-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: standard +Description: VirtIO Modules + Includes modules for VirtIO (virtual machine, generally kvm guests) + +Package: squashfs-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: squashfs-modules +Depends: kernel-image-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: extra +Description: squashfs modules + This package contains squashfs modules. + +Package: vlan-modules-2.6.35-28-generic-di +XC-Package-Type: udeb +Provides: vlan-modules +Depends: kernel-image-2.6.35-28-generic-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-generic +Section: debian-installer +Priority: extra +Description: vlan modules + This package contains vlan (8021.Q) modules. + +Package: kernel-image-2.6.35-28-virtual-di +XC-Package-Type: udeb +Provides: kernel-image +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-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-28-virtual-di +XC-Package-Type: udeb +Provides: nic-modules +Depends: kernel-image-2.6.35-28-virtual-di, nic-shared-modules-2.6.35-28-virtual-di, virtio-modules-2.6.35-28-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-virtual +Section: debian-installer +Priority: standard +Description: Network interface support + +Package: nic-shared-modules-2.6.35-28-virtual-di +XC-Package-Type: udeb +Provides: nic-shared-modules +Depends: kernel-image-2.6.35-28-virtual-di, crypto-modules-2.6.35-28-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-virtual +Section: debian-installer +Priority: standard +Description: nic shared modules + This package contains modules which support nic modules + +Package: ppp-modules-2.6.35-28-virtual-di +XC-Package-Type: udeb +Provides: ppp-modules +Depends: kernel-image-2.6.35-28-virtual-di, nic-shared-modules-2.6.35-28-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-virtual +Section: debian-installer +Priority: standard +Description: PPP (serial port) networking support + +Package: scsi-modules-2.6.35-28-virtual-di +XC-Package-Type: udeb +Provides: scsi-modules +Depends: kernel-image-2.6.35-28-virtual-di, storage-core-modules-2.6.35-28-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-virtual +Section: debian-installer +Priority: standard +Description: SCSI storage support + +Package: floppy-modules-2.6.35-28-virtual-di +XC-Package-Type: udeb +Provides: floppy-modules +Depends: kernel-image-2.6.35-28-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-virtual +Section: debian-installer +Priority: standard +Description: Floppy driver support + +Package: fat-modules-2.6.35-28-virtual-di +XC-Package-Type: udeb +Provides: fat-modules +Depends: kernel-image-2.6.35-28-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-virtual +Section: debian-installer +Priority: standard +Description: FAT filesystem support + This includes Windows FAT and VFAT support. + +Package: md-modules-2.6.35-28-virtual-di +XC-Package-Type: udeb +Provides: md-modules +Depends: kernel-image-2.6.35-28-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-virtual +Section: debian-installer +Priority: standard +Description: Multi-device support (raid, device-mapper, lvm) + +Package: fb-modules-2.6.35-28-virtual-di +XC-Package-Type: udeb +Provides: fb-modules +Depends: kernel-image-2.6.35-28-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-virtual +Section: debian-installer +Priority: standard +Description: Framebuffer modules + +Package: mouse-modules-2.6.35-28-virtual-di +XC-Package-Type: udeb +Provides: mouse-modules +Depends: kernel-image-2.6.35-28-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-virtual +Section: debian-installer +Priority: extra +Description: Mouse support + This package contains mouse drivers for the Linux kernel. + +Package: irda-modules-2.6.35-28-virtual-di +XC-Package-Type: udeb +Provides: irda-modules +Depends: kernel-image-2.6.35-28-virtual-di, nic-shared-modules-2.6.35-28-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-virtual +Section: debian-installer +Priority: standard +Description: Support for Infrared protocols + +Package: parport-modules-2.6.35-28-virtual-di +XC-Package-Type: udeb +Provides: parport-modules +Depends: kernel-image-2.6.35-28-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-virtual +Section: debian-installer +Priority: standard +Description: Parallel port support + +Package: sata-modules-2.6.35-28-virtual-di +XC-Package-Type: udeb +Provides: sata-modules +Depends: kernel-image-2.6.35-28-virtual-di, storage-core-modules-2.6.35-28-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-virtual +Section: debian-installer +Priority: standard +Description: SATA storage support + +Package: crypto-modules-2.6.35-28-virtual-di +XC-Package-Type: udeb +Provides: crypto-modules +Depends: kernel-image-2.6.35-28-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-virtual +Section: debian-installer +Priority: extra +Description: crypto modules + This package contains crypto modules. + +Package: fs-core-modules-2.6.35-28-virtual-di +XC-Package-Type: udeb +Provides: fs-core-modules, jfs-modules, reiserfs-modules, xfs-modules +Depends: kernel-image-2.6.35-28-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-virtual +Section: debian-installer +Priority: standard +Description: Base filesystem modules + This includes jfs, reiserfs and xfs. + +Package: fs-secondary-modules-2.6.35-28-virtual-di +XC-Package-Type: udeb +Provides: fs-secondary-modules, ntfs-modules, hfs-modules +Depends: kernel-image-2.6.35-28-virtual-di, fat-modules-2.6.35-28-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-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-28-virtual-di +XC-Package-Type: udeb +Provides: storage-core-modules, loop-modules +Depends: kernel-image-2.6.35-28-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-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-28-virtual-di +XC-Package-Type: udeb +Provides: block-modules +Depends: kernel-image-2.6.35-28-virtual-di, storage-core-modules-2.6.35-28-virtual-di, parport-modules-2.6.35-28-virtual-di, virtio-modules-2.6.35-28-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-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-28-virtual-di +XC-Package-Type: udeb +Provides: message-modules +Depends: kernel-image-2.6.35-28-virtual-di, storage-core-modules-2.6.35-28-virtual-di, scsi-modules-2.6.35-28-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-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-28-virtual-di +XC-Package-Type: udeb +Provides: virtio-modules +Depends: kernel-image-2.6.35-28-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-virtual +Section: debian-installer +Priority: standard +Description: VirtIO Modules + Includes modules for VirtIO (virtual machine, generally kvm guests) + +Package: squashfs-modules-2.6.35-28-virtual-di +XC-Package-Type: udeb +Provides: squashfs-modules +Depends: kernel-image-2.6.35-28-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-virtual +Section: debian-installer +Priority: extra +Description: squashfs modules + This package contains squashfs modules. + +Package: vlan-modules-2.6.35-28-virtual-di +XC-Package-Type: udeb +Provides: vlan-modules +Depends: kernel-image-2.6.35-28-virtual-di +Architecture: amd64 +XB-Kernel-Version: 2.6.35-28-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 $(CROSS_COMPILE) +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,227 @@ +# +# 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) \ + CROSS_COMPILE=$(CROSS_COMPILE) \ + 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,147 @@ +# 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)" + @echo "DEB_HOST_GNU_TYPE = $(DEB_HOST_GNU_TYPE)" + @echo "DEB_BUILD_GNU_TYPE = $(DEB_BUILD_GNU_TYPE)" + @echo "DEB_HOST_ARCH = $(DEB_HOST_ARCH)" + @echo "DEB_BUILD_ARCH = $(DEB_BUILD_ARCH)" + @echo "arch = $(arch)" + @echo "kmake = $(kmake)" + +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/bio.c +++ linux-2.6.35/fs/bio.c @@ -370,6 +370,9 @@ { struct bio *bio; + if (nr_iovecs > UIO_MAXIOV) + return NULL; + bio = kmalloc(sizeof(struct bio) + nr_iovecs * sizeof(struct bio_vec), gfp_mask); if (unlikely(!bio)) @@ -697,8 +700,12 @@ static struct bio_map_data *bio_alloc_map_data(int nr_segs, int iov_count, gfp_t gfp_mask) { - struct bio_map_data *bmd = kmalloc(sizeof(*bmd), gfp_mask); + struct bio_map_data *bmd; + if (iov_count > UIO_MAXIOV) + return NULL; + + bmd = kmalloc(sizeof(*bmd), gfp_mask); if (!bmd) return NULL; @@ -827,6 +834,12 @@ end = (uaddr + iov[i].iov_len + PAGE_SIZE - 1) >> PAGE_SHIFT; start = uaddr >> PAGE_SHIFT; + /* + * Overflow, abort + */ + if (end < start) + return ERR_PTR(-EINVAL); + nr_pages += end - start; len += iov[i].iov_len; } @@ -954,6 +967,12 @@ unsigned long end = (uaddr + len + PAGE_SIZE - 1) >> PAGE_SHIFT; unsigned long start = uaddr >> PAGE_SHIFT; + /* + * Overflow, abort + */ + if (end < start) + return ERR_PTR(-EINVAL); + nr_pages += end - start; /* * buffer must be aligned to at least hardsector size for now @@ -981,7 +1000,7 @@ unsigned long start = uaddr >> PAGE_SHIFT; const int local_nr_pages = end - start; const int page_limit = cur_page + local_nr_pages; - + ret = get_user_pages_fast(uaddr, local_nr_pages, write_to_vm, &pages[cur_page]); if (ret < local_nr_pages) { --- 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/pipe.c +++ linux-2.6.35/fs/pipe.c @@ -382,7 +382,7 @@ error = ops->confirm(pipe, buf); if (error) { if (!ret) - error = ret; + ret = error; break; } @@ -1197,12 +1197,24 @@ return ret; } +/* + * After the inode slimming patch, i_pipe/i_bdev/i_cdev share the same + * location, so checking ->i_pipe is not enough to verify that this is a + * pipe. + */ +struct pipe_inode_info *get_pipe_info(struct file *file) +{ + struct inode *i = file->f_path.dentry->d_inode; + + return S_ISFIFO(i->i_mode) ? i->i_pipe : NULL; +} + long pipe_fcntl(struct file *file, unsigned int cmd, unsigned long arg) { struct pipe_inode_info *pipe; long ret; - pipe = file->f_path.dentry->d_inode->i_pipe; + pipe = get_pipe_info(file); if (!pipe) return -EBADF; --- 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; @@ -1376,6 +1376,10 @@ argv++; if (i++ >= max) return -E2BIG; + + if (fatal_signal_pending(current)) + return -ERESTARTNOHAND; + cond_resched(); } } return i; @@ -1417,6 +1421,12 @@ while (len > 0) { int offset, bytes_to_copy; + if (fatal_signal_pending(current)) { + ret = -ERESTARTNOHAND; + goto out; + } + cond_resched(); + offset = pos % PAGE_SIZE; if (offset == 0) offset = PAGE_SIZE; @@ -1433,18 +1443,8 @@ if (!kmapped_page || kpos != (pos & PAGE_MASK)) { struct page *page; -#ifdef CONFIG_STACK_GROWSUP - ret = expand_stack_downwards(bprm->vma, pos); - if (ret < 0) { - /* We've exceed the stack rlimit. */ - ret = -E2BIG; - goto out; - } -#endif - ret = get_user_pages(current, bprm->mm, pos, - 1, 1, 1, &page, NULL); - if (ret <= 0) { - /* We've exceed the stack rlimit. */ + page = get_arg_page(bprm, pos, 1); + if (!page) { ret = -E2BIG; goto out; } @@ -1565,8 +1565,10 @@ return retval; out: - if (bprm->mm) + if (bprm->mm) { + acct_arg_size(bprm, 0); mmput(bprm->mm); + } out_file: if (bprm->file) { --- 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 @@ -158,7 +160,22 @@ #ifdef CONFIG_MMU -static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos, +void acct_arg_size(struct linux_binprm *bprm, unsigned long pages) +{ + struct mm_struct *mm = current->mm; + long diff = (long)(pages - bprm->vma_pages); + + if (!mm || !diff) + return; + + bprm->vma_pages = pages; + + down_write(&mm->mmap_sem); + mm->total_vm += diff; + up_write(&mm->mmap_sem); +} + +struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos, int write) { struct page *page; @@ -180,6 +197,8 @@ unsigned long size = bprm->vma->vm_end - bprm->vma->vm_start; struct rlimit *rlim; + acct_arg_size(bprm, size / PAGE_SIZE); + /* * We've historically supported up to 32 pages (ARG_MAX) * of argument strings even with small stacks @@ -248,6 +267,11 @@ vma->vm_flags = VM_STACK_FLAGS | VM_STACK_INCOMPLETE_SETUP; vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); INIT_LIST_HEAD(&vma->anon_vma_chain); + + err = security_file_mmap(NULL, 0, 0, 0, vma->vm_start, 1); + if (err) + goto err; + err = insert_vm_struct(mm, vma); if (err) goto err; @@ -270,7 +294,11 @@ #else -static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos, +void acct_arg_size(struct linux_binprm *bprm, unsigned long pages) +{ +} + +struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos, int write) { struct page *page; @@ -377,6 +405,9 @@ argv++; if (i++ >= max) return -E2BIG; + + if (fatal_signal_pending(current)) + return -ERESTARTNOHAND; cond_resched(); } } @@ -420,6 +451,12 @@ while (len > 0) { int offset, bytes_to_copy; + if (fatal_signal_pending(current)) { + ret = -ERESTARTNOHAND; + goto out; + } + cond_resched(); + offset = pos % PAGE_SIZE; if (offset == 0) offset = PAGE_SIZE; @@ -594,6 +631,11 @@ #else stack_top = arch_align_stack(stack_top); stack_top = PAGE_ALIGN(stack_top); + + if (unlikely(stack_top < mmap_min_addr) || + unlikely(vma->vm_end - vma->vm_start >= stack_top - mmap_min_addr)) + return -ENOMEM; + stack_shift = vma->vm_end - stack_top; bprm->p -= stack_shift; @@ -685,6 +727,8 @@ fsnotify_open(file->f_path.dentry); + trace_open_exec(name); + err = deny_write_access(file); if (err) goto exit; @@ -977,6 +1021,7 @@ /* * Release all of the old mmap stuff */ + acct_arg_size(bprm, 0); retval = exec_mmap(bprm->mm); if (retval) goto out; @@ -1401,8 +1446,10 @@ return retval; out: - if (bprm->mm) - mmput (bprm->mm); + if (bprm->mm) { + acct_arg_size(bprm, 0); + mmput(bprm->mm); + } out_file: if (bprm->file) { --- 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 @@ -1323,18 +1325,6 @@ static int splice_pipe_to_pipe(struct pipe_inode_info *ipipe, struct pipe_inode_info *opipe, size_t len, unsigned int flags); -/* - * After the inode slimming patch, i_pipe/i_bdev/i_cdev share the same - * location, so checking ->i_pipe is not enough to verify that this is a - * pipe. - */ -static inline struct pipe_inode_info *pipe_info(struct inode *inode) -{ - if (S_ISFIFO(inode->i_mode)) - return inode->i_pipe; - - return NULL; -} /* * Determine where to splice to/from. @@ -1348,8 +1338,8 @@ loff_t offset, *off; long ret; - ipipe = pipe_info(in->f_path.dentry->d_inode); - opipe = pipe_info(out->f_path.dentry->d_inode); + ipipe = get_pipe_info(in); + opipe = get_pipe_info(out); if (ipipe && opipe) { if (off_in || off_out) @@ -1567,7 +1557,7 @@ int error; long ret; - pipe = pipe_info(file->f_path.dentry->d_inode); + pipe = get_pipe_info(file); if (!pipe) return -EBADF; @@ -1654,7 +1644,7 @@ }; long ret; - pipe = pipe_info(file->f_path.dentry->d_inode); + pipe = get_pipe_info(file); if (!pipe) return -EBADF; @@ -2034,8 +2024,8 @@ static long do_tee(struct file *in, struct file *out, size_t len, unsigned int flags) { - struct pipe_inode_info *ipipe = pipe_info(in->f_path.dentry->d_inode); - struct pipe_inode_info *opipe = pipe_info(out->f_path.dentry->d_inode); + struct pipe_inode_info *ipipe = get_pipe_info(in); + struct pipe_inode_info *opipe = get_pipe_info(out); int ret = -EINVAL; /* --- 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 @@ -255,9 +255,6 @@ nfs4_state_mark_reclaim_nograce(clp, state); goto do_state_recovery; case -NFS4ERR_STALE_STATEID: - if (state == NULL) - break; - nfs4_state_mark_reclaim_reboot(clp, state); case -NFS4ERR_STALE_CLIENTID: case -NFS4ERR_EXPIRED: goto do_state_recovery; @@ -1102,6 +1099,7 @@ clear_bit(NFS_DELEGATED_STATE, &state->flags); smp_rmb(); if (state->n_rdwr != 0) { + clear_bit(NFS_O_RDWR_STATE, &state->flags); ret = nfs4_open_recover_helper(opendata, FMODE_READ|FMODE_WRITE, &newstate); if (ret != 0) return ret; @@ -1109,6 +1107,7 @@ return -ESTALE; } if (state->n_wronly != 0) { + clear_bit(NFS_O_WRONLY_STATE, &state->flags); ret = nfs4_open_recover_helper(opendata, FMODE_WRITE, &newstate); if (ret != 0) return ret; @@ -1116,6 +1115,7 @@ return -ESTALE; } if (state->n_rdonly != 0) { + clear_bit(NFS_O_RDONLY_STATE, &state->flags); ret = nfs4_open_recover_helper(opendata, FMODE_READ, &newstate); if (ret != 0) return ret; @@ -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) { @@ -3477,9 +3479,6 @@ nfs4_state_mark_reclaim_nograce(clp, state); goto do_state_recovery; case -NFS4ERR_STALE_STATEID: - if (state == NULL) - break; - nfs4_state_mark_reclaim_reboot(clp, state); case -NFS4ERR_STALE_CLIENTID: case -NFS4ERR_EXPIRED: goto do_state_recovery; --- 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/nfs/mount_clnt.c +++ linux-2.6.35/fs/nfs/mount_clnt.c @@ -503,13 +503,13 @@ static struct rpc_version mnt_version1 = { .number = 1, - .nrprocs = 2, + .nrprocs = ARRAY_SIZE(mnt_procedures), .procs = mnt_procedures, }; static struct rpc_version mnt_version3 = { .number = 3, - .nrprocs = 2, + .nrprocs = ARRAY_SIZE(mnt3_procedures), .procs = mnt3_procedures, }; --- linux-2.6.35.orig/fs/nfs/nfs4state.c +++ linux-2.6.35/fs/nfs/nfs4state.c @@ -1111,17 +1111,14 @@ (void)ops->reclaim_complete(clp); } -static void nfs4_state_end_reclaim_reboot(struct nfs_client *clp) +static int nfs4_state_clear_reclaim_reboot(struct nfs_client *clp) { struct nfs4_state_owner *sp; struct rb_node *pos; struct nfs4_state *state; if (!test_and_clear_bit(NFS4CLNT_RECLAIM_REBOOT, &clp->cl_state)) - return; - - nfs4_reclaim_complete(clp, - nfs4_reboot_recovery_ops[clp->cl_minorversion]); + return 0; for (pos = rb_first(&clp->cl_state_owners); pos != NULL; pos = rb_next(pos)) { sp = rb_entry(pos, struct nfs4_state_owner, so_client_node); @@ -1135,6 +1132,14 @@ } nfs_delegation_reap_unclaimed(clp); + return 1; +} + +static void nfs4_state_end_reclaim_reboot(struct nfs_client *clp) +{ + if (!nfs4_state_clear_reclaim_reboot(clp)) + return; + nfs4_reclaim_complete(clp, nfs4_reboot_recovery_ops[clp->cl_minorversion]); } static void nfs_delegation_clear_all(struct nfs_client *clp) @@ -1161,7 +1166,7 @@ case -NFS4ERR_STALE_CLIENTID: case -NFS4ERR_LEASE_MOVED: set_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state); - nfs4_state_end_reclaim_reboot(clp); + nfs4_state_clear_reclaim_reboot(clp); nfs4_state_start_reclaim_reboot(clp); break; case -NFS4ERR_EXPIRED: --- linux-2.6.35.orig/fs/nfs/file.c +++ linux-2.6.35/fs/nfs/file.c @@ -222,7 +222,7 @@ have_error |= test_bit(NFS_CONTEXT_ERROR_WRITE, &ctx->flags); if (have_error) ret = xchg(&ctx->error, 0); - if (!ret) + if (!ret && status < 0) ret = status; return ret; } @@ -560,7 +560,7 @@ struct file *filp = vma->vm_file; struct dentry *dentry = filp->f_path.dentry; unsigned pagelen; - int ret = -EINVAL; + int ret = VM_FAULT_NOPAGE; struct address_space *mapping; dfprintk(PAGECACHE, "NFS: vm_page_mkwrite(%s/%s(%ld), offset %lld)\n", @@ -576,21 +576,20 @@ if (mapping != dentry->d_inode->i_mapping) goto out_unlock; - ret = 0; pagelen = nfs_page_length(page); if (pagelen == 0) goto out_unlock; - ret = nfs_flush_incompatible(filp, page); - if (ret != 0) - goto out_unlock; + ret = VM_FAULT_LOCKED; + if (nfs_flush_incompatible(filp, page) == 0 && + nfs_updatepage(filp, page, 0, pagelen) == 0) + goto out; - ret = nfs_updatepage(filp, page, 0, pagelen); + ret = VM_FAULT_SIGBUS; out_unlock: - if (!ret) - return VM_FAULT_LOCKED; unlock_page(page); - return VM_FAULT_SIGBUS; +out: + return ret; } static const struct vm_operations_struct nfs_file_vm_ops = { @@ -697,6 +696,7 @@ { struct inode *inode = filp->f_mapping->host; int status = 0; + unsigned int saved_type = fl->fl_type; /* Try local locking first */ posix_test_lock(filp, fl); @@ -704,6 +704,7 @@ /* found a conflict */ goto out; } + fl->fl_type = saved_type; if (nfs_have_delegation(inode, FMODE_READ)) goto out_noconflict; --- linux-2.6.35.orig/fs/fuse/file.c +++ linux-2.6.35/fs/fuse/file.c @@ -13,6 +13,7 @@ #include #include #include +#include static const struct file_operations fuse_direct_io_file_operations; @@ -134,6 +135,7 @@ void fuse_finish_open(struct inode *inode, struct file *file) { struct fuse_file *ff = file->private_data; + struct fuse_conn *fc = get_fuse_conn(inode); if (ff->open_flags & FOPEN_DIRECT_IO) file->f_op = &fuse_direct_io_file_operations; @@ -141,6 +143,15 @@ invalidate_inode_pages2(inode->i_mapping); if (ff->open_flags & FOPEN_NONSEEKABLE) nonseekable_open(inode, file); + if (fc->atomic_o_trunc && (file->f_flags & O_TRUNC)) { + struct fuse_inode *fi = get_fuse_inode(inode); + + spin_lock(&fc->lock); + fi->attr_version = ++fc->attr_version; + i_size_write(inode, 0); + spin_unlock(&fc->lock); + fuse_invalidate_attr(inode); + } } int fuse_open_common(struct inode *inode, struct file *file, bool isdir) @@ -1617,6 +1628,58 @@ return 0; } +/* Make sure iov_length() won't overflow */ +static int fuse_verify_ioctl_iov(struct iovec *iov, size_t count) +{ + size_t n; + u32 max = FUSE_MAX_PAGES_PER_REQ << PAGE_SHIFT; + + for (n = 0; n < count; n++) { + if (iov->iov_len > (size_t) max) + return -ENOMEM; + max -= iov->iov_len; + } + return 0; +} + +/* + * CUSE servers compiled on 32bit broke on 64bit kernels because the + * ABI was defined to be 'struct iovec' which is different on 32bit + * and 64bit. Fortunately we can determine which structure the server + * used from the size of the reply. + */ +static int fuse_copy_ioctl_iovec(struct iovec *dst, void *src, + size_t transferred, unsigned count, + bool is_compat) +{ +#ifdef CONFIG_COMPAT + if (count * sizeof(struct compat_iovec) == transferred) { + struct compat_iovec *ciov = src; + unsigned i; + + /* + * With this interface a 32bit server cannot support + * non-compat (i.e. ones coming from 64bit apps) ioctl + * requests + */ + if (!is_compat) + return -EINVAL; + + for (i = 0; i < count; i++) { + dst[i].iov_base = compat_ptr(ciov[i].iov_base); + dst[i].iov_len = ciov[i].iov_len; + } + return 0; + } +#endif + + if (count * sizeof(struct iovec) != transferred) + return -EIO; + + memcpy(dst, src, transferred); + return 0; +} + /* * For ioctls, there is no generic way to determine how much memory * needs to be read and/or written. Furthermore, ioctls are allowed @@ -1798,18 +1861,25 @@ in_iovs + out_iovs > FUSE_IOCTL_MAX_IOV) goto out; - err = -EIO; - if ((in_iovs + out_iovs) * sizeof(struct iovec) != transferred) - goto out; - - /* okay, copy in iovs and retry */ vaddr = kmap_atomic(pages[0], KM_USER0); - memcpy(page_address(iov_page), vaddr, transferred); + err = fuse_copy_ioctl_iovec(page_address(iov_page), vaddr, + transferred, in_iovs + out_iovs, + (flags & FUSE_IOCTL_COMPAT) != 0); kunmap_atomic(vaddr, KM_USER0); + if (err) + goto out; in_iov = page_address(iov_page); out_iov = in_iov + in_iovs; + err = fuse_verify_ioctl_iov(in_iov, in_iovs); + if (err) + goto out; + + err = fuse_verify_ioctl_iov(out_iov, out_iovs); + if (err) + goto out; + goto retry; } --- 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/nfsd/xdr4.h +++ linux-2.6.35/fs/nfsd/xdr4.h @@ -484,18 +484,17 @@ static inline void set_change_info(struct nfsd4_change_info *cinfo, struct svc_fh *fhp) { - BUG_ON(!fhp->fh_pre_saved || !fhp->fh_post_saved); - cinfo->atomic = 1; + BUG_ON(!fhp->fh_pre_saved); + cinfo->atomic = fhp->fh_post_saved; cinfo->change_supported = IS_I_VERSION(fhp->fh_dentry->d_inode); - if (cinfo->change_supported) { - cinfo->before_change = fhp->fh_pre_change; - cinfo->after_change = fhp->fh_post_change; - } else { - cinfo->before_ctime_sec = fhp->fh_pre_ctime.tv_sec; - cinfo->before_ctime_nsec = fhp->fh_pre_ctime.tv_nsec; - cinfo->after_ctime_sec = fhp->fh_post_attr.ctime.tv_sec; - cinfo->after_ctime_nsec = fhp->fh_post_attr.ctime.tv_nsec; - } + + cinfo->before_change = fhp->fh_pre_change; + cinfo->after_change = fhp->fh_post_change; + cinfo->before_ctime_sec = fhp->fh_pre_ctime.tv_sec; + cinfo->before_ctime_nsec = fhp->fh_pre_ctime.tv_nsec; + cinfo->after_ctime_sec = fhp->fh_post_attr.ctime.tv_sec; + cinfo->after_ctime_nsec = fhp->fh_post_attr.ctime.tv_nsec; + } int nfs4svc_encode_voidres(struct svc_rqst *, __be32 *, void *); --- linux-2.6.35.orig/fs/nfsd/nfs3xdr.c +++ linux-2.6.35/fs/nfsd/nfs3xdr.c @@ -260,9 +260,11 @@ err = vfs_getattr(fhp->fh_export->ex_path.mnt, fhp->fh_dentry, &fhp->fh_post_attr); fhp->fh_post_change = fhp->fh_dentry->d_inode->i_version; - if (err) + if (err) { fhp->fh_post_saved = 0; - else + /* Grab the ctime anyway - set_change_info might use it */ + fhp->fh_post_attr.ctime = fhp->fh_dentry->d_inode->i_ctime; + } else fhp->fh_post_saved = 1; } --- 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/xfs_iget.c +++ linux-2.6.35/fs/xfs/xfs_iget.c @@ -492,6 +492,7 @@ write_lock(&pag->pag_ici_lock); if (!radix_tree_delete(&pag->pag_ici_root, agino)) ASSERT(0); + __xfs_inode_clear_reclaim(pag, ip); write_unlock(&pag->pag_ici_lock); xfs_perag_put(pag); --- 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_sync.h +++ linux-2.6.35/fs/xfs/linux-2.6/xfs_sync.h @@ -47,6 +47,7 @@ void xfs_inode_set_reclaim_tag(struct xfs_inode *ip); void __xfs_inode_set_reclaim_tag(struct xfs_perag *pag, struct xfs_inode *ip); +void __xfs_inode_clear_reclaim(struct xfs_perag *pag, struct xfs_inode *ip); void __xfs_inode_clear_reclaim_tag(struct xfs_mount *mp, struct xfs_perag *pag, struct xfs_inode *ip); --- linux-2.6.35.orig/fs/xfs/linux-2.6/xfs_sync.c +++ linux-2.6.35/fs/xfs/linux-2.6/xfs_sync.c @@ -711,13 +711,10 @@ } void -__xfs_inode_clear_reclaim_tag( - xfs_mount_t *mp, +__xfs_inode_clear_reclaim( xfs_perag_t *pag, xfs_inode_t *ip) { - radix_tree_tag_clear(&pag->pag_ici_root, - XFS_INO_TO_AGINO(mp, ip->i_ino), XFS_ICI_RECLAIM_TAG); pag->pag_ici_reclaimable--; if (!pag->pag_ici_reclaimable) { /* clear the reclaim tag from the perag radix tree */ @@ -731,6 +728,17 @@ } } +void +__xfs_inode_clear_reclaim_tag( + xfs_mount_t *mp, + xfs_perag_t *pag, + xfs_inode_t *ip) +{ + radix_tree_tag_clear(&pag->pag_ici_root, + XFS_INO_TO_AGINO(mp, ip->i_ino), XFS_ICI_RECLAIM_TAG); + __xfs_inode_clear_reclaim(pag, ip); +} + /* * Inodes in different states need to be treated differently, and the return * value of xfs_iflush is not sufficient to get this right. The following table --- 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)); @@ -671,6 +674,7 @@ if (ret >= 0) return ret; + fsnotify_put_group(group); atomic_dec(&user->inotify_devs); out_free_uid: free_uid(user); --- 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/reiserfs/ioctl.c +++ linux-2.6.35/fs/reiserfs/ioctl.c @@ -170,6 +170,7 @@ int reiserfs_unpack(struct inode *inode, struct file *filp) { int retval = 0; + int depth; int index; struct page *page; struct address_space *mapping; @@ -185,11 +186,10 @@ return 0; } - /* we need to make sure nobody is changing the file size beneath - ** us - */ - mutex_lock(&inode->i_mutex); - reiserfs_write_lock(inode->i_sb); + depth = reiserfs_write_lock_once(inode->i_sb); + + /* we need to make sure nobody is changing the file size beneath us */ + reiserfs_mutex_lock_safe(&inode->i_mutex, inode->i_sb); write_from = inode->i_size & (blocksize - 1); /* if we are on a block boundary, we are already unpacked. */ @@ -224,6 +224,6 @@ out: mutex_unlock(&inode->i_mutex); - reiserfs_write_unlock(inode->i_sb); + reiserfs_write_unlock_once(inode->i_sb, depth); return retval; } --- linux-2.6.35.orig/fs/reiserfs/xattr_acl.c +++ linux-2.6.35/fs/reiserfs/xattr_acl.c @@ -472,7 +472,9 @@ struct reiserfs_transaction_handle th; size_t size = reiserfs_xattr_nblocks(inode, reiserfs_acl_size(clone->a_count)); - reiserfs_write_lock(inode->i_sb); + int depth; + + depth = reiserfs_write_lock_once(inode->i_sb); error = journal_begin(&th, inode->i_sb, size * 2); if (!error) { int error2; @@ -482,7 +484,7 @@ if (error2) error = error2; } - reiserfs_write_unlock(inode->i_sb); + reiserfs_write_unlock_once(inode->i_sb, depth); } posix_acl_release(clone); return error; --- linux-2.6.35.orig/fs/ecryptfs/inode.c +++ linux-2.6.35/fs/ecryptfs/inode.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include "ecryptfs_kernel.h" @@ -70,15 +71,19 @@ struct vfsmount *lower_mnt = ecryptfs_dentry_to_lower_mnt(dentry); struct dentry *dentry_save; struct vfsmount *vfsmount_save; + unsigned int flags_save; int rc; dentry_save = nd->path.dentry; vfsmount_save = nd->path.mnt; + flags_save = nd->flags; nd->path.dentry = lower_dentry; nd->path.mnt = lower_mnt; + nd->flags &= ~LOOKUP_OPEN; rc = vfs_create(lower_dir_inode, lower_dentry, mode, nd); nd->path.dentry = dentry_save; nd->path.mnt = vfsmount_save; + nd->flags = flags_save; return rc; } @@ -264,7 +269,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 +344,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; @@ -1015,10 +1021,8 @@ rc = -EOPNOTSUPP; goto out; } - mutex_lock(&lower_dentry->d_inode->i_mutex); - rc = lower_dentry->d_inode->i_op->setxattr(lower_dentry, name, value, - size, flags); - mutex_unlock(&lower_dentry->d_inode->i_mutex); + + rc = vfs_setxattr(lower_dentry, name, value, size, flags); 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/fs/cifs/inode.c +++ linux-2.6.35/fs/cifs/inode.c @@ -804,8 +804,10 @@ rc = cifs_get_inode_info(&inode, full_path, NULL, sb, xid, NULL); - if (!inode) - return ERR_PTR(-ENOMEM); + if (!inode) { + inode = ERR_PTR(rc); + goto out; + } if (rc && cifs_sb->tcon->ipc) { cFYI(1, "ipc connection - fake read inode"); @@ -816,13 +818,11 @@ inode->i_uid = cifs_sb->mnt_uid; inode->i_gid = cifs_sb->mnt_gid; } else if (rc) { - kfree(full_path); - _FreeXid(xid); iget_failed(inode); - return ERR_PTR(rc); + inode = ERR_PTR(rc); } - +out: kfree(full_path); /* can not call macro FreeXid here since in a void func * TODO: This is no longer true --- linux-2.6.35.orig/fs/cifs/dir.c +++ linux-2.6.35/fs/cifs/dir.c @@ -138,9 +138,9 @@ */ struct cifsFileInfo * cifs_new_fileinfo(struct inode *newinode, __u16 fileHandle, - struct file *file, struct vfsmount *mnt, unsigned int oflags) + struct file *file, struct vfsmount *mnt, unsigned int oflags, + __u32 oplock) { - int oplock = 0; struct cifsFileInfo *pCifsFile; struct cifsInodeInfo *pCifsInode; struct cifs_sb_info *cifs_sb = CIFS_SB(mnt->mnt_sb); @@ -149,9 +149,6 @@ if (pCifsFile == NULL) return pCifsFile; - if (oplockEnabled) - oplock = REQ_OPLOCK; - pCifsFile->netfid = fileHandle; pCifsFile->pid = current->tgid; pCifsFile->pInode = igrab(newinode); @@ -476,7 +473,7 @@ } pfile_info = cifs_new_fileinfo(newinode, fileHandle, filp, - nd->path.mnt, oflags); + nd->path.mnt, oflags, oplock); if (pfile_info == NULL) { fput(filp); CIFSSMBClose(xid, tcon, fileHandle); @@ -738,7 +735,8 @@ cfile = cifs_new_fileinfo(newInode, fileHandle, filp, nd->path.mnt, - nd->intent.open.flags); + nd->intent.open.flags, + oplock); if (cfile == NULL) { fput(filp); CIFSSMBClose(xid, pTcon, fileHandle); --- linux-2.6.35.orig/fs/cifs/file.c +++ linux-2.6.35/fs/cifs/file.c @@ -277,7 +277,7 @@ pCifsFile = cifs_new_fileinfo(inode, netfid, file, file->f_path.mnt, - oflags); + oflags, oplock); if (pCifsFile == NULL) { CIFSSMBClose(xid, tcon, netfid); rc = -ENOMEM; @@ -367,7 +367,7 @@ goto out; pCifsFile = cifs_new_fileinfo(inode, netfid, file, file->f_path.mnt, - file->f_flags); + file->f_flags, oplock); if (pCifsFile == NULL) { rc = -ENOMEM; goto out; --- linux-2.6.35.orig/fs/cifs/cifsproto.h +++ linux-2.6.35/fs/cifs/cifsproto.h @@ -104,7 +104,8 @@ extern struct cifsFileInfo *cifs_new_fileinfo(struct inode *newinode, __u16 fileHandle, struct file *file, - struct vfsmount *mnt, unsigned int oflags); + struct vfsmount *mnt, unsigned int oflags, + __u32 oplock); extern int cifs_posix_open(char *full_path, struct inode **pinode, struct super_block *sb, int mode, int oflags, --- 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,15 @@ } #endif -static int __init populate_rootfs(void) +LIST_HEAD(populate_rootfs_domain); + +void populate_rootfs_wait(void) +{ + async_synchronize_full_domain(&populate_rootfs_domain); +} +EXPORT_SYMBOL(populate_rootfs_wait); + +static void __init async_populate_rootfs(void) { char *err = unpack_to_rootfs(__initramfs_start, __initramfs_end - __initramfs_start); @@ -582,7 +591,7 @@ initrd_end - initrd_start); if (!err) { free_initrd(); - return 0; + return; } else { clean_rootfs(); unpack_to_rootfs(__initramfs_start, @@ -606,6 +615,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. + */ + populate_rootfs_wait(); + + /* * 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,6139 @@ +linux (2.6.35-28.50) maverick-proposed; urgency=low + + [ Brad Figg ] + + * Release Tracking Bug + - LP: #734399 + + [ Corentin Chary ] + + * SAUCE: (drop after 2.6.38) eeepc-wmi: reorder keymap + - LP: #689393 + * SAUCE: (drop after 2.6.38) eeepc-wmi: add wlan key found on 1015P + - LP: #689393 + + [ Keng-Yu Lin ] + + * SAUCE: eeepc-wmi: set the touchpad toggle key code to F22 + - LP: #689393 + + [ Tim Gardner ] + + * [Config] CONFIG_BOOT_PRINTK_DELAY=y + - LP: #733191 + + [ Upstream Kernel Changes ] + + * Revert "drm/radeon/bo: add some fallback placements for VRAM only + objects." + - LP: #652934 + * eeepc-wmi: add additional hotkeys + - LP: #689393 + * xen: don't bother to stop other cpus on shutdown/reboot + - LP: #727814 + * Yama: use thread group leader when creating match + - LP: #729839 + * mmc: sdhci-pci: add ricoh e822 pci id with device specific quirks + - LP: #730820 + + -- Brad Figg Sun, 13 Mar 2011 07:01:39 -0700 + +linux (2.6.35-28.49) maverick-proposed; urgency=low + + [ Brad Figg ] + + * Release Tracking Bug + - LP: #726796 + + [ Colin Ian King ] + + * SAUCE: Dell All-In-One: Remove need for Dell module alias + + [ Manoj Iyer ] + + * SAUCE: add ricoh 0xe823 pci id. + - LP: #717435 + + [ Upstream Kernel Changes ] + + * virtio_net: Add schedule check to napi_enable call + - LP: #579276 + * mmc: make sdhci work with ricoh mmc controller + - LP: #717435 + * NFS: fix the return value of nfs_file_fsync() + - LP: #585657 + * rt2x00: Pad beacon to multiple of 32 bits. + - LP: #659143 + * rt2x00: Fix firmware loading regression on x86_64. + - LP: #659143 + * rt2x00: Check for errors from skb_pad() calls + - LP: #659143 + * block: check for proper length of iov entries earlier in + blk_rq_map_user_iov(), CVE-2010-4163 + - LP: #721504 + - CVE-2010-4163 + * tty: Make tiocgicount a handler, CVE-2010-4076, CVE-2010-4077 + - LP: #720189 + - CVE-2010-4077 + - CVE-2010-4076 + * rds: Integer overflow in RDS cmsg handling, CVE-2010-4175 + - LP: #721455 + - CVE-2010-4175 + + -- Brad Figg Mon, 28 Feb 2011 13:02:53 -0800 + +linux (2.6.35-27.48) maverick-proposed; urgency=low + + [ Steve Conklin ] + + * Release Tracking Bug + - LP: #723335 + + [ Upstream Kernel Changes ] + + * thinkpad-acpi: avoid keymap pitfall + - LP: #722747 + + -- Brad Figg Tue, 22 Feb 2011 19:39:40 -0800 + +linux (2.6.35-27.47) maverick-proposed; urgency=low + + [ Brad Figg ] + + * Release Tracking Bug + - LP: #716532 + + [ Upstream Kernel Changes ] + + * Revert "USB: gadget: Allow function access to device ID data during + bind()" + - LP: #714732 + * net: fix rds_iovec page count overflow, CVE-2010-3865 + - LP: #709153 + - CVE-2010-3865 + * Input: fix typo in keycode validation supporting large scancodes + - LP: #658198 + * net: ax25: fix information leak to userland, CVE-2010-3875 + - LP: #710714 + - CVE-2010-3875 + * net: ax25: fix information leak to userland harder, CVE-2010-3875 + - LP: #710714 + - CVE-2010-3875 + * net: packet: fix information leak to userland, CVE-2010-3876 + - LP: #710714 + - CVE-2010-3876 + * net: tipc: fix information leak to userland, CVE-2010-3877 + - LP: #711291 + - CVE-2010-3877 + * posix-cpu-timers: workaround to suppress the problems with mt exec, + CVE-2010-4248 + - LP: #712609 + - CVE-2010-4248 + * sys_semctl: fix kernel stack leakage, CVE-2010-4083 + - LP: #712749 + - CVE-2010-4083 + * thinkpad-acpi: lock down size of hotkey keymap + - LP: #712174 + * thinkpad-acpi: add support for model-specific keymaps + - LP: #712174 + * thinkpad-acpi: Add KEY_CAMERA (Fn-F6) for Lenovo keyboards + - LP: #712174 + * x86, hotplug: Use mwait to offline a processor, fix the legacy case + - LP: #714732 + * fuse: verify ioctl retries + - LP: #714732 + * fuse: fix ioctl when server is 32bit + - LP: #714732 + * ALSA: hda: Use position_fix=1 for Acer Aspire 5538 to enable capture on + internal mic + - LP: #685161, #714732 + * ALSA: hda: Use model=lg quirk for LG P1 Express to enable playback and + capture + - LP: #595482, #714732 + * drm/radeon/kms: don't apply 7xx HDP flush workaround on AGP + - LP: #714732 + * drm/kms: remove spaces from connector names (v2) + - LP: #714732 + * drm/radeon/kms: fix vram base calculation on rs780/rs880 + - LP: #714732 + * nohz: Fix printk_needs_cpu() return value on offline cpus + - LP: #714732 + * nohz: Fix get_next_timer_interrupt() vs cpu hotplug + - LP: #714732 + * nfsd: Fix possible BUG_ON firing in set_change_info + - LP: #714732 + * NFS: Fix fcntl F_GETLK not reporting some conflicts + - LP: #714732 + * sunrpc: prevent use-after-free on clearing XPT_BUSY + - LP: #714732 + * hwmon: (adm1026) Allow 1 as a valid divider value + - LP: #714732 + * hwmon: (adm1026) Fix setting fan_div + - LP: #714732 + * EDAC: Fix workqueue-related crashes + - LP: #714732 + * amd64_edac: Fix interleaving check + - LP: #714732 + * ASoC: Fix swap of left and right channels for WM8993/4 speaker boost + gain + - LP: #714732 + * ASoC: Fix off by one error in WM8994 EQ register bank size + - LP: #714732 + * ASoC: WM8580: Fix R8 initial value + - LP: #714732 + * ASoC: fix deemphasis control in wm8904/55/60 codecs + - LP: #714732 + * bootmem: Add alloc_bootmem_align() + - LP: #714732 + * x86, xsave: Use alloc_bootmem_align() instead of alloc_bootmem() + - LP: #714732 + * IB/uverbs: Handle large number of entries in poll CQ + - LP: #714732 + * PM / Hibernate: Fix PM_POST_* notification with user-space suspend + - LP: #714732 + * ARM: 6535/1: V6 MPCore v6_dma_inv_range and v6_dma_flush_range RWFO fix + - LP: #714732 + * qla2xxx: Correct issue where NPIV-config data was not being allocated + for 82xx parts. + - LP: #714732 + * qla2xxx: Populate Command Type 6 LUN field properly. + - LP: #714732 + * llc: fix a device refcount imbalance + - LP: #714732 + * ath9k: Disable SWBA interrupt on remove_interface + - LP: #714732 + * ath9k: fix bug in tx power + - LP: #714732 + * mac80211: Fix BUG in pskb_expand_head when transmitting shared skbs + - LP: #714732 + * SPARC/LEON: removed constant timer initialization as if HZ=100, now it + reflects the value of HZ + - LP: #714732 + * sparc64: Delete prom_puts() unused. + - LP: #714732 + * sparc: Remove prom_pathtoinode() + - LP: #714732 + * sparc: Kill prom devops_{32,64}.c + - LP: #714732 + * sparc64: Unexport prom_service_exists(). + - LP: #714732 + * sparc64: Delete prom_setcallback(). + - LP: #714732 + * sparc: Do not export prom_nb{get,put}char(). + - LP: #714732 + * sparc: Pass buffer pointer all the way down to prom_{get,put}char(). + - LP: #714732 + * sparc: Delete prom_*getchar(). + - LP: #714732 + * sparc: Write to prom console using indirect buffer. + - LP: #714732 + * tcp: Don't change unlocked socket state in tcp_v4_err(). + - LP: #714732 + * tcp: Make TCP_MAXSEG minimum more correct. + - LP: #714732 + * tcp: Bug fix in initialization of receive window. + - LP: #714732 + * tcp: avoid a possible divide by zero + - LP: #714732 + * tcp: protect sysctl_tcp_cookie_size reads + - LP: #714732 + * 8139cp: fix checksum broken + - LP: #714732 + * r8169: fix sleeping while holding spinlock. + - LP: #714732 + * scm: Capture the full credentials of the scm sender. + - LP: #714732 + * af_unix: Allow credentials to work across user and pid namespaces. + - LP: #714732 + * user_ns: Introduce user_nsmap_uid and user_ns_map_gid. + - LP: #714732 + * sock: Introduce cred_to_ucred + - LP: #714732 + * net: Export cred_to_ucred to modules. + - LP: #714732 + * af_unix: limit recursion level + - LP: #714732 + * driver/net/benet: fix be_cmd_multicast_set() memcpy bug + - LP: #714732 + * bonding: Fix slave selection bug. + - LP: #714732 + * bridge: fix IPv6 queries for bridge multicast snooping + - LP: #714732 + * cls_cgroup: Fix crash on module unload + - LP: #714732 + * filter: fix sk_filter rcu handling + - LP: #714732 + * econet: Do the correct cleanup after an unprivileged SIOCSIFADDR. + - LP: #714732 + * econet: Fix crash in aun_incoming(). + - LP: #714732 + * ifb: goto resched directly if error happens and dp->tq isn't empty + - LP: #714732 + * l2tp: Fix modalias of l2tp_ip + - LP: #714732 + * x25: decrement netdev reference counts on unload + - LP: #714732 + * tehuti: Firmware filename is tehuti/bdx.bin + - LP: #714732 + * net/dst: dst_dev_event() called after other notifiers + - LP: #714732 + * net: Fix header size check for GSO case in recvmsg (af_packet) + - LP: #714732 + * ACPICA: Fix Scope() op in module level code + - LP: #714732 + * nouveau: Acknowledge HPD irq in handler, not bottom half + - LP: #714732 + * printk: Fix wake_up_klogd() vs cpu hotplug + - LP: #714732 + * sched: Cure more NO_HZ load average woes + - LP: #714732 + * ACPI: EC: Add another dmi match entry for MSI hardware + - LP: #714732 + * PM / Runtime: Fix pm_runtime_suspended() + - LP: #714732 + * inotify: stop kernel memory leak on file creation failure + - LP: #714732 + * orinoco: fix TKIP countermeasure behaviour + - LP: #714732 + * orinoco: clear countermeasure setting on commit + - LP: #714732 + * x86, amd: Fix panic on AMD CPU family 0x15 + - LP: #714732 + * md: fix bug with re-adding of partially recovered device. + - LP: #714732 + * md: protect against NULL reference when waiting to start a raid10. + - LP: #714732 + * tracing: Fix panic when lseek() called on "trace" opened for writing + - LP: #714732 + * x86, gcc-4.6: Use gcc -m options when building vdso + - LP: #714732 + * x86: Enable the intr-remap fault handling after local APIC setup + - LP: #714732 + * x86, vt-d: Handle previous faults after enabling fault handling + - LP: #714732 + * x86, vt-d: Fix the vt-d fault handling irq migration in the x2apic mode + - LP: #714732 + * x86, vt-d: Quirk for masking vtd spec errors to platform error handling + logic + - LP: #714732 + * rt2x00: Fix max TX power settings + - LP: #714732 + * install_special_mapping skips security_file_mmap check. + - LP: #714732 + * USB: misc: uss720.c: add another vendor/product ID + - LP: #714732 + * USB: ftdi_sio: Add D.O.Tec PID + - LP: #714732 + * USB: usb-storage: unusual_devs entry for the Samsung YP-CP3 + - LP: #714732 + * p54usb: add 5 more USBIDs + - LP: #714732 + * p54usb: New USB ID for Gemtek WUBI-100GW + - LP: #714732 + * n_gsm: Fix message length handling when building header + - LP: #714732 + * n_gsm: gsm_data_alloc buffer allocation could fail and it is not being + checked + - LP: #714732 + * xhci: Fix issue with port array setup and buggy hosts. + - LP: #714732 + * gpio: Fix null pointer dereference while accessing rdc321x + platform_data + - LP: #714732 + * cs5535-gpio: don't apply errata #36 to edge detect GPIOs + - LP: #714732 + * cs5535-gpio: handle GPIO regs where higher (clear) bits are set + - LP: #714732 + * mmc: at91_mci: fix multiblock SDIO transfers + - LP: #714732 + * mmc: atmel-mci: fix multiblock SDIO transfers + - LP: #714732 + * mmc: Fix re-probing with PM_POST_RESTORE notification + - LP: #714732 + * fix freeing user_struct in user cache + - LP: #714732 + * rtc: rs5c372: fix buffer size + - LP: #714732 + * RAMOOPS: Don't overflow over non-allocated regions + - LP: #714732 + * watchdog: Fix null pointer dereference while accessing rdc321x + platform_data + - LP: #714732 + * arch/x86/oprofile/op_model_amd.c: Perform initialisation on a single + CPU + - LP: #714732 + * mfd: Support additional parent IDs for wm831x + - LP: #714732 + * mfd: Supply IRQ base for WM832x devices + - LP: #714732 + * drm/radeon/kms/evergreen: reset the grbm blocks at resume and init + - LP: #714732 + * drm/radeon/kms: fix evergreen asic reset + - LP: #714732 + * drm/radeon/kms: reorder display resume to avoid problems + - LP: #714732 + * drm/i915/dp: Fix I2C/EDID handling with active DisplayPort to DVI + converter + - LP: #714732 + * sound: Prevent buffer overflow in OSS load_mixer_volumes + - LP: #714732 + * mv_xor: fix race in tasklet function + - LP: #714732 + * ima: fix add LSM rule bug + - LP: #714732 + * libata-sff: fix HSM_ST_ERR handling in __ata_sff_port_intr() + - LP: #714732 + * mac80211: fix mesh forwarding + - LP: #714732 + * ALSA: hda: Use LPIB quirk for Dell Inspiron m101z/1120 + - LP: #714732 + * Sched: fix skip_clock_update optimization + - LP: #714732 + * block: Deprecate QUEUE_FLAG_CLUSTER and use queue_limits instead + - LP: #714732 + * x86/microcode: Fix double vfree() and remove redundant pointer checks + before vfree() + - LP: #714732 + * gspca - sonixj: Set the flag for some devices + - LP: #714732 + * gspca - sonixj: Add a flag in the driver_info table + - LP: #714732 + * mac80211: fix hard lockup in sta_addba_resp_timer_expired + - LP: #714732 + * mac80211: fix mesh forwarding when ratelimited too + - LP: #714732 + * mac80211: fix initialization of skb->cb in ieee80211_subif_start_xmit + - LP: #714732 + * Release 2.6.35.11 + - LP: #714732 + * inet_diag: Make sure we actually run the same bytecode we audited, + CVE-2010-3880 + - LP: #711865 + - CVE-2010-3880 + + -- Brad Figg Mon, 07 Feb 2011 09:37:35 -0800 + +linux (2.6.35-26.46) maverick-proposed; urgency=low + [ Steve Conklin ] + + * Tracking Bug + - LP: #709352 + + [ Andy Whitcroft ] + + * SAUCE: ensure root is ready before running usermodehelpers in it + + [ Colin Ian King ] + + * SAUCE: Add WMI hotkeys support for another Dell All-In-One series + - LP: #701530 + * SAUCE: Dell WMI: Use sparse keymaps and tidy up code. + - LP: #701530 + + [ Tim Gardner ] + + * [Config] Set CONFIG_NR_CPUS=256 for amd64 server + - LP: #706058 + + [ Upstream Kernel Changes ] + + * Input: i8042 - introduce 'notimeout' blacklist for Dell Vostro V13 + - LP: #380126 + * ACPI / Sleep: Consolidate suspend and hibernation routines + - LP: #703228 + * Quirk to fix suspend/resume on Lenovo Edge 11,13,14,15 + - LP: #702434 + * dell-laptop: Add another Dell laptop family to the DMI whitelist + - LP: #693078 + * KVM: Fix fs/gs reload oops with invalid ldt, CVE-2010-3698 + - LP: #707000 + - CVE-2010-3698 + * V4L/DVB: ivtvfb: prevent reading uninitialized stack memory, + CVE-2010-4079 + - LP: #707649 + - CVE-2010-4079 + * tpm: Autodetect itpm devices + - LP: #705845 + * tpm: fix panic caused by "tpm: Autodetect itpm devices" + - LP: #705845 + + -- Steve Conklin Fri, 28 Jan 2011 13:25:59 -0600 + +linux (2.6.35-25.44) maverick-proposed; urgency=low + + [ Upstream Kernel Changes ] + + * Revert "drm/radeon/kms: properly compute group_size on 6xx/7xx" + - LP: #703553 + + -- Steve Conklin Fri, 21 Jan 2011 10:30:04 -0800 + +linux (2.6.35-25.43) maverick-proposed; urgency=low + + [ Brad Figg ] + + - LP: #697948 + + [ Andy Whitcroft ] + + * [Config] add vmware-balloon driver to -virtual flavour + - LP: #592039 + + [ Manoj Iyer ] + + * SAUCE: Enable jack sense for Thinkpad Edge 13 + - LP: #685015 + + [ Robert Hooker ] + + * Revert "(pre-stable): input: Support Clickpad devices in ClickZone + mode" + - LP: #669399 + + [ Stefan Bader ] + + * Set virtual flavour maximum of domain visible memory to 70G + - LP: #667796 + + [ Takashi Iwai ] + + * SAUCE: input: Support Clickpad devices in ClickZone mode + - LP: #516329 + + [ Tim Gardner ] + + * [Config] Add nfsd modules to -virtual flavour + - LP: #688070 + * [Config] Added autofs4.ko to -virtual flavour + - LP: #692917 + + [ Upstream Kernel Changes ] + + * intel_idle: delete substates DEBUG modparam + - LP: #684888 + * intel_idle: delete power_policy modparam, and choose substate functions + - LP: #684888 + * intel_idle: add support for Westmere-EX + - LP: #684888 + * intel_idle: recognize Lincroft Atom Processor + - LP: #684888 + * x86, mwait: Move mwait constants to a common header file + - LP: #684888 + * intel_idle: Change mode 755 => 644 + - LP: #684888 + * intel_idle: add missing __percpu markup + - LP: #684888 + * cpuidle: extend cpuidle and menu governor to handle dynamic states + - LP: #684888 + * intel_idle: Voluntary leave_mm before entering deeper + - LP: #684888 + * intel_idle: enable Atom C6 + - LP: #684888 + * intel_idle: simplify test for leave_mm() + - LP: #684888 + * intel_idle: delete bogus data from cpuidle_state.power_usage + - LP: #684888 + * intel_idle: add initial Sandy Bridge support + - LP: #684888 + * intel_idle: do not use the LAPIC timer for ATOM C2 + - LP: #684888 + * staging: usbip: Notify usb core of port status changes + - LP: #686158 + * staging: usbip: Process event flags without delay + - LP: #686158 + * Staging: phison: fix problem caused by libata change + - LP: #686158 + * perf_events: Fix bogus AMD64 generic TLB events + - LP: #686158 + * perf_events: Fix bogus context time tracking + - LP: #686158 + * powerpc/perf: Fix sampling enable for PPC970 + - LP: #686158 + * pcmcia: synclink_cs: fix information leak to userland + - LP: #686158 + * sched: Drop all load weight manipulation for RT tasks + - LP: #686158 + * sched: Fix string comparison in /proc/sched_features + - LP: #686158 + * bluetooth: Fix missing NULL check + - LP: #686158 + * futex: Fix errors in nested key ref-counting + - LP: #686158 + * cifs: fix broken oplock handling + - LP: #686158 + * libahci: fix result_tf handling after an ATA PIO data-in command + - LP: #686158 + * mm, x86: Saving vmcore with non-lazy freeing of vmas + - LP: #686158 + * x86, cpu: Fix renamed, not-yet-shipping AMD CPUID feature bit + - LP: #686158 + * x86, kexec: Make sure to stop all CPUs before exiting the kernel + - LP: #686158 + * x86, olpc: Don't retry EC commands forever + - LP: #686158 + * x86, mtrr: Assume SYS_CFG[Tom2ForceMemTypeWB] exists on all future AMD + CPUs + - LP: #686158 + * x86, intr-remap: Set redirection hint in the IRTE + - LP: #686158 + * x86, kdump: Change copy_oldmem_page() to use cached addressing + - LP: #686158 + * x86, vm86: Fix preemption bug for int1 debug and int3 breakpoint + handlers. + - LP: #686158 + * KVM: X86: Report SVM bit to userspace only when supported + - LP: #686158 + * KVM: SVM: Restore correct registers after sel_cr0 intercept emulation + - LP: #686158 + * USB: mct_u232: fix broken close + - LP: #686158 + * pipe: fix failure to return error code on ->confirm() + - LP: #686158 + * p54usb: fix off-by-one on !CONFIG_PM + - LP: #686158 + * p54usb: add five more USBIDs + - LP: #686158 + * drivers/net/wireless/p54/eeprom.c: Return -ENOMEM on memory allocation + failure + - LP: #686158 + * usb gadget: composite: prevent OOPS for non-standard control request + - LP: #686158 + * USB: gadget: g_ffs: fixed vendor and product ID + - LP: #686158 + * USB: gadget: g_multi: fixed vendor and product ID + - LP: #686158 + * USB: ftdi_sio: Add PID for accesio products + - LP: #686158 + * USB: ftdi_sio: revert "USB: ftdi_sio: fix DTR/RTS line modes" + - LP: #686158, #690798 + * USB: add PID for FTDI based OpenDCC hardware + - LP: #686158 + * USB: ftdi_sio: new VID/PIDs for various Papouch devices + - LP: #686158 + * USB: ftdi_sio: add device ids for ScienceScope + - LP: #686158 + * USB: MUSB: fix kernel WARNING/oops when unloading module in OTG mode + - LP: #686158 + * usb: musb: blackfin: call usb_nop_xceiv_unregister() in + musb_platform_exit() + - LP: #686158 + * usb: musb: blackfin: call gpio_free() on error path in + musb_platform_init() + - LP: #686158 + * USB: Change acm_iad_descriptor bFunctionProtocol to + USB_CDC_ACM_PROTO_AT_V25TER + - LP: #686158 + * USB: option: Add more ZTE modem USB id's + - LP: #686158 + * USB: cp210x: Add Renesas RX-Stick device ID + - LP: #686158 + * USB: cp210x: Add WAGO 750-923 Service Cable device ID + - LP: #686158 + * USB: atmel_usba_udc: force vbus_pin at -EINVAL when gpio_request + failled + - LP: #686158 + * USB: disable endpoints after unbinding interfaces, not before + - LP: #686158 + * USB: visor: fix initialisation of UX50/TH55 devices + - LP: #686158 + * USB: opticon: Fix long-standing bugs in opticon driver + - LP: #686158 + * usb: r8a66597-hcd: Change mistake of the outsw function + - LP: #686158 + * USB: accept some invalid ep0-maxpacket values + - LP: #686158 + * asus-laptop: fix gps rfkill + - LP: #686158 + * sd name space exhaustion causes system hang + - LP: #686158 + * libsas: fix NCQ mixing with non-NCQ + - LP: #686158 + * gdth: integer overflow in ioctl + - LP: #686158 + * Fix race when removing SCSI devices + - LP: #686158 + * Fix regressions in scsi_internal_device_block + - LP: #686158 + * net: clear heap allocations for privileged ethtool actions + - LP: #686158 + * gianfar: fix double lock typo + - LP: #686158 + * gianfar: Fix crashes on RX path (Was Re: [Bugme-new] [Bug 19692] New: + linux-2.6.36-rc5 crash with gianfar ethernet at full line rate traffic) + - LP: #686158 + * ip: fix truesize mismatch in ip fragmentation + - LP: #686158 + * ipv6: fix refcnt problem related to POSTDAD state + - LP: #686158 + * net: Fix IPv6 PMTU disc. w/ asymmetric routes + - LP: #686158 + * netxen: dont set skb->truesize + - LP: #686158 + * qlcnic: dont set skb->truesize + - LP: #686158 + * Phonet: Correct header retrieval after pskb_may_pull + - LP: #686158 + * r6040: Fix multicast filter some more + - LP: #686158 + * rose: Fix signedness issues wrt. digi count. + - LP: #686158 + * net: Fix the condition passed to sk_wait_event() + - LP: #686158 + * Limit sysctl_tcp_mem and sysctl_udp_mem initializers to prevent integer + overflows. + - LP: #686158 + * tcp: Fix race in tcp_poll + - LP: #686158 + * net-2.6: SYN retransmits: Add new parameter to retransmits_timed_out() + - LP: #686158 + * Revert c6537d6742985da1fbf12ae26cde6a096fd35b5c + - LP: #686158 + * Revert d88dca79d3852a3623f606f781e013d61486828a + - LP: #686158 + * net: add a recursion limit in xmit path + - LP: #686158 + * net/core: Allow tagged VLAN packets to flow through VETH devices. + - LP: #686158 + * xfrm4: strip ECN bits from tos field + - LP: #686158 + * secmark: do not return early if there was no error + - LP: #686158 + * ARM: cns3xxx: Fixup the missing second parameter to addruart macro to + allow them to build. + - LP: #686158 + * sgi-xp: incoming XPC channel messages can come in after the channel's + partition structures have been torn down + - LP: #686158 + * isdn: avoid calling tty_ldisc_flush() in atomic context + - LP: #686158 + * KVM: x86 emulator: fix regression with cmpxchg8b on i386 hosts + - LP: #686158 + * Linux 2.6.35.9 + - LP: #686158 + * Input: synaptics - fix handling of 2-button ClickPads + - LP: #687750 + * NFS: Fix panic after nfs_umount() + - LP: #683938 + * block: Ensure physical block size is unsigned int + - LP: #690730 + * block: Fix race during disk initialization + - LP: #690730 + * block: limit vec count in bio_kmalloc() and bio_alloc_map_data() + - LP: #690730 + * block: take care not to overflow when calculating total iov length + - LP: #690730 + * block: check for proper length of iov entries in blk_rq_map_user_iov() + - LP: #690730 + * drm/radeon/kms: don't disable shared encoders on pre-DCE3 display + blocks + - LP: #690730 + * jme: Fix PHY power-off error + - LP: #690730 + * irda: Fix parameter extraction stack overflow + - LP: #690730 + * irda: Fix heap memory corruption in iriap.c + - LP: #690730 + * cfg80211: fix BSS double-unlinking + - LP: #690730 + * cfg80211: fix locking + - LP: #690730 + * cfg80211: fix regression on processing country IEs + - LP: #690730 + * mac80211: fix channel assumption for association done work + - LP: #690730 + * mac80211: fix offchannel assumption upon association + - LP: #690730 + * mac80211: Fix signal strength average initialization for CQM events + - LP: #690730 + * mac80211: add helper for reseting the connection monitor + - LP: #690730 + * mac80211: reset connection idle when going offchannel + - LP: #690730 + * mac80211: make the beacon monitor available externally + - LP: #690730 + * mac80211: send last 3/5 probe requests as unicast + - LP: #690730 + * mac80211: disable beacon monitor while going offchannel + - LP: #690730 + * mac80211: use correct station flags lock + - LP: #690730 + * mac80211: clear txflags for ps-filtered frames + - LP: #690730 + * mac80211: reset probe send counter upon connection timer reset + - LP: #690730 + * mac80211: Fix ibss station got expired immediately + - LP: #690730 + * mac80211: don't sanitize invalid rates + - LP: #690730 + * mac80211: delete AddBA response timer + - LP: #690730 + * isdn/gigaset: fix bas_gigaset AT read error handling + - LP: #690730 + * isdn/gigaset: correct bas_gigaset rx buffer handling + - LP: #690730 + * isdn/gigaset: bas_gigaset locking fix + - LP: #690730 + * i2c-pca-platform: Change device name of request_irq + - LP: #690730 + * viafb: fix i2c_transfer error handling + - LP: #690730 + * drm/radeon/kms: register an i2c adapter name for the dp aux bus + - LP: #690730 + * ALSA: hda - Fix wrong SPDIF NID assignment for CA0110 + - LP: #690730 + * ALSA: hda - Add some workarounds for Creative IBG + - LP: #690730 + * ALSA: OSS mixer emulation - fix locking + - LP: #690730 + * powerpc: Fix call to subpage_protection() + - LP: #690730 + * microblaze: Fix build with make 3.82 + - LP: #690730 + * NFSv4: Don't call nfs4_reclaim_complete() on receiving + NFS4ERR_STALE_CLIENTID + - LP: #690730 + * NFSv4: Don't call nfs4_state_mark_reclaim_reboot() from error handlers + - LP: #690730 + * NFSv4: Fix open recovery + - LP: #690730 + * NFS: Don't SIGBUS if nfs_vm_page_mkwrite races with a cache + invalidation + - LP: #690730 + * drm/radeon/kms: MC vram map needs to be >= pci aperture size + - LP: #690730 + * drm/radeon/kms: properly compute group_size on 6xx/7xx + - LP: #690730 + * drm/radeon/kms: make sure blit addr masks are 64 bit + - LP: #690730 + * drm/radeon/kms: fix handling of tex lookup disable in cs checker on + r2xx + - LP: #690730 + * drm/i915: Free hardware status page on unload when physically mapped + - LP: #690730 + * drm/i915: diasable clock gating for the panel power sequencer + - LP: #690730 + * drm/i915/overlay: Ensure that the reg_bo is in the GTT prior to + writing. + - LP: #690730 + * pcnet_cs: add new_id + - LP: #690730 + * SH: Add missing consts to sys_execve() declaration + - LP: #690730 + * reiserfs: fix inode mutex - reiserfs lock misordering + - LP: #690730 + * reiserfs: don't acquire lock recursively in reiserfs_acl_chmod + - LP: #690730 + * staging: rt2870: Add new USB ID for Belkin F6D4050 v1 + - LP: #690730 + * Staging: asus_oled: fix up some sysfs attribute permissions + - LP: #690730 + * Staging: asus_oled: fix up my fixup for some sysfs attribute + permissions + - LP: #690730 + * ALSA: hda: Use hp-laptop quirk to enable headphones automute for Asus + A52J + - LP: #677652, #690730 + * Staging: line6: fix up some sysfs attribute permissions + - LP: #690730 + * hpet: fix unwanted interrupt due to stale irq status bit + - LP: #690730 + * hpet: unmap unused I/O space + - LP: #690730 + * olpc_battery: Fix endian neutral breakage for s16 values + - LP: #690730 + * percpu: fix list_head init bug in __percpu_counter_init() + - LP: #690730 + * ipmi: proper spinlock initialization + - LP: #690730 + * um: remove PAGE_SIZE alignment in linker script causing kernel + segfault. + - LP: #690730 + * um: fix global timer issue when using CONFIG_NO_HZ + - LP: #690730 + * numa: fix slab_node(MPOL_BIND) + - LP: #690730 + * hwmon: (lm85) Fix ADT7468 frequency table + - LP: #690730 + * oprofile: Fix the hang while taking the cpu offline + - LP: #690730 + * mm: fix return value of scan_lru_pages in memory unplug + - LP: #690730 + * mm, page-allocator: do not check the state of a non-existant buddy + during free + - LP: #690730 + * mm: fix is_mem_section_removable() page_order BUG_ON check + - LP: #690730 + * agp/intel: Also add B43.1 to list of supported devices + - LP: #690730 + * b43: Fix warning at drivers/mmc/core/core.c:237 in mmc_wait_for_cmd + - LP: #690730 + * wireless: b43: fix error path in SDIO + - LP: #690730 + * ssb: b43-pci-bridge: Add new vendor for BCM4318 + - LP: #690730 + * drivers/misc/ad525x_dpot.c: fix typo in spi write16 and write24 + transfer counts + - LP: #690730 + * sgi-xpc: XPC fails to discover partitions with all nasids above 128 + - LP: #690730 + * xen: ensure that all event channels start off bound to VCPU 0 + - LP: #690730 + * ipc: initialize structure memory to zero for compat functions + - LP: #690730 + * net: NETIF_F_HW_CSUM does not imply FCoE CRC offload + - LP: #690730 + * drivers/char/vt_ioctl.c: fix VT_OPENQRY error value + - LP: #690730 + * viafb: use proper register for colour when doing fill ops + - LP: #690730 + * sata_via: apply magic FIFO fix to vt6420 too + - LP: #690730 + * eCryptfs: Clear LOOKUP_OPEN flag when creating lower file + - LP: #690730 + * ecryptfs: call vfs_setxattr() in ecryptfs_setxattr() + - LP: #690730 + * md/raid1: really fix recovery looping when single good device fails. + - LP: #690730 + * md: fix return value of rdev_size_change() + - LP: #690730 + * ALSA: hda: Use BIOS auto-parsing instead of existing model quirk for + MEDION MD2 + - LP: #682199, #690730 + * tty: prevent DOS in the flush_to_ldisc + - LP: #690730 + * TTY: restore tty_ldisc_wait_idle + - LP: #690730 + * tty_ldisc: Fix BUG() on hangup + - LP: #690730 + * TTY: ldisc, fix open flag handling + - LP: #690730 + * usbnet: fix usb_autopm_get_interface failure(v1) + - LP: #690730 + * HID: Fix for problems with eGalax/DWAV multi-touch-screen + - LP: #690730 + * gspca - sonixj: Fix a regression of sensors hv7131r and mi0360 + - LP: #690730 + * hdpvr: Add missing URB_NO_TRANSFER_DMA_MAP flag + - LP: #690730 + * drivers/media/video/cx23885/cx23885-core.c: fix + cx23885_dev_checkrevision() + - LP: #690730 + * KVM: Write protect memory after slot swap + - LP: #690730 + * KVM: x86: fix information leak to userland + - LP: #690730 + * KVM: Correct ordering of ldt reload wrt fs/gs reload + - LP: #690730 + * ASoC: Remove volatility from WM8900 POWER1 register + - LP: #690730 + * ASoC: wm8961 - clear WM8961_DACSLOPE bit for normal mode + - LP: #690730 + * ASoC: wm8961 - clear WM8961_MCLKDIV bit for freq <= 16500000 + - LP: #690730 + * firewire: ohci: fix buffer overflow in AR split packet handling + - LP: #690730 + * firewire: ohci: fix race in AR split packet handling + - LP: #690730 + * ALSA: ac97: Apply quirk for Dell Latitude D610 binding Master and + Headphone controls + - LP: #669279, #690730 + * ALSA: HDA: Add fixup pins for Ideapad Y550 + - LP: #611803, #690730 + * ALSA: hda - Added fixup for Lenovo Y550P + - LP: #690730 + * ALSA: hda: Add speaker pin to automute Acer Aspire 8943G + - LP: #656625, #690730 + * ALSA: hda: Add Samsung R720 SSID for subwoofer pin fixup + - LP: #677830, #690730 + * ALSA: hda - Use ALC_INIT_DEFAULT for really default initialization + - LP: #690730 + * ALSA: hda - Fix ALC660-VD/ALC861-VD capture/playback mixers + - LP: #690730 + * ALSA: Fix SNDCTL_DSP_RESET ioctl for OSS emulation + - LP: #690730 + * ALSA: hda: Use "alienware" model quirk for another SSID + - LP: #683695, #690730 + * netfilter: nf_conntrack: allow nf_ct_alloc_hashtable() to get highmem + pages + - LP: #690730 + * netfilter: NF_HOOK_COND has wrong conditional + - LP: #690730 + * radix-tree: fix RCU bug + - LP: #690730 + * latencytop: fix per task accumulator + - LP: #690730 + * mm/vfs: revalidate page->mapping in do_generic_file_read() + - LP: #690730 + * bio: take care not overflow page count when mapping/copying user data + - LP: #690730 + * drm/radeon/kms/atom: set sane defaults in atombios_get_encoder_mode() + - LP: #690730 + * drm/radeon/kms: fix typos in disabled vbios code + - LP: #690730 + * drm/radeon/kms: add workaround for dce3 ddc line vbios bug + - LP: #690730 + * drm/radeon/kms: Fix retrying ttm_bo_init() after it failed once. + - LP: #690730 + * drm/radeon/kms: fix interlaced and doublescan handling + - LP: #690730 + * exec: make argv/envp memory visible to oom-killer + - LP: #690730 + * exec: copy-and-paste the fixes into compat_do_execve() paths + - LP: #690730 + * drm/i915/sdvo: Always add a 30ms delay to make SDVO TV detection + reliable + - LP: #690730 + * intel-gtt: fix gtt_total_entries detection + - LP: #690730 + * sched: fix RCU lockdep splat from task_group() + - LP: #690730 + * libata: fix NULL sdev dereference race in atapi_qc_complete() + - LP: #690730 + * PCI: fix size checks for mmap() on /proc/bus/pci files + - LP: #690730 + * PCI: fix offset check for sysfs mmapped files + - LP: #690730 + * xHCI: fix wMaxPacketSize mask + - LP: #690730 + * xhci: Fix reset-device and configure-endpoint commands + - LP: #690730 + * xhci: Setup array of USB 2.0 and USB 3.0 ports. + - LP: #690730 + * xhci: Don't let the USB core disable SuperSpeed ports. + - LP: #690730 + * USB: gadget: AT91: fix typo in atmel_usba_udc driver + - LP: #690730 + * usb: musb: fix kernel oops when loading musb_hdrc module for the 2nd + time + - LP: #690730 + * USB: ftdi_sio: add device IDs for Milkymist One JTAG/serial + - LP: #690730 + * USB: option: fix when the driver is loaded incorrectly for some Huawei + devices. + - LP: #690730 + * usb: misc: sisusbvga: fix information leak to userland + - LP: #690730 + * usb: misc: iowarrior: fix information leak to userland + - LP: #690730 + * usb: core: fix information leak to userland + - LP: #690730 + * USB: EHCI: fix obscure race in ehci_endpoint_disable + - LP: #690730 + * USB: storage: sierra_ms: fix sysfs file attribute + - LP: #690730 + * USB: atm: ueagle-atm: fix up some permissions on the sysfs files + - LP: #690730 + * USB: misc: cypress_cy7c63: fix up some sysfs attribute permissions + - LP: #690730 + * USB: misc: usbled: fix up some sysfs attribute permissions + - LP: #690730 + * USB: misc: trancevibrator: fix up a sysfs attribute permission + - LP: #690730 + * USB: misc: usbsevseg: fix up some sysfs attribute permissions + - LP: #690730 + * USB: ftdi_sio: Add ID for RT Systems USB-29B radio cable + - LP: #690730 + * USB: serial: ftdi_sio: Vardaan USB RS422/485 converter PID added + - LP: #690730 + * USB: fix autosuspend bug in usb-serial + - LP: #690730 + * e1000: fix screaming IRQ + - LP: #690730 + * ACPI battery: support percentage battery remaining capacity + - LP: #690730 + * acpi-cpufreq: fix a memleak when unloading driver + - LP: #690730 + * ACPI: debugfs custom_method open to non-root + - LP: #690730 + * PNPACPI: cope with invalid device IDs + - LP: #690730 + * saa7134: Fix autodetect for Behold A7 and H7 TV cards + - LP: #690730 + * fuse: fix attributes after open(O_TRUNC) + - LP: #690730 + * cs5535-gpio: apply CS5536 errata workaround for GPIOs + - LP: #690730 + * do_exit(): make sure that we run with get_fs() == USER_DS + - LP: #690730 + * cifs: fix another memleak, in cifs_root_iget + - LP: #690730 + * uml: disable winch irq before freeing handler data + - LP: #690730 + * backlight: grab ops_lock before testing bd->ops + - LP: #690730 + * nommu: yield CPU while disposing VM + - LP: #690730 + * x86: Ignore trap bits on single step exceptions + - LP: #690730 + * mmc: fix rmmod race for hosts using card-detection polling + - LP: #690730 + * DECnet: don't leak uninitialized stack byte + - LP: #690730 + * perf_events: Fix perf_counter_mmap() hook in mprotect() + - LP: #690730 + * ARM: 6464/2: fix spinlock recursion in adjust_pte() + - LP: #690730 + * ARM: 6489/1: thumb2: fix incorrect optimisation in usracc + - LP: #690730 + * ARM: 6482/2: Fix find_next_zero_bit and related assembly + - LP: #690730 + * leds: fix bug with reading NAS SS4200 dmi code + - LP: #690730 + * Staging: udlfb: fix up some sysfs attribute permissions + - LP: #690730 + * Staging: iio: adis16220: fix up some sysfs attribute permissions + - LP: #690730 + * Staging: iio: adis16220: fix up my fixup for some sysfs attribute + permissions + - LP: #690730 + * Staging: samsung-laptop: fix up some sysfs attribute permissions + - LP: #690730 + * Staging: samsung-laptop: fix up my fixup for some sysfs attribute + permissions + - LP: #690730 + * Staging: frontier: fix up some sysfs attribute permissions + - LP: #690730 + * staging: rtl8187se: Change panic to warn when RF switch turned off + - LP: #690730 + * Staging: batman-adv: ensure that eth_type_trans gets linear memory + - LP: #690730 + * perf: Fix inherit vs. context rotation bug + - LP: #690730 + * ARM: 6456/1: Fix for building DEBUG with sa11xx_base.c as a module. + - LP: #690730 + * PM / Hibernate: Fix memory corruption related to swap + - LP: #690730 + * wmi: use memcmp instead of strncmp to compare GUIDs + - LP: #690730 + * nohz/s390: fix arch_needs_cpu() return value on offline cpus + - LP: #690730 + * genirq: Fix incorrect proc spurious output + - LP: #690730 + * net: Truncate recvfrom and sendto length to INT_MAX. + - LP: #690730 + * net: Limit socket I/O iovec total length to INT_MAX. + - LP: #690730 + * Input: i8042 - add Sony VAIO VPCZ122GX to nomux list + - LP: #690730 + * omap: dma: Fix buffering disable bit setting for omap24xx + - LP: #690730 + * OMAP3: DMA: Errata i541: sDMA FIFO draining does not finish + - LP: #690730 + * memory corruption in X.25 facilities parsing + - LP: #690730 + * net: optimize Berkeley Packet Filter (BPF) processing + - LP: #690730 + * filter: make sure filters dont read uninitialized memory + - LP: #690730 + * can-bcm: fix minor heap overflow + - LP: #690730 + * x25: Prevent crashing when parsing bad X.25 facilities + - LP: #690730 + * crypto: padlock - Fix AES-CBC handling on odd-block-sized input + - LP: #690730 + * rds: Integer overflow in RDS cmsg handling + - LP: #690730 + * cfg80211: fix extension channel checks to initiate communication + - LP: #690730 + * r8169: fix rx checksum offload + - LP: #690730 + * r8169: (re)init phy on resume + - LP: #690730 + * r8169: fix checksum broken + - LP: #690730 + * nmi: fix clock comparator revalidation + - LP: #690730 + * Rename 'pipe_info()' to 'get_pipe_info()' + - LP: #690730 + * Export 'get_pipe_info()' to other users + - LP: #690730 + * Un-inline get_pipe_info() helper function + - LP: #690730 + * Release 2.6.35.10 + - LP: #690730 + * OMAP3: PRCM: Consider UART4 for 3630 chip in prcm_setup_regs + - LP: #688765 + * OMAP clock: Add uart4_ick/fck definitions for 3630 + - LP: #688765 + * OMAP3: serial: Fix uart4 handling for 3630 + - LP: #688765 + * omap: serial: Fix the boot-up crash/reboot without CONFIG_PM + - LP: #688765 + * OMAP: some definitions extracted from commit 046465b76a + - LP: #688765 + * omap3: Unify omap2_set_globals_3[43,6x]x functions + - LP: #688765 + * ALSA: HDA: Quirk for Dell Vostro 320 to make microphone work + - LP: #497546 + * tcp: Increase TCP_MAXSEG socket option minimum. + - CVE-2010-4165 + * af_unix: limit unix_tot_inflight + - CVE-2010-4249 + + -- Tim Gardner Mon, 06 Dec 2010 10:45:38 -0700 + +linux (2.6.35-24.42) maverick-proposed; urgency=low + + [ Brad Figg ] + + - LP: #683422 + + [ Colin Ian King ] + + * SAUCE: Allow registration of handler to multiple WMI events with same + GUID + - LP: #676997 + * SAUCE: Add WMI hotkeys support for Dell All-In-One series + - LP: #676997 + * [Config] Enable Dell All-In-One WMI Hotkeys driver + - LP: #676997 + + [ David Woodhouse ] + + * [Upstream] Call acpi_video_register() in intel_opregion_init() failure + path + - LP: #615947 + + [ Manoj Iyer ] + + * SAUCE: enable rfkill for rtl8192se driver + - LP: #640992 + * SAUCE: Enable jack sense for Thinkpad Edge 11 + - LP: #677210 + + [ Tim Gardner ] + + * [Config] Use correct be2iscsi module name in d-i/modules/scsi-modules + - LP: #628776 + * [Config] Added NFS and related modules to virtual flavour + - LP: #659084 + * [Config] Add support for cross compiling armel + * Simplify the use of CROSS_COMPILER + + [ Upstream Kernel Changes ] + + * Revert "(pre-stable) ACPI: enable repeated PCIEXP wakeup by clearing + PCIEXP_WAKE_STS on resume" + * Revert "(pre-stable) mm: Move vma_stack_continue into mm.h" + * x86, cpu: After uncapping CPUID, re-run CPU feature detection + - LP: #672664 + * ALSA: sound/pci/rme9652: prevent reading uninitialized stack memory + - LP: #672664 + * ALSA: oxygen: fix analog capture on Claro halo cards + - LP: #672664 + * ALSA: hda - Add Dell Latitude E6400 model quirk + - LP: #643891, #672664 + * ALSA: prevent heap corruption in snd_ctl_new() + - LP: #672664 + * ALSA: rawmidi: fix oops (use after free) when unloading a driver module + - LP: #672664 + * hwmon: (lis3) Fix Oops with NULL platform data + - LP: #672664 + * USB: fix bug in initialization of interface minor numbers + - LP: #672664 + * usb: musb: gadget: fix kernel panic if using out ep with FIFO_TXRX + style + - LP: #672664 + * usb: musb: gadget: restart request on clearing endpoint halt + - LP: #672664 + * HID: hidraw, fix a NULL pointer dereference in hidraw_ioctl + - LP: #672664 + * HID: hidraw, fix a NULL pointer dereference in hidraw_write + - LP: #672664 + * ahci: fix module refcount breakage introduced by libahci split + - LP: #672664 + * lib/list_sort: do not pass bad pointers to cmp callback + - LP: #672664 + * ACPI: invoke DSDT corruption workaround on all Toshiba Satellite + - LP: #672664 + * oprofile: Add Support for Intel CPU Family 6 / Model 29 + - LP: #672664 + * oprofile, ARM: Release resources on failure + - LP: #672664 + * RDMA/cxgb3: Turn off RX coalescing for iWARP connections + - LP: #672664 + * drm/radeon/kms: fix bad cast/shift in evergreen.c + - LP: #672664 + * drm/radeon/kms: avivo cursor workaround applies to evergreen as well + - LP: #672664 + * ARM: 6400/1: at91: fix arch_gettimeoffset fallout + - LP: #672664 + * ARM: 6395/1: VExpress: Set bit 22 in the PL310 (cache controller) + AuxCtlr register + - LP: #672664 + * V4L/DVB: gspca - main: Fix a crash of some webcams on ARM arch + - LP: #672664 + * V4L/DVB: gspca - sn9c20x: Bad transfer size of Bayer images + - LP: #672664 + * mmc: sdhci-s3c: fix NULL ptr access in sdhci_s3c_remove + - LP: #672664 + * x86/amd-iommu: Set iommu configuration flags in enable-loop + - LP: #672664 + * x86/amd-iommu: Fix rounding-bug in __unmap_single + - LP: #672664 + * x86/amd-iommu: Work around S3 BIOS bug + - LP: #672664 + * tracing/x86: Don't use mcount in pvclock.c + - LP: #672664 + * tracing/x86: Don't use mcount in kvmclock.c + - LP: #672664 + * ksm: fix bad user data when swapping + - LP: #672664 + * i7core_edac: fix panic in udimm sysfs attributes registration + - LP: #672664 + * v4l1: fix 32-bit compat microcode loading translation + - LP: #672664 + * V4L/DVB: cx231xx: Avoid an OOPS when card is unknown (card=0) + - LP: #672664 + * V4L/DVB: IR: fix keys beeing stuck down forever + - LP: #672664 + * V4L/DVB: Don't identify PV SBTVD Hybrid as a DibCom device + - LP: #672664 + * Input: joydev - fix JSIOCSAXMAP ioctl + - LP: #672664 + * Input: wacom - fix pressure in Cintiq 21UX2 + - LP: #672664 + * ioat2: fix performance regression + - LP: #672664 + * mac80211: fix use-after-free + - LP: #672664 + * x86, hpet: Fix bogus error check in hpet_assign_irq() + - LP: #672664 + * x86, irq: Plug memory leak in sparse irq + - LP: #672664 + * ubd: fix incorrect sector handling during request restart + - LP: #672664 + * OSS: soundcard: locking bug in sound_ioctl() + - LP: #672664 + * virtio-blk: fix request leak. + - LP: #672664 + * ring-buffer: Fix typo of time extends per page + - LP: #672664 + * dmaengine: fix interrupt clearing for mv_xor + - LP: #672664 + * drivers/gpu/drm/i915/i915_gem.c: Add missing error handling code + - LP: #672664 + * hrtimer: Preserve timer state in remove_hrtimer() + - LP: #672664 + * i2c-pca: Fix waitforcompletion() return value + - LP: #672664 + * reiserfs: fix dependency inversion between inode and reiserfs mutexes + - LP: #672664 + * reiserfs: fix unwanted reiserfs lock recursion + - LP: #672664 + * mfd: Ignore non-GPIO IRQs when setting wm831x IRQ types + - LP: #672664 + * wext: fix potential private ioctl memory content leak + - LP: #672664 + * atl1: fix resume + - LP: #672664 + * x86, numa: For each node, register the memory blocks actually used + - LP: #672664 + * x86, AMD, MCE thresholding: Fix the MCi_MISCj iteration order + - LP: #672664 + * firewire: ohci: fix TI TSB82AA2 regression since 2.6.35 + - LP: #672664 + * De-pessimize rds_page_copy_user + - LP: #672664 + * drm/i915: Prevent module unload to avoid random memory corruption + - LP: #672664 + * drm/i915: fix GMCH power reporting + - LP: #672664 + * drm: Prune GEM vma entries + - LP: #672664 + * drm: Hold the mutex when dropping the last GEM reference (v2) + - LP: #672664 + * drm/radeon: fix PCI ID 5657 to be an RV410 + - LP: #672664 + * drm/radeon/kms: fix possible sigbus in evergreen accel code + - LP: #672664 + * drm/radeon/kms: fix up encoder info messages for DFP6 + - LP: #672664 + * drm/radeon/kms: fix potential segfault in r600_ioctl_wait_idle + - LP: #672664 + * drm/radeon/kms: add quirk for MSI K9A2GM motherboard + - LP: #672664 + * mmc: sdio: fix SDIO suspend/resume regression + - LP: #672664 + * V4L/DVB: dib7770: enable the current mirror + - LP: #672664 + * xfs: properly account for reclaimed inodes + - LP: #672664 + * skge: add quirk to limit DMA + - LP: #672664 + * r8169: allocate with GFP_KERNEL flag when able to sleep + - LP: #672664 + * KVM: i8259: fix migration + - LP: #672664 + * KVM: x86: Fix SVM VMCB reset + - LP: #672664 + * KVM: x86: Move TSC reset out of vmcb_init + - LP: #672664 + * KVM: fix irqfd assign/deassign race + - LP: #672664 + * KVM: Fix reboot on Intel hosts + - LP: #672664 + * bsg: fix incorrect device_status value + - LP: #672664 + * Fix VPD inquiry page wrapper + - LP: #672664 + * virtio: console: Don't block entire guest if host doesn't read data + - LP: #672664 + * ACPI: Handle ACPI0007 Device in acpi_early_set_pdc + - LP: #672664 + * powerpc: Initialise paca->kstack before early_setup_secondary + - LP: #672664 + * powerpc: Don't use kernel stack with translation off + - LP: #672664 + * b44: fix carrier detection on bind + - LP: #672664 + * ACPI: enable repeated PCIEXP wakeup by clearing PCIEXP_WAKE_STS on + resume + - LP: #613381, #672664 + * ACPI: EC: add Vista incompatibility DMI entry for Toshiba Satellite + L355 + - LP: #672664 + * ACPI: delete ZEPTO idle=nomwait DMI quirk + - LP: #672664 + * ACPI: Disable Windows Vista compatibility for Toshiba P305D + - LP: #672664 + * PM / ACPI: Blacklist systems known to require acpi_sleep=nonvs + - LP: #672664 + * x86: detect scattered cpuid features earlier + - LP: #672664 + * agp/intel: Fix cache control for Sandybridge + - LP: #672664 + * x86-32: Separate 1:1 pagetables from swapper_pg_dir + - LP: #672664 + * x86-32: Fix dummy trampoline-related inline stubs + - LP: #672664 + * x86, mm: Fix CONFIG_VMSPLIT_1G and 2G_OPT trampoline + - LP: #672664 + * setup_arg_pages: diagnose excessive argument size + - LP: #672664 + * execve: improve interactivity with large arguments + - LP: #672664 + * execve: make responsive to SIGKILL with large arguments + - LP: #672664 + * mm: Move vma_stack_continue into mm.h + - LP: #672664 + * Linux 2.6.35.8 + - LP: #672664 + * SRU:[Config] Disable inte_idle for -virtual kernels + - LP: #651370 + * smsc95xx: generate random MAC address once, not every ifup + - LP: #673504, #673509 + * ALSA: HDA: Enable SKU quirks for Realtek + - LP: #617647 + * ALSA: HDA: Apply SKU override for Acer aspire 7736z + - LP: #617647 + * net: clear heap allocation for ETHTOOL_GRXCLSRLALL + - CVE-2010-3861 + * ipc: shm: fix information leak to userland + - CVE-2010-4072 + * drm/i915: Avoid pageflipping freeze when we miss the flip prepare + interrupt + - LP: #680204 + * ALSA: HDA: Add an extra DAC for Realtek ALC887-VD + - LP: #682596 + * ALSA: hda - Fixed ALC887-VD initial error + - LP: #682596 + -- Brad Figg Tue, 30 Nov 2010 12:29:50 -0800 + +linux (2.6.35-23.41) maverick-security; urgency=low + + [ Leann Ogasawara ] + + * SAUCE: AF_ECONET prevent kernel stack overflow + - CVE-2010-3848 + * SAUCE: AF_ECONET SIOCSIFADDR ioctl does not check privileges + - CVE-2010-3850 + * SAUCE: AF_ECONET saddr->cookie prevent NULL pointer dereference + - CVE-2010-3849 + + -- Leann Ogasawara Fri, 19 Nov 2010 15:23:52 -0800 + +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/deviations.txt +++ linux-2.6.35/debian.master/deviations.txt @@ -0,0 +1,16 @@ +INTEL_IPS DRIVER +L: kernel-team@lists.ubuntu.com +T: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.36.y.git +F: drivers/platform/x86/intel_ips.c + + Support some power management feature present in latest Intel hardware. + Risk was low due to it being an independent driver. + +HID INPUT DRIVERS +L: kernel-team@lists.ubuntu.com +T: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.36.y.git +F: drivers/hid/* + + Ongoing effort to be bleeding edge of multi-touch. Only exception is + "UBUNTU: SAUCE: hid: 3m: Simplify touchsreen emulation logic" + which is not a long term solution nor appropriate for upstream. --- 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-28 +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-28/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-28 +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-28 + This package provides the architecture dependant parts for kernel + version locked tools for version 2.6.35-28 on + DESC. + + +Package: linux-image-2.6.35-28-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-28-generic +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-generic-pae +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-omap +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-powerpc +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-server +Architecture: amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-versatile +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-virtual +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28 +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-28/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-28 +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-28 + This package provides the architecture dependant parts for kernel + version locked tools for version 2.6.35-28 on + DESC. + + +Package: linux-image-2.6.35-28-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-28-generic +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-generic-pae +Architecture: i386 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-omap +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-powerpc +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-server +Architecture: amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-versatile +Architecture: armel +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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-28-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-28-virtual +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), linux-headers-2.6.35-28, ${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-28/debian.README.gz for details. + +Package: linux-image-2.6.35-28-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,5050 @@ +# +# 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=y +# 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_DELL_WMI_AIO=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_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_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,133 @@ +# +# 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_INTEL_IDLE=y +# 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,294 @@ +# +# 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_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,21 @@ +# +# 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_INTEL_IDLE=y +# CONFIG_MEMORY_HOTPLUG is not set +CONFIG_NR_CPUS=64 +# 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_MAX_DOMAIN_MEMORY=32 +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,21 @@ +# +# 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_INTEL_IDLE is not set +CONFIG_MEMORY_HOTPLUG=y +CONFIG_NR_CPUS=64 +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_MAX_DOMAIN_MEMORY=70 +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,21 @@ +# +# 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_INTEL_IDLE=y +CONFIG_MEMORY_HOTPLUG=y +CONFIG_NR_CPUS=256 +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_MAX_DOMAIN_MEMORY=32 +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,16 @@ +# +# 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_INTEL_IDLE=y +# 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,18 @@ +# +# Config options for config.flavour.virtual automatically generated by splitconfig.pl +# +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +# CONFIG_HIGHMEM4G is not set +CONFIG_HIGHMEM64G=y +# CONFIG_INTEL_IDLE is not set +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,299 @@ +# +# 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_XEN_MAX_DOMAIN_MEMORY=32 +# 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,18 @@ +# +# Config options for config.flavour.generic-pae automatically generated by splitconfig.pl +# +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +# CONFIG_HIGHMEM4G is not set +CONFIG_HIGHMEM64G=y +CONFIG_INTEL_IDLE=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-28 generic 2.6.35-28-generic - +amd64 2.6.35-28 virtual 2.6.35-28-virtual - + +i386 2.6.35-28 generic 2.6.35-28-generic - +i386 2.6.35-28 generic-pae 2.6.35-28-generic-pae - +i386 2.6.35-28 virtual 2.6.35-28-virtual - + +armel 2.6.35-28 versatile 2.6.35-28-versatile - +armel 2.6.35-28 omap 2.6.35-28-omap - + +# Ports +# arch version flavour installedname suffix bdep +powerpc 2.6.35-28 powerpc 2.6.35-28-powerpc - +powerpc 2.6.35-28 powerpc64-smp 2.6.35-28-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 ? +be2iscsi ? --- 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-28.49/abiname +++ linux-2.6.35/debian.master/abi/2.6.35-28.49/abiname @@ -0,0 +1 @@ +28 --- linux-2.6.35.orig/debian.master/abi/2.6.35-28.49/armel/versatile.modules +++ linux-2.6.35/debian.master/abi/2.6.35-28.49/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-28.49/armel/omap.modules +++ linux-2.6.35/debian.master/abi/2.6.35-28.49/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-28.49/armel/omap +++ linux-2.6.35/debian.master/abi/2.6.35-28.49/armel/omap @@ -0,0 +1,8281 @@ +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 0x50e2a688 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x660e4d1a register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xd0ed0462 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 0x0d8d0ecf mISDN_unregister_device +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 0x3cc62f53 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ef163b9 mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x401e0791 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x45b7e209 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4ad76fe7 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4e7351c6 recv_Dchannel +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 0x720cbfa0 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8ddc195e get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9aabe3af mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9dc3ea88 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9e8ae622 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa0a1de3d recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xadeec0f4 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb14e94ff create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc1651fed recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3a13e07 confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3bbb456 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xce8718c9 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd04635f6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd54d48cc recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe6ad591a mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf3580eed queue_ch_frame +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 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 0x2d261835 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x50bc9601 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x54c6ac46 dib7000p_i2c_enumeration +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 0x8d1bfecc dib7000p_get_i2c_master +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 0x5aabf1cd register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0x62bbb586 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0xc9017894 pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_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 0x051a124e fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x113de3aa fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x3ee98920 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x77692cf5 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7aebc87d fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa47ec791 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xaec768a9 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0325d79f fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0740db6a fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0a2c91cf fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0d35403e fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x10236d76 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x13aa495b fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1401fccd fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1c9dd78e fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x35b9b6fb fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x40e7a808 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4bcb09ed fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4cd468c4 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x556f7ebc libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6536131d fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6e6171f6 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x79beb91f fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7f3751eb fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8868ba6e fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8899bcf6 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8b2fdbd8 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x923ff574 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9317b319 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9510e397 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x98fe8d22 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa37b06ea fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa39809c6 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa8053757 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa997ae4f fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xabd91f56 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xac0bafd0 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaf2a55a8 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc2c4eef8 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc37d8acc fc_fcp_init +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 0xd5e6ea80 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe38f695a fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe5d3aab8 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe6ba9f1d fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xeab4dec3 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xef03bfe4 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfcde781d fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/raid_class 0x8447b898 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xaf5594ae raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xc6a898ce raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x148b98e0 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x279fb87e fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4dcc1810 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x700f804b fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8041e872 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8f44a577 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8f723c46 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa2eb3b35 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa4a1501b scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb0ba2b16 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb4de0fae fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc49be23e fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf29aba4b fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0a011a6b sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x111bb7ff sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x22d5409a scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2de62493 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2e1e06bf sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x301e3b7f sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x389b80bf sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4c7c4588 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4f67bd7b sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x58ecae94 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x639b50f1 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x63b9c59d sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x70042587 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x79d1ec0b sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x843d4e54 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x98f19f63 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9a2eb55f sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbb28814b sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcd74f3bc sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd0aa7e36 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdda4c2ff sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xeae7f716 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xeef4b94e sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf475b1b9 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf61d70bd sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf835adb7 sas_expander_alloc +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 0x18a35ef3 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x289a4e80 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2a25670f usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x32a9085c usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x36d734ca usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5068f140 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x566c3275 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5aaa74ab usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x65f069c1 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x767979b0 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa01131a1 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb9c96967 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd32ad3e8 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xfcd48e47 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x3c7d2c04 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x4bcccb0e usb_serial_suspend +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 0x7f29a276 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xb0f22e38 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0xd5cd1190 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xe3fa29f4 w1_add_master_device +EXPORT_SYMBOL fs/configfs/configfs 0x23a35a4b config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x24613917 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x2ae068b4 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x40871aa3 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x4d82bbb7 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x6c7df199 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x71243528 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x79efa505 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x85546a30 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xc8eb8bf1 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xd9644f7b configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xe55214fe config_group_init +EXPORT_SYMBOL fs/fscache/fscache 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 0x58c54bbc atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x791e5229 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0xa0547787 aarp_send_ddp +EXPORT_SYMBOL net/atm/atm 0x1966b7bc atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x2cf5df7c vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x45a4ec5a atm_charge +EXPORT_SYMBOL net/atm/atm 0x47357c34 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x5f6f1072 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x7e289e73 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x845d03ce atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x86ac35e4 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xb97ca410 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xc180c7ec register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xf5eab1ab vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xf83311bb atm_proc_root +EXPORT_SYMBOL net/ax25/ax25 0x00e0f3fd ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x02c61a8f ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x0ec7c36d ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x14c45f30 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x1fdae875 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x5b6a48de ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x8e443d97 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xb1ff37a7 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xbf36ad65 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0aec3128 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0ee381ea hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1410ae96 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3528004b bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x36d64022 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x47a7ebb6 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4c4ac9ee bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4d1758b9 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4fb5fa85 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x50827a95 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x52cdac17 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x54f76f7e bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x59c20575 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5c507437 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x67c419e9 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6821ad97 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6f8d40b3 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7439b1ee bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x74e4028d hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x766259f1 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7c90d4c4 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x819937cd hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x85802ab7 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x85fe9c25 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x874a67d5 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x883d5162 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbb5b435c hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xce5986eb hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcf0e5782 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd9fb4329 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdfb5112f bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf3741dd3 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x89e9f758 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xb1881c8b ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xb5bc4626 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xcc2719df ebt_unregister_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 0x1b402074 can_send +EXPORT_SYMBOL net/can/can 0x4dcb08fe can_proto_register +EXPORT_SYMBOL net/can/can 0x525bde3f can_proto_unregister +EXPORT_SYMBOL net/can/can 0xa11899c9 can_rx_register +EXPORT_SYMBOL net/can/can 0xacf8b50a can_rx_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x0a69b795 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x12146690 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x20630621 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4b468c06 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4dec67b6 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4ed47746 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x59c98c84 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x6fe83fe3 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x9cf986a9 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb4f054e2 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb8d69fd1 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc2397389 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xdabb4339 wpan_phy_alloc +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x828667c0 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xbd682135 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xeeff7e0b arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x0ebeafec ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x6e166da0 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x7d4243f6 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x3507b0fc nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x6d2fba68 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x82d63820 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xe670128c nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xefa54fec __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf36dc4a3 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf91257dd nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/tunnel4 0x1af6ad43 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0x51ac7c2a xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x012e499f ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x14081a35 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x83db316f ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb81e90f4 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0x4916dd29 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x6880c49b xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x4ae05b73 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x94e4b259 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xcaa18698 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 0x5c5bd95a l2tp_tunnel_destruct +EXPORT_SYMBOL net/l2tp/l2tp_core 0x7bca6eb3 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x016bb3b3 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x3902b597 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x60205460 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x74212924 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0xb6c0e86d lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0xb88a7d1e lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0xee0a36ca lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xef209ff1 lapb_data_request +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 0x3dad35d5 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x572a495b unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x580cd9e0 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x63a50da3 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9348e59a register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa48debf1 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb970b68c ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc0fcc380 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xdde69975 ip_vs_skb_replace +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf85eb014 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf99c994a ip_vs_tcp_conn_listen +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 0x06a103be xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x2379ba13 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x359b6868 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x3b394852 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x56545391 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x8b34844d xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x8fea63b7 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xbbbb5193 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0xbcc59612 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xf9b1def9 xt_unregister_targets +EXPORT_SYMBOL net/phonet/phonet 0x0021d30f phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x3106510a pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x5ab23794 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x5be5f9fd phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x8b9a7121 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xb42d3e23 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xbbf688cf phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0xe8f7ec74 pn_sock_hash +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 0x2b7027b1 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x34c60ffd rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4b0bca27 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6a7619a9 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7ef2c63b rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x89cff365 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xad1ae451 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb125cd8f rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb3760a19 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc99403d1 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xce1ab5b4 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xde6adcaf rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe0cb5d5c rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe5e41b61 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe99b4e6c rxrpc_kernel_accept_call +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4820bcfb 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 0x1ed1ffbf wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0xa5a647cf 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 0x0b462b97 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x1703e1bd cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +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 0x39d7730a __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x445680d6 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x47582efe cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x4d9605c2 ieee80211_get_hdrlen_from_skb +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 0x6ba8b8ab ieee80211_amsdu_to_8023s +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 0x8c35d732 ieee80211_hdrlen +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 0xd8ede5cf ieee80211_data_from_8023 +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 0xf721efde ieee80211_data_to_8023 +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 0x00023dc9 sock_wfree +EXPORT_SYMBOL vmlinux 0x0008db29 destroy_EII_client +EXPORT_SYMBOL vmlinux 0x002f1bea udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0081030e omap_vram_reserve +EXPORT_SYMBOL vmlinux 0x00c1bd3f dquot_disable +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00eef49e __strnlen_user +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01062e95 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x011c2146 mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x01424f59 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x01553993 tty_devnum +EXPORT_SYMBOL vmlinux 0x016342e5 jbd2_journal_release_jbd_inode +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 0x01f57200 mpage_readpages +EXPORT_SYMBOL vmlinux 0x020754d3 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x02196324 __aeabi_idiv +EXPORT_SYMBOL vmlinux 0x022ea498 qdisc_watchdog_init +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 0x025b82fc vfs_readdir +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x02729e5e names_cachep +EXPORT_SYMBOL vmlinux 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL vmlinux 0x02938497 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x02971564 dm_exception_store_type_unregister +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02aa8d9a napi_gro_frags +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x0302c48b idr_destroy +EXPORT_SYMBOL vmlinux 0x03073b97 omap_writel +EXPORT_SYMBOL vmlinux 0x031ba9bf atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x03248035 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x033dd1ab setup_new_exec +EXPORT_SYMBOL vmlinux 0x035565d9 omapdss_default_get_recommended_bpp +EXPORT_SYMBOL vmlinux 0x035f1cde vfs_readv +EXPORT_SYMBOL vmlinux 0x036548f0 register_qdisc +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 0x038f3315 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x038fd517 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x03b210ab dma_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03dcbf68 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x03f1dc05 eth_header +EXPORT_SYMBOL vmlinux 0x03f76ccc mmc_host_enable +EXPORT_SYMBOL vmlinux 0x03fa7be6 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x03fee47b sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x0400429e set_irq_chip +EXPORT_SYMBOL vmlinux 0x0402dcc9 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x0461bf0a proto_unregister +EXPORT_SYMBOL vmlinux 0x0473b677 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x0475bfc9 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x04763f37 sget +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04a5b713 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x04cda566 snd_interval_refine +EXPORT_SYMBOL vmlinux 0x04d37c01 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x04e9a85a put_tty_driver +EXPORT_SYMBOL vmlinux 0x04ffe49d key_negate_and_link +EXPORT_SYMBOL vmlinux 0x0520aae8 inode_setattr +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x05267b0b input_flush_device +EXPORT_SYMBOL vmlinux 0x052ad4cb jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x05baaba0 wait_for_completion +EXPORT_SYMBOL vmlinux 0x05c093f2 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x05e312ae snd_jack_set_key +EXPORT_SYMBOL vmlinux 0x05e75378 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x05e84f98 dev_get_stats +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x062371e3 fsync_bdev +EXPORT_SYMBOL vmlinux 0x0626ca78 ppp_input +EXPORT_SYMBOL vmlinux 0x06335495 napi_frags_skb +EXPORT_SYMBOL vmlinux 0x063ae9fd tty_throttle +EXPORT_SYMBOL vmlinux 0x064e5a30 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x0670be47 __nla_reserve +EXPORT_SYMBOL vmlinux 0x0675be35 blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0x0679f427 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06a820df d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x06c27273 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x06c5b08d phy_find_first +EXPORT_SYMBOL vmlinux 0x06c937f9 security_path_chown +EXPORT_SYMBOL vmlinux 0x06d3388a kobject_put +EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x06eb72dc writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x06f65bf1 devm_ioremap +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x07304aa7 sg_miter_next +EXPORT_SYMBOL vmlinux 0x076bab17 replace_mount_options +EXPORT_SYMBOL vmlinux 0x077496b1 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x078eb42a tcp_disconnect +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 0x07c40651 input_mt_create_slots +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07f0fe95 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x08051546 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x08504c7f devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x085ac240 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x088b2631 complete_request_key +EXPORT_SYMBOL vmlinux 0x08a33080 clk_round_rate +EXPORT_SYMBOL vmlinux 0x08a4c534 omap_mcbsp_get_rx_delay +EXPORT_SYMBOL vmlinux 0x08ab5329 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x08b912ee skb_queue_purge +EXPORT_SYMBOL vmlinux 0x08ceceec deny_write_access +EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x08ded414 ida_get_new_above +EXPORT_SYMBOL vmlinux 0x08f79243 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x091045b0 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x0932fad2 tty_wait_until_sent +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 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x0986be29 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x099f8c04 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x09aa326a mpage_readpage +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09cfe7f8 bdget +EXPORT_SYMBOL vmlinux 0x09da7bdb dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x09e4b9f0 snd_register_device_for_dev +EXPORT_SYMBOL vmlinux 0x09ef257b remove_proc_entry +EXPORT_SYMBOL vmlinux 0x09f57d02 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x0a1bebc5 kernel_execve +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a4745a8 kthread_bind +EXPORT_SYMBOL vmlinux 0x0a7972eb max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x0a891a56 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x0aa13d05 __raw_readsw +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ad30226 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x0ae7ccdb iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x0aee8cfe follow_up +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b0ea411 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x0b148748 amba_find_device +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b28ddc5 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x0b30e39a ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x0b351ada mempool_resize +EXPORT_SYMBOL vmlinux 0x0b36de0f truncate_pagecache +EXPORT_SYMBOL vmlinux 0x0b3c113a dquot_quota_off +EXPORT_SYMBOL vmlinux 0x0b3e8988 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x0b4db107 elv_add_request +EXPORT_SYMBOL vmlinux 0x0b5f12b7 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x0b5fe3fd bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x0b6e043e simple_write_end +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b7c6d7b skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x0b88562b kill_block_super +EXPORT_SYMBOL vmlinux 0x0bc3ffb5 flush_dcache_page +EXPORT_SYMBOL vmlinux 0x0bcf3d66 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x0bcfcd0e stop_tty +EXPORT_SYMBOL vmlinux 0x0bfcb1d4 kill_anon_super +EXPORT_SYMBOL vmlinux 0x0c008e51 posix_test_lock +EXPORT_SYMBOL vmlinux 0x0c195e20 down_timeout +EXPORT_SYMBOL vmlinux 0x0c22c747 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x0c35f2c6 sleep_on_timeout +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 0x0cab3b2f kobject_add +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cdd158d sg_alloc_table +EXPORT_SYMBOL vmlinux 0x0cec8d5e scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x0d152494 bio_map_kern +EXPORT_SYMBOL vmlinux 0x0d3341fe tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x0d3e6f15 md_write_end +EXPORT_SYMBOL vmlinux 0x0d3f57a2 _find_next_bit_le +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d6293c5 dst_destroy +EXPORT_SYMBOL vmlinux 0x0d868947 snd_pcm_notify +EXPORT_SYMBOL vmlinux 0x0d9eb7d7 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0db3877d ___dma_single_dev_to_cpu +EXPORT_SYMBOL vmlinux 0x0dbfcbb9 snd_timer_resolution +EXPORT_SYMBOL vmlinux 0x0df42281 sock_no_bind +EXPORT_SYMBOL vmlinux 0x0df7d435 journal_start_commit +EXPORT_SYMBOL vmlinux 0x0e029b03 snd_dma_free_pages +EXPORT_SYMBOL vmlinux 0x0e3202be km_state_notify +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e79a393 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x0e81dff9 dma_free_coherent +EXPORT_SYMBOL vmlinux 0x0eae495f seq_release_private +EXPORT_SYMBOL vmlinux 0x0ec98808 ida_init +EXPORT_SYMBOL vmlinux 0x0ee20962 __scm_destroy +EXPORT_SYMBOL vmlinux 0x0eeb5c58 d_delete +EXPORT_SYMBOL vmlinux 0x0f1bab7e user_revoke +EXPORT_SYMBOL vmlinux 0x0f2fa9c6 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x0f7a6ce5 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x0f7f2831 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x0f942940 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x0fa2a45e __memzero +EXPORT_SYMBOL vmlinux 0x0fa51519 unlock_page +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb0c73c dma_map_sg +EXPORT_SYMBOL vmlinux 0x0fb2f176 tty_port_init +EXPORT_SYMBOL vmlinux 0x0ff178f6 __aeabi_idivmod +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ffa8302 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x100de781 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x100f2a79 poll_initwait +EXPORT_SYMBOL vmlinux 0x10358755 genphy_read_status +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x107d44be tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x108d345b ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x108e6271 journal_errno +EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint +EXPORT_SYMBOL vmlinux 0x10b26d86 omap_dss_register_driver +EXPORT_SYMBOL vmlinux 0x10d14edc alloc_disk +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10e02bf1 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f9edd6 dev_add_pack +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x112748bd omap_vrfb_adjust_size +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x118e0cd5 drop_super +EXPORT_SYMBOL vmlinux 0x119b50e7 elf_check_arch +EXPORT_SYMBOL vmlinux 0x11eeb958 nf_afinfo +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x1227bef9 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x122a0ac0 snd_ctl_add +EXPORT_SYMBOL vmlinux 0x1237ee36 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x12616ecd kernel_sendpage +EXPORT_SYMBOL vmlinux 0x12773095 __alloc_skb +EXPORT_SYMBOL vmlinux 0x12a9e726 mnt_pin +EXPORT_SYMBOL vmlinux 0x12b4cb51 eth_header_parse +EXPORT_SYMBOL vmlinux 0x12d7bedc xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12e54ad6 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x1358e864 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x138be1b3 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x13a9fe64 sk_filter +EXPORT_SYMBOL vmlinux 0x13bc373d scsi_register_interface +EXPORT_SYMBOL vmlinux 0x13ccdebf __serio_register_port +EXPORT_SYMBOL vmlinux 0x140c5ce1 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x141e6861 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x14221b9f __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x142bd2bf snd_pcm_stop +EXPORT_SYMBOL vmlinux 0x1477a62e __register_binfmt +EXPORT_SYMBOL vmlinux 0x147b07b1 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x14842984 journal_restart +EXPORT_SYMBOL vmlinux 0x148be403 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x148ca949 thaw_bdev +EXPORT_SYMBOL vmlinux 0x14a585cb blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x14a59803 netif_napi_del +EXPORT_SYMBOL vmlinux 0x14ab2be1 find_get_page +EXPORT_SYMBOL vmlinux 0x14d4212d input_allocate_device +EXPORT_SYMBOL vmlinux 0x14fa9d35 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x150526e3 cdev_index +EXPORT_SYMBOL vmlinux 0x15101b22 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x151cdf31 journal_destroy +EXPORT_SYMBOL vmlinux 0x15285486 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x15331242 omap_iounmap +EXPORT_SYMBOL vmlinux 0x153b174d skb_copy_expand +EXPORT_SYMBOL vmlinux 0x15467c54 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x15471927 set_disk_ro +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x155823d5 unregister_console +EXPORT_SYMBOL vmlinux 0x157bd8ab tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x159f729f block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x15a472d1 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x15e98291 nand_correct_data +EXPORT_SYMBOL vmlinux 0x15f20c73 ioremap_page +EXPORT_SYMBOL vmlinux 0x160b782c clk_disable +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x1641e65e skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x164e32b2 __devm_release_region +EXPORT_SYMBOL vmlinux 0x166a88c6 generic_writepages +EXPORT_SYMBOL vmlinux 0x166e74a2 cpu_v7_set_pte_ext +EXPORT_SYMBOL vmlinux 0x16b3afdb snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL vmlinux 0x16d57eec vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x16eb667a dcache_dir_close +EXPORT_SYMBOL vmlinux 0x16ebdd42 udp_ioctl +EXPORT_SYMBOL vmlinux 0x16f62809 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x170aee64 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x170ec140 seq_printf +EXPORT_SYMBOL vmlinux 0x171d3dbb iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x175236f4 omap_mcbsp_start +EXPORT_SYMBOL vmlinux 0x17605afd unregister_binfmt +EXPORT_SYMBOL vmlinux 0x1770bd60 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x177f3430 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x17a142df __copy_from_user +EXPORT_SYMBOL vmlinux 0x17a8aae8 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x17b4ed6f __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x18154eb1 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x181bde84 otg_put_transceiver +EXPORT_SYMBOL vmlinux 0x182fcdf2 dev_addr_add +EXPORT_SYMBOL vmlinux 0x18305bd1 bio_init +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 0x184c800c generic_file_llseek +EXPORT_SYMBOL vmlinux 0x18d176a1 audit_log_format +EXPORT_SYMBOL vmlinux 0x18d5e1e7 snd_jack_report +EXPORT_SYMBOL vmlinux 0x190721e9 register_quota_format +EXPORT_SYMBOL vmlinux 0x1931b974 dquot_transfer +EXPORT_SYMBOL vmlinux 0x19552609 dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x195ee279 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x196aff3e dev_base_lock +EXPORT_SYMBOL vmlinux 0x196d7d8e dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x197dc3b3 omap_set_dma_src_burst_mode +EXPORT_SYMBOL vmlinux 0x198788b4 snd_lookup_oss_minor_data +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19b156c8 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x19f697fb qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x19fbc53d nla_put +EXPORT_SYMBOL vmlinux 0x1a12c6dc dma_unmap_sg +EXPORT_SYMBOL vmlinux 0x1a1b1a1b xfrm_init_state +EXPORT_SYMBOL vmlinux 0x1a48db04 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x1a4c5e00 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x1a65f4ad __arm_ioremap_pfn +EXPORT_SYMBOL vmlinux 0x1a882364 down_killable +EXPORT_SYMBOL vmlinux 0x1a8f5395 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in +EXPORT_SYMBOL vmlinux 0x1abd4f20 vfs_fsync +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad1f2e7 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b12b4d6 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x1b370967 register_md_personality +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b72e12b arp_create +EXPORT_SYMBOL vmlinux 0x1b8cb95f setup_arg_pages +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1ba8a46c bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x1babe60e omap_st_set_chgain +EXPORT_SYMBOL vmlinux 0x1beae502 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x1c06f70b invalidate_partition +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c258a9a find_inode_number +EXPORT_SYMBOL vmlinux 0x1c25fd8b sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x1c2eb403 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x1c645148 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x1c9963e0 nobh_writepage +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cd0f6c0 mempool_alloc +EXPORT_SYMBOL vmlinux 0x1cd9639a fd_install +EXPORT_SYMBOL vmlinux 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL vmlinux 0x1d0703ed sock_create_kern +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 0x1d31eb6a tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x1d3642b6 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x1d38e2b9 ppp_register_channel +EXPORT_SYMBOL vmlinux 0x1d4e9f4e tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x1d6d63d3 netlink_dump_start +EXPORT_SYMBOL vmlinux 0x1d90ec21 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x1d97a91d nf_getsockopt +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dc65dfe fb_pan_display +EXPORT_SYMBOL vmlinux 0x1dcc8905 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1dee99bb inetdev_by_index +EXPORT_SYMBOL vmlinux 0x1e15a33d phy_start +EXPORT_SYMBOL vmlinux 0x1e477fbb tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x1e57b446 put_disk +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +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 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f15f22e dquot_operations +EXPORT_SYMBOL vmlinux 0x1f32a498 dm_dirty_log_type_register +EXPORT_SYMBOL vmlinux 0x1f56ca42 skb_copy +EXPORT_SYMBOL vmlinux 0x1f73f73d do_munmap +EXPORT_SYMBOL vmlinux 0x1f7a9b65 mmc_card_sleep +EXPORT_SYMBOL vmlinux 0x1f95b913 md_integrity_register +EXPORT_SYMBOL vmlinux 0x1fb3f56f softnet_data +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1ff69dd8 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x1ffe0903 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x20021998 set_security_override +EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x2058e8f9 elv_rb_find +EXPORT_SYMBOL vmlinux 0x205ec8de omap_dispc_register_isr +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x20763e60 search_binary_handler +EXPORT_SYMBOL vmlinux 0x20788ba9 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x208a81ec __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x20d3fa8a phy_device_free +EXPORT_SYMBOL vmlinux 0x20e44a0d single_open +EXPORT_SYMBOL vmlinux 0x20ee3718 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x20fd7cd4 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x210828d4 ip_route_output_key +EXPORT_SYMBOL vmlinux 0x211331fa __divsi3 +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x216759a7 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x218712b3 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x218941b2 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x21c98286 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x21caad9d ndisc_build_skb +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 0x22131cfb down_write_trylock +EXPORT_SYMBOL vmlinux 0x221dfde0 idr_pre_get +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x223084b8 sock_release +EXPORT_SYMBOL vmlinux 0x223472df elv_rb_add +EXPORT_SYMBOL vmlinux 0x223cc898 omap_vrfb_max_height +EXPORT_SYMBOL vmlinux 0x22552a41 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x228b54c6 kmem_cache_name +EXPORT_SYMBOL vmlinux 0x228ca676 mem_map +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22d3e6d7 netlink_set_err +EXPORT_SYMBOL vmlinux 0x22ed6ada sg_miter_start +EXPORT_SYMBOL vmlinux 0x22f2d15d generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x22f94f89 generic_read_dir +EXPORT_SYMBOL vmlinux 0x2314b849 snd_ctl_make_virtual_master +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 0x23a0641b phy_sanitize_settings +EXPORT_SYMBOL vmlinux 0x23b287f8 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x23bbf4af con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23dae71b locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x23fcc958 prepare_binprm +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x23fd9de9 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x2405a73f jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x2429fe63 simple_empty +EXPORT_SYMBOL vmlinux 0x243704dc tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x243abc61 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x2466ad62 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x248e428a security_task_getsecid +EXPORT_SYMBOL vmlinux 0x24a4ef20 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL vmlinux 0x24ae3b04 console_stop +EXPORT_SYMBOL vmlinux 0x24bede38 snd_pcm_lib_readv +EXPORT_SYMBOL vmlinux 0x24d6eda2 dm_get_device +EXPORT_SYMBOL vmlinux 0x24fc6a60 generic_file_splice_read +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 0x253223fe jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x25561e1e tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x257301a6 block_write_begin +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x2582234b bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +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 0x261091f1 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x2613ea29 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x261c1766 __backtrace +EXPORT_SYMBOL vmlinux 0x2620d765 path_put +EXPORT_SYMBOL vmlinux 0x2624d805 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x2631910e deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x263d5a6a omap_mcbsp_spi_master_xmit_word_poll +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x2652d6fe aio_complete +EXPORT_SYMBOL vmlinux 0x2659ccbb inode_needs_sync +EXPORT_SYMBOL vmlinux 0x267805d1 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x2679a50f tty_hangup +EXPORT_SYMBOL vmlinux 0x26911e4d gen_new_estimator +EXPORT_SYMBOL vmlinux 0x2694e424 skb_pad +EXPORT_SYMBOL vmlinux 0x26a830b3 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x26c8e6dc snd_pcm_limit_hw_rates +EXPORT_SYMBOL vmlinux 0x26dcb45d scsi_ioctl +EXPORT_SYMBOL vmlinux 0x26dd9721 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x2700b38a mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x2708e51e init_net +EXPORT_SYMBOL vmlinux 0x270ef445 vfs_create +EXPORT_SYMBOL vmlinux 0x2742719a kobject_del +EXPORT_SYMBOL vmlinux 0x2779d5f1 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x277af174 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0x277e81f5 consume_skb +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x27a902bb put_mnt_ns +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic +EXPORT_SYMBOL vmlinux 0x27d8030f tcp_poll +EXPORT_SYMBOL vmlinux 0x2800c84a block_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x28118cb6 __get_user_1 +EXPORT_SYMBOL vmlinux 0x2827805f blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x282b443e journal_force_commit +EXPORT_SYMBOL vmlinux 0x2830fee2 idr_get_next +EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll +EXPORT_SYMBOL vmlinux 0x28710818 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x2873d5c5 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x2897fc48 omap_cfg_reg +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28b173af genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x28deb636 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x28e6bc84 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x2920490a tcp_read_sock +EXPORT_SYMBOL vmlinux 0x292df482 neigh_event_ns +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 0x297a20e4 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x298113dd con_is_bound +EXPORT_SYMBOL vmlinux 0x2991d617 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29e78d57 add_mtd_partitions +EXPORT_SYMBOL vmlinux 0x29f0e2cf sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x2a47fdcb register_sysctl_table +EXPORT_SYMBOL vmlinux 0x2a616c17 dst_release +EXPORT_SYMBOL vmlinux 0x2a6aa653 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x2a79ac13 clkdev_add +EXPORT_SYMBOL vmlinux 0x2a7c3c7e tcp_parse_options +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 0x2ac56933 misc_register +EXPORT_SYMBOL vmlinux 0x2ae4174d soft_cursor +EXPORT_SYMBOL vmlinux 0x2aefdda4 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x2af53a85 rt6_lookup +EXPORT_SYMBOL vmlinux 0x2afe2604 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b10f3ba journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x2b382859 iterate_mounts +EXPORT_SYMBOL vmlinux 0x2b517a86 proc_create_data +EXPORT_SYMBOL vmlinux 0x2b51b34d journal_forget +EXPORT_SYMBOL vmlinux 0x2b656455 phy_disconnect +EXPORT_SYMBOL vmlinux 0x2b688622 complete_and_exit +EXPORT_SYMBOL vmlinux 0x2b86372f genphy_config_advert +EXPORT_SYMBOL vmlinux 0x2b90cdaa mempool_create +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bd8a64f grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x2bfec1ad generic_listxattr +EXPORT_SYMBOL vmlinux 0x2c07ac3b xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x2c2e6fca ip_setsockopt +EXPORT_SYMBOL vmlinux 0x2c44b114 install_exec_creds +EXPORT_SYMBOL vmlinux 0x2c764863 blk_free_tags +EXPORT_SYMBOL vmlinux 0x2ca38bc5 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic +EXPORT_SYMBOL vmlinux 0x2cfa06aa fb_show_logo +EXPORT_SYMBOL vmlinux 0x2cfd788a scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x2d066ebd locks_remove_posix +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d34a1b4 dq_data_lock +EXPORT_SYMBOL vmlinux 0x2d3ac01c __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x2d40be6e nonseekable_open +EXPORT_SYMBOL vmlinux 0x2d6507b5 _find_next_zero_bit_le +EXPORT_SYMBOL vmlinux 0x2d84f04d unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x2d87856e tty_shutdown +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d8ecf85 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x2dad8c98 tty_free_termios +EXPORT_SYMBOL vmlinux 0x2ddaabcf snd_dma_get_reserved_buf +EXPORT_SYMBOL vmlinux 0x2ddad8cf __sk_dst_check +EXPORT_SYMBOL vmlinux 0x2ddec420 __lru_cache_add +EXPORT_SYMBOL vmlinux 0x2e120b50 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e3124fd tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x2e3188de register_cdrom +EXPORT_SYMBOL vmlinux 0x2e404fef uart_resume_port +EXPORT_SYMBOL vmlinux 0x2e41bdd7 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x2e5810c6 __aeabi_unwind_cpp_pr1 +EXPORT_SYMBOL vmlinux 0x2e721aaf mntput_no_expire +EXPORT_SYMBOL vmlinux 0x2e736c6e phy_disable_interrupts +EXPORT_SYMBOL vmlinux 0x2e98a53f noop_llseek +EXPORT_SYMBOL vmlinux 0x2eb3a67c inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x2ec08fee ___dma_page_dev_to_cpu +EXPORT_SYMBOL vmlinux 0x2ef904a1 vfs_link +EXPORT_SYMBOL vmlinux 0x2f3d1330 del_mtd_partitions +EXPORT_SYMBOL vmlinux 0x2f43ef42 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x2f7c174a __secpath_destroy +EXPORT_SYMBOL vmlinux 0x2ff6eb00 tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0x2ffd4ad0 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x3031b407 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x30406c38 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x3062c8c8 __napi_complete +EXPORT_SYMBOL vmlinux 0x308aad56 omap_vrfb_min_phys_size +EXPORT_SYMBOL vmlinux 0x30ab66f6 cdrom_release +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30e7f6bc xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x310d2dd7 clear_inode +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 0x313cc7dc xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x314154bf security_inode_permission +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3151f47b skb_queue_head +EXPORT_SYMBOL vmlinux 0x316a93b7 dev_mc_init +EXPORT_SYMBOL vmlinux 0x316dd1cd __wait_on_bit +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31961124 sock_create_lite +EXPORT_SYMBOL vmlinux 0x31acbe96 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x3208eb46 phy_enable_interrupts +EXPORT_SYMBOL vmlinux 0x32210b26 lro_flush_all +EXPORT_SYMBOL vmlinux 0x322f17c7 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x32303053 lock_may_read +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 0x32deaa64 dm_table_put +EXPORT_SYMBOL vmlinux 0x3379ae0c sync_inode +EXPORT_SYMBOL vmlinux 0x337f74bf nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x33b183dd tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x33bff38a scsi_execute_req +EXPORT_SYMBOL vmlinux 0x33c74d77 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x3405db25 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x34264ec1 __napi_schedule +EXPORT_SYMBOL vmlinux 0x3438cf30 inode_set_bytes +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 0x34ae4333 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x34b3f7d7 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x34d22631 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x34f689a3 read_cache_pages +EXPORT_SYMBOL vmlinux 0x35044932 omap_dss_start_device +EXPORT_SYMBOL vmlinux 0x35167b2b set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x35355858 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x353e3fa5 __get_user_4 +EXPORT_SYMBOL vmlinux 0x354d5800 dev_addr_init +EXPORT_SYMBOL vmlinux 0x3559a699 udp_disconnect +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35d756c1 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x35da2e61 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x35da67f4 omap_writew +EXPORT_SYMBOL vmlinux 0x3601e262 mark_buffer_async_write +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 0x3652974f ip_route_input_common +EXPORT_SYMBOL vmlinux 0x3665ba1d dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x368db863 bio_integrity_advance +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 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf +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 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37d1c64c napi_gro_receive +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37f5386f sock_setsockopt +EXPORT_SYMBOL vmlinux 0x38133c8b dqstats +EXPORT_SYMBOL vmlinux 0x3819b198 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x3820d70b inet6_getname +EXPORT_SYMBOL vmlinux 0x3825d4a3 udplite_prot +EXPORT_SYMBOL vmlinux 0x3828f7ec netpoll_poll +EXPORT_SYMBOL vmlinux 0x3833d1b3 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x384e1928 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x3854a8ed snd_ctl_rename_id +EXPORT_SYMBOL vmlinux 0x38595737 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x387a56ad lro_receive_skb +EXPORT_SYMBOL vmlinux 0x3883638e omap_dss_get_overlay +EXPORT_SYMBOL vmlinux 0x38837d91 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x388b2e3b scsi_dma_map +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38a11430 fb_find_mode +EXPORT_SYMBOL vmlinux 0x38b1950a blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x38df7a59 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x38e8378d pgprot_kernel +EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x393c45fa jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x3940b4f0 netif_napi_add +EXPORT_SYMBOL vmlinux 0x39568213 inet_put_port +EXPORT_SYMBOL vmlinux 0x395cc1b5 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39820d2f tty_port_close_end +EXPORT_SYMBOL vmlinux 0x3987bc3a i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x399d2211 file_remove_suid +EXPORT_SYMBOL vmlinux 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL vmlinux 0x39cb9ffd __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x39e706ea snd_info_register +EXPORT_SYMBOL vmlinux 0x39f00364 snd_card_file_remove +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a24e7ce linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x3a365346 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x3a5a79e0 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x3a6635b2 skb_find_text +EXPORT_SYMBOL vmlinux 0x3a982652 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x3a998e53 eth_change_mtu +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3ae0a854 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x3af6e413 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x3aff2394 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x3b0befc8 mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b43119a dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x3b649a2c sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x3b91f3af snd_free_pages +EXPORT_SYMBOL vmlinux 0x3bc5ef9e lock_fb_info +EXPORT_SYMBOL vmlinux 0x3bd0c59e cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bde5c86 skb_make_writable +EXPORT_SYMBOL vmlinux 0x3be65797 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x3beacf3b snd_device_free +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c7832ef dma_pool_free +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cad62d1 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d1bc86f blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x3d252b0a add_disk +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 0x3de8463c vc_cons +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3dffe1ec scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x3e07e9fd tty_check_change +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3edee2a3 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x3ee79bf8 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x3ef71411 dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0x3f04ff27 unregister_con_driver +EXPORT_SYMBOL vmlinux 0x3f14f939 block_sync_page +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f8efcbd neigh_for_each +EXPORT_SYMBOL vmlinux 0x3fae68f3 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x400e763f do_sync_write +EXPORT_SYMBOL vmlinux 0x40407fb5 napi_reuse_skb +EXPORT_SYMBOL vmlinux 0x40474a93 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x40533e99 vc_resize +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 0x40802554 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x40850783 truncate_inode_pages +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 0x40b4f761 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x40d7f026 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x40ed61b7 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x40f07981 __ashldi3 +EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x41174775 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x4129ce6b kernel_accept +EXPORT_SYMBOL vmlinux 0x4133f72c tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp +EXPORT_SYMBOL vmlinux 0x413b0c00 d_path +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414aab90 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x414bf850 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x41605b5d get_phy_id +EXPORT_SYMBOL vmlinux 0x4168f4a0 send_sig +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x416b2522 omap_get_var_config +EXPORT_SYMBOL vmlinux 0x4185cf4b radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41a612a2 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x41ab2e03 dquot_acquire +EXPORT_SYMBOL vmlinux 0x41b33015 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x4207244c key_alloc +EXPORT_SYMBOL vmlinux 0x42099c3b __bforget +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x422fbd65 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x424cad3e simple_pin_fs +EXPORT_SYMBOL vmlinux 0x4252289e nobh_write_end +EXPORT_SYMBOL vmlinux 0x42640ea7 simple_fill_super +EXPORT_SYMBOL vmlinux 0x4277c5ef create_mnt_ns +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42af64f2 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x42b06198 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x42f0e54a scsi_get_command +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x432d8b0f scsi_remove_target +EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short +EXPORT_SYMBOL vmlinux 0x433794ad nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x4347b971 idr_init +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x43785001 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x43801830 xfrm_input +EXPORT_SYMBOL vmlinux 0x4387a9ba unregister_sysrq_key +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 0x43fbbb79 override_creds +EXPORT_SYMBOL vmlinux 0x44131fec bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x441a88f1 writeback_inodes_sb_if_idle +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 0x44623830 register_nls +EXPORT_SYMBOL vmlinux 0x44643b93 __aeabi_lmul +EXPORT_SYMBOL vmlinux 0x447d9cdf scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x448212fa down_trylock +EXPORT_SYMBOL vmlinux 0x44a5d876 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44be34ee __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x44da5d0f __csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x44e695c5 journal_create +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x453c2b4b __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x45478fde set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x454aeb92 blk_fetch_request +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 0x45aa58d8 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x45bda0d5 system_serial_low +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45d2bf0a inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x45e203df blk_stack_limits +EXPORT_SYMBOL vmlinux 0x4601ab4e max8925_reg_write +EXPORT_SYMBOL vmlinux 0x46028355 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x460ea1c5 udplite_table +EXPORT_SYMBOL vmlinux 0x4628dc33 omap_vram_alloc +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x462cea96 remove_inode_hash +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 0x46bd4aab no_llseek +EXPORT_SYMBOL vmlinux 0x46c24d1e read_cache_page_async +EXPORT_SYMBOL vmlinux 0x46c4b962 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x46c50891 amba_device_unregister +EXPORT_SYMBOL vmlinux 0x46d3b28c __div0 +EXPORT_SYMBOL vmlinux 0x46e78d0b tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x46f0f0d9 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x46f21568 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x4704fe2a ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x470eddba blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x474f0fe8 inet_listen +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475f9e5d ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x4782b90c tcp_v4_md5_do_del +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 0x47f07c02 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x47f08238 ll_rw_block +EXPORT_SYMBOL vmlinux 0x47f757de elf_platform +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 0x488599e9 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x48a04408 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x48a5b067 __machine_arch_type +EXPORT_SYMBOL vmlinux 0x48ae08a3 register_sound_dsp +EXPORT_SYMBOL vmlinux 0x48dd14b6 skb_pull +EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x4945c29d uart_match_port +EXPORT_SYMBOL vmlinux 0x49465077 bd_release +EXPORT_SYMBOL vmlinux 0x494c528a blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x4952ccc3 blk_start_queue +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x49778fb2 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x4988a177 i2c_master_send +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49c8c866 dev_set_promiscuity +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 0x49f7d635 skb_push +EXPORT_SYMBOL vmlinux 0x49fb031f kmem_cache_size +EXPORT_SYMBOL vmlinux 0x4a0b988c sock_init_data +EXPORT_SYMBOL vmlinux 0x4a1ee0aa xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a37af33 ___dma_single_cpu_to_dev +EXPORT_SYMBOL vmlinux 0x4a39e5a1 omap_set_dma_src_params +EXPORT_SYMBOL vmlinux 0x4a3bb3e4 vfs_llseek +EXPORT_SYMBOL vmlinux 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL vmlinux 0x4a702c40 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x4a7239cb bd_claim +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 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b16e5c4 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x4b20cbd2 ida_remove +EXPORT_SYMBOL vmlinux 0x4b290cfe __find_get_block +EXPORT_SYMBOL vmlinux 0x4b2a395b unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b686514 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x4b789d5c dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x4b9d7354 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bd37739 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x4bdb269e inet_del_protocol +EXPORT_SYMBOL vmlinux 0x4bf1cffe md_write_start +EXPORT_SYMBOL vmlinux 0x4bf227e6 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x4c06ebd1 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x4c1053df devm_iounmap +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c20a5b2 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x4c26b34c copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c3da620 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x4c468c19 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x4c64d88f vm_event_states +EXPORT_SYMBOL vmlinux 0x4c655619 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x4c7083b1 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x4c939227 input_free_device +EXPORT_SYMBOL vmlinux 0x4c95e08f init_task +EXPORT_SYMBOL vmlinux 0x4ca30769 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cef52e7 dev_uc_sync +EXPORT_SYMBOL vmlinux 0x4d0cb6c9 noop_fsync +EXPORT_SYMBOL vmlinux 0x4d0cf9f2 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x4d0d163d copy_page +EXPORT_SYMBOL vmlinux 0x4d14508e input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x4d1bc785 path_get +EXPORT_SYMBOL vmlinux 0x4d267c26 ip_fragment +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dec6038 memscan +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e0c66d0 register_sound_midi +EXPORT_SYMBOL vmlinux 0x4e10cfbd dev_change_flags +EXPORT_SYMBOL vmlinux 0x4e208c98 __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e506013 omap_dma_link_lch +EXPORT_SYMBOL vmlinux 0x4e661e64 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e9c16a9 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x4ea32edd abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x4eac56c1 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x4ec2232d qdisc_reset +EXPORT_SYMBOL vmlinux 0x4ecdb736 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x4ecf2471 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x4ecf4a99 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f1ce837 may_umount_tree +EXPORT_SYMBOL vmlinux 0x4f3f6622 tty_register_device +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f61e158 unlock_super +EXPORT_SYMBOL vmlinux 0x4f62bb52 snd_dma_alloc_pages +EXPORT_SYMBOL vmlinux 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL vmlinux 0x4f89c9de gpmc_cs_free +EXPORT_SYMBOL vmlinux 0x4fd77b2d slow_work_cancel +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x50125845 dev_get_flags +EXPORT_SYMBOL vmlinux 0x5013851b snd_pcm_lib_writev +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x502d687d mb_cache_create +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x506d97f5 omap_readl +EXPORT_SYMBOL vmlinux 0x50718846 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x5079ab01 keyring_clear +EXPORT_SYMBOL vmlinux 0x507f6023 mmc_host_disable +EXPORT_SYMBOL vmlinux 0x5093fa82 _clear_bit_le +EXPORT_SYMBOL vmlinux 0x50ad2b6a jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x50c66937 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x50c71330 idr_get_new +EXPORT_SYMBOL vmlinux 0x50ccff03 omap_dma_set_prio_lch +EXPORT_SYMBOL vmlinux 0x50cf3e41 scsi_print_result +EXPORT_SYMBOL vmlinux 0x50f6cc46 otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x511746c1 dump_fpu +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x512bdee4 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x5169161d omap_free_dma_chain +EXPORT_SYMBOL vmlinux 0x518021a1 dev_trans_start +EXPORT_SYMBOL vmlinux 0x51908eb8 __raw_writesl +EXPORT_SYMBOL vmlinux 0x51a12151 filemap_flush +EXPORT_SYMBOL vmlinux 0x51a8025f xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e77c97 pfn_valid +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52049712 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x52475b9e kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x5263dfdb slow_work_register_user +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 0x52b491b2 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x530b58ba mark_page_accessed +EXPORT_SYMBOL vmlinux 0x5311add1 skb_store_bits +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x53700d68 sg_miter_stop +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x53921f0a phy_attach_direct +EXPORT_SYMBOL vmlinux 0x53ae0f38 omap_st_enable +EXPORT_SYMBOL vmlinux 0x53aee083 block_read_full_page +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x542ff339 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x54349c81 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x5452add0 dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x546dc239 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x5473429d kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x5488239f sk_common_release +EXPORT_SYMBOL vmlinux 0x549fe241 skb_put +EXPORT_SYMBOL vmlinux 0x54b35315 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x5507133e dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x552146cd snd_pcm_hw_constraint_list +EXPORT_SYMBOL vmlinux 0x552587b8 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x55348c78 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x555ffb5b blk_peek_request +EXPORT_SYMBOL vmlinux 0x556112f5 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x5562e2be blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x556fabcf __blockdev_direct_IO_newtrunc +EXPORT_SYMBOL vmlinux 0x5570b32e backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x557439fa bdevname +EXPORT_SYMBOL vmlinux 0x557f68f6 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x5580a28d bdget_disk +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday +EXPORT_SYMBOL vmlinux 0x560d0ee7 snd_pcm_lib_write +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x561c1e6e ps2_begin_command +EXPORT_SYMBOL vmlinux 0x561fa6d9 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x562ad513 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x562e3c33 mod_timer_pending +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x565a13ee jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x56713b3c bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x56789ac5 omap_set_dma_color_mode +EXPORT_SYMBOL vmlinux 0x56ac1312 nobh_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x56be96aa __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x56c4467b xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56d836b1 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x56df5a59 mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0x56ec522e __invalidate_device +EXPORT_SYMBOL vmlinux 0x56f5d0fb unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x56fcaef4 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x571b74f6 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x57291daf tty_unthrottle +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x5741e9d0 ip6_frag_match +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x57698fa7 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x57a455bb fb_set_cmap +EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf +EXPORT_SYMBOL vmlinux 0x57a68615 proto_register +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57e3d123 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x57fec909 set_binfmt +EXPORT_SYMBOL vmlinux 0x58128f29 thaw_process +EXPORT_SYMBOL vmlinux 0x5818a278 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x5849fb44 phy_attach +EXPORT_SYMBOL vmlinux 0x58505396 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x58516557 omap_set_dma_src_data_pack +EXPORT_SYMBOL vmlinux 0x585a79f5 blk_init_tags +EXPORT_SYMBOL vmlinux 0x586818d2 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x5887e80d ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x588a5f90 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x58ba1649 xrlim_allow +EXPORT_SYMBOL vmlinux 0x58f954cc mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x5903123d blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x592d5fd6 ppp_register_net_channel +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 0x59662e7b vfs_readlink +EXPORT_SYMBOL vmlinux 0x596ec1f7 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x59ae679d ip6_frag_init +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 0x59e5070d __do_div64 +EXPORT_SYMBOL vmlinux 0x59e5d633 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x59eee18b tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x59f919f9 unlock_buffer +EXPORT_SYMBOL vmlinux 0x5a03513c mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x5a3b115a kstat +EXPORT_SYMBOL vmlinux 0x5a3c75eb dput +EXPORT_SYMBOL vmlinux 0x5a68250d security_inode_getsecctx +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 0x5ae0d47f clocksource_register +EXPORT_SYMBOL vmlinux 0x5af247c6 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x5b0d38ff neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x5b152574 lock_super +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x5b99f90a snd_ctl_new1 +EXPORT_SYMBOL vmlinux 0x5b9e2dbe scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x5be2888a seq_release +EXPORT_SYMBOL vmlinux 0x5bf4a1eb sg_last +EXPORT_SYMBOL vmlinux 0x5c87a83c mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0x5c8ba195 ps2_command +EXPORT_SYMBOL vmlinux 0x5c9284a0 processor_id +EXPORT_SYMBOL vmlinux 0x5cb2e3d8 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x5cba5ed2 md_check_recovery +EXPORT_SYMBOL vmlinux 0x5cce2b3e security_path_mknod +EXPORT_SYMBOL vmlinux 0x5cd0a506 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x5cdd7288 udp_prot +EXPORT_SYMBOL vmlinux 0x5ceba774 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x5d181b34 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x5d47eff1 do_sync_read +EXPORT_SYMBOL vmlinux 0x5d77a810 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x5d7ad37e omap_mcbsp_set_rx_threshold +EXPORT_SYMBOL vmlinux 0x5dacf300 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x5db1f8bc iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x5df47999 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x5df92f99 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x5e047a9f blk_complete_request +EXPORT_SYMBOL vmlinux 0x5e323d91 sk_alloc +EXPORT_SYMBOL vmlinux 0x5e60eb27 omap_dma_unlink_lch +EXPORT_SYMBOL vmlinux 0x5e61c266 d_lookup +EXPORT_SYMBOL vmlinux 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5ea10773 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x5eb4c342 tcf_register_action +EXPORT_SYMBOL vmlinux 0x5eca99b8 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5efac7e9 have_submounts +EXPORT_SYMBOL vmlinux 0x5f19a727 init_buffer +EXPORT_SYMBOL vmlinux 0x5f1bbbeb block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x5f3d396a posix_acl_permission +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fdf1df5 alloc_disk_node +EXPORT_SYMBOL vmlinux 0x5fea5985 seq_open +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x60146f6f cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x6029cc0b sock_map_fd +EXPORT_SYMBOL vmlinux 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL vmlinux 0x60388d15 seq_bitmap +EXPORT_SYMBOL vmlinux 0x605ed6a0 set_groups +EXPORT_SYMBOL vmlinux 0x608f497e ___pskb_trim +EXPORT_SYMBOL vmlinux 0x6090ab55 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x6099ca6f devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60f71cfa complete +EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n +EXPORT_SYMBOL vmlinux 0x61063e7e contig_page_data +EXPORT_SYMBOL vmlinux 0x61120475 register_key_type +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x6165c8e0 fsnotify_obtain_group +EXPORT_SYMBOL vmlinux 0x6168a66b skb_dequeue +EXPORT_SYMBOL vmlinux 0x61833e74 cdrom_get_last_written +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 0x61b8bb30 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x61f5b41d generic_unplug_device +EXPORT_SYMBOL vmlinux 0x62145a2f bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x6274bb6a genl_register_ops +EXPORT_SYMBOL vmlinux 0x627f09a4 dma_mmap_coherent +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x6293337f slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x629dedf4 d_validate +EXPORT_SYMBOL vmlinux 0x62a149a4 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x62ad3933 flush_signals +EXPORT_SYMBOL vmlinux 0x62b58e05 dquot_alloc +EXPORT_SYMBOL vmlinux 0x62b72b0d mutex_unlock +EXPORT_SYMBOL vmlinux 0x62cc569e cpu_present_mask +EXPORT_SYMBOL vmlinux 0x62cf8987 generic_removexattr +EXPORT_SYMBOL vmlinux 0x62e1f2c8 init_special_inode +EXPORT_SYMBOL vmlinux 0x62e6b4a8 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x62f80eda default_llseek +EXPORT_SYMBOL vmlinux 0x6300f22a scsi_put_command +EXPORT_SYMBOL vmlinux 0x6317a62e tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x631a9c1b netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x636b3461 omap_dss_get_num_overlays +EXPORT_SYMBOL vmlinux 0x637412c0 dst_alloc +EXPORT_SYMBOL vmlinux 0x637ccb95 lookup_hash +EXPORT_SYMBOL vmlinux 0x63898556 task_nice +EXPORT_SYMBOL vmlinux 0x63d4fff9 tcp_connect +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63efc536 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x63fdee02 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64ac9d23 vfs_statfs +EXPORT_SYMBOL vmlinux 0x64afcb1e md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x64b04f6b dm_exception_store_destroy +EXPORT_SYMBOL vmlinux 0x64c7dd68 journal_extend +EXPORT_SYMBOL vmlinux 0x64c9b573 napi_get_frags +EXPORT_SYMBOL vmlinux 0x64f13f38 poll_freewait +EXPORT_SYMBOL vmlinux 0x650d5df3 dm_io +EXPORT_SYMBOL vmlinux 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL vmlinux 0x6515d605 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65222ac7 sock_no_connect +EXPORT_SYMBOL vmlinux 0x65383f08 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x658f7ff5 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x65a00934 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x65a048da block_truncate_page +EXPORT_SYMBOL vmlinux 0x65a765ee ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0x65f41550 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x65f4c923 vm_map_ram +EXPORT_SYMBOL vmlinux 0x660f531f xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x661b5100 redraw_screen +EXPORT_SYMBOL vmlinux 0x661c244e sock_no_mmap +EXPORT_SYMBOL vmlinux 0x662dce23 omap_mcbsp_set_spi_mode +EXPORT_SYMBOL vmlinux 0x66660b78 usb_gadget_unregister_driver +EXPORT_SYMBOL vmlinux 0x66784d0b generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66a0ebf5 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x66b664a1 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL vmlinux 0x66ca8737 __blk_end_request +EXPORT_SYMBOL vmlinux 0x66cade7d i2c_register_driver +EXPORT_SYMBOL vmlinux 0x66e982e9 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x66fe71bc dquot_resume +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x67123f2a neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x67166fdf kthread_create +EXPORT_SYMBOL vmlinux 0x67265d21 snd_card_free +EXPORT_SYMBOL vmlinux 0x673847f9 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x673ac865 qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x6752ba18 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x67af796c __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b36ef1 __scsi_device_lookup +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 0x67d1dbc2 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x67d7bb55 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x67f3508d get_io_context +EXPORT_SYMBOL vmlinux 0x67feac36 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x6800bc62 generic_readlink +EXPORT_SYMBOL vmlinux 0x6848ae8f revalidate_disk +EXPORT_SYMBOL vmlinux 0x684efdf6 journal_wipe +EXPORT_SYMBOL vmlinux 0x6874ca37 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x68923c8d max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL vmlinux 0x68ad7956 dm_dirty_log_type_unregister +EXPORT_SYMBOL vmlinux 0x68adb5f5 netlink_unicast +EXPORT_SYMBOL vmlinux 0x68d30138 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x68f9fb19 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x69000de1 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x694173e3 bitmap_unplug +EXPORT_SYMBOL vmlinux 0x6945845e i2c_verify_client +EXPORT_SYMBOL vmlinux 0x694aed59 bdput +EXPORT_SYMBOL vmlinux 0x694cb746 nf_register_queue_handler +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 0x6984f46b close_bdev_exclusive +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x69b049df freeze_bdev +EXPORT_SYMBOL vmlinux 0x69b6f8d9 omap_set_dma_transfer_params +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69d73d4a tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69e28e9c inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x69e573c1 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x69f21d9b cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a12725c remove_from_page_cache +EXPORT_SYMBOL vmlinux 0x6a13ffd7 get_write_access +EXPORT_SYMBOL vmlinux 0x6a2b5292 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x6a392a28 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x6a3d05fc cpu_user +EXPORT_SYMBOL vmlinux 0x6a3e3900 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x6a559116 rtc_lock +EXPORT_SYMBOL vmlinux 0x6a72a234 dev_close +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a8357d4 delayed_slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x6a839424 end_page_writeback +EXPORT_SYMBOL vmlinux 0x6a9e7d82 usb_gadget_register_driver +EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp +EXPORT_SYMBOL vmlinux 0x6add09a2 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x6ae23328 __inet6_hash +EXPORT_SYMBOL vmlinux 0x6afaff2b release_firmware +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b47e6bc security_path_chmod +EXPORT_SYMBOL vmlinux 0x6b5a7057 ida_destroy +EXPORT_SYMBOL vmlinux 0x6b8403c9 dm_io_client_create +EXPORT_SYMBOL vmlinux 0x6b99f266 scsi_device_resume +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 0x6bfb9c4d freeze_super +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c3f6980 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x6c5570e3 new_inode +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 0x6c7401f7 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x6c747ab4 snd_timer_global_new +EXPORT_SYMBOL vmlinux 0x6c90c732 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x6c9bed7e mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x6ca1364f __rta_fill +EXPORT_SYMBOL vmlinux 0x6ca31f6c vfs_unlink +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6ce4207e splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x6ce73f29 i2c_release_client +EXPORT_SYMBOL vmlinux 0x6ce80415 handle_sysrq +EXPORT_SYMBOL vmlinux 0x6d1104b5 get_sb_single +EXPORT_SYMBOL vmlinux 0x6d16c02d scsi_device_get +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 0x6d30ffee lease_modify +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 0x6d672cf3 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d751d8f skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x6d82eea4 skb_set_dev +EXPORT_SYMBOL vmlinux 0x6d995675 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x6d9daca2 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6df5b99b jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x6dfd4c04 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x6dff3739 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x6e078637 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x6e0bb323 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x6e184d5c key_validate +EXPORT_SYMBOL vmlinux 0x6e20b27c framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x6e351c3c journal_start +EXPORT_SYMBOL vmlinux 0x6e3679f3 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x6e45552a skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x6e488923 phy_connect +EXPORT_SYMBOL vmlinux 0x6e4f6112 bio_integrity_split +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6eddfaa8 do_SAK +EXPORT_SYMBOL vmlinux 0x6ee51a66 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x6ee77ce2 read_cache_page +EXPORT_SYMBOL vmlinux 0x6ef865da __lock_buffer +EXPORT_SYMBOL vmlinux 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL vmlinux 0x6f0240ed locks_init_lock +EXPORT_SYMBOL vmlinux 0x6f0a7111 snd_card_file_add +EXPORT_SYMBOL vmlinux 0x6f33bcd3 omap_mcbsp_pollwrite +EXPORT_SYMBOL vmlinux 0x6f67f7eb scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x6f6e6637 tcp4_gro_complete +EXPORT_SYMBOL vmlinux 0x6f87298f qdisc_list_del +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6f9a3545 omapdss_sdi_display_disable +EXPORT_SYMBOL vmlinux 0x6fb92df0 elv_rb_del +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fda8959 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x6fe5f31f touch_atime +EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf +EXPORT_SYMBOL vmlinux 0x702df646 input_inject_event +EXPORT_SYMBOL vmlinux 0x70466d14 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x706139ef mii_check_media +EXPORT_SYMBOL vmlinux 0x7087d0e3 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x708c86b8 jbd2_journal_get_undo_access +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 0x70b5ac07 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70c29d53 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x70f482ec snd_info_create_card_entry +EXPORT_SYMBOL vmlinux 0x710c6aa7 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7138981b proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x716e1043 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x717ce612 mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0x718bd3a8 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x7198abd9 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x72aeeddb tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x72b3da7a do_truncate +EXPORT_SYMBOL vmlinux 0x72b8bed4 request_firmware +EXPORT_SYMBOL vmlinux 0x72bb3545 genphy_resume +EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte +EXPORT_SYMBOL vmlinux 0x72d55e1b alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x73482c25 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +EXPORT_SYMBOL vmlinux 0x736af691 km_policy_expired +EXPORT_SYMBOL vmlinux 0x738e0f8a neigh_lookup +EXPORT_SYMBOL vmlinux 0x73c8f479 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x73db7930 register_framebuffer +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73f2a61a icmpv6_send +EXPORT_SYMBOL vmlinux 0x73f68e75 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x740fc248 slow_work_unregister_user +EXPORT_SYMBOL vmlinux 0x7432bbfe __kfree_skb +EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte +EXPORT_SYMBOL vmlinux 0x746c15e2 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x746c75f4 dm_dirty_log_destroy +EXPORT_SYMBOL vmlinux 0x747a6a6f nf_register_hook +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x749244ed bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x74a15c55 mmc_add_host +EXPORT_SYMBOL vmlinux 0x74b58e36 dev_txq_stats_fold +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74c3432e ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x74da5e2c amba_driver_register +EXPORT_SYMBOL vmlinux 0x74dd79ba inet_getname +EXPORT_SYMBOL vmlinux 0x74e3f400 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x75619178 clk_set_parent +EXPORT_SYMBOL vmlinux 0x75695626 deactivate_super +EXPORT_SYMBOL vmlinux 0x7584cc1e xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x758b5c58 tcp_tso_segment +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 0x75ed89a5 netdev_class_create_file +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 0x7629ba05 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x765ab807 dentry_unhash +EXPORT_SYMBOL vmlinux 0x765f75fb pgprot_user +EXPORT_SYMBOL vmlinux 0x765ffa5f take_over_console +EXPORT_SYMBOL vmlinux 0x76694591 omap_mcbsp_get_max_tx_threshold +EXPORT_SYMBOL vmlinux 0x76881360 leds_event +EXPORT_SYMBOL vmlinux 0x7693d6a9 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x76bc92f7 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76c0b32c generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x76cf47f6 __aeabi_llsl +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76fc41ef vfs_write +EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic +EXPORT_SYMBOL vmlinux 0x770f9e8e mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x7731da8c jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x77510c96 tcp_ioctl +EXPORT_SYMBOL vmlinux 0x77608cb0 __netdev_alloc_page +EXPORT_SYMBOL vmlinux 0x77737461 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x778388c9 journal_flush +EXPORT_SYMBOL vmlinux 0x77a597ac skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x77aa6fc2 keyring_search +EXPORT_SYMBOL vmlinux 0x77b08332 block_commit_write +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77c72c2e security_path_link +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x7820c00e __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x783ce18b sync_blockdev +EXPORT_SYMBOL vmlinux 0x7845a149 kmem_cache_destroy +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 0x789f0938 get_disk +EXPORT_SYMBOL vmlinux 0x78d384db jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x78fdb6d0 snd_ctl_boolean_mono_info +EXPORT_SYMBOL vmlinux 0x79253a71 fget +EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt +EXPORT_SYMBOL vmlinux 0x7947a565 cpu_cache +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x7a023b58 md_unregister_thread +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 0x7a469b34 inet_release +EXPORT_SYMBOL vmlinux 0x7a4ddebf cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x7a60d4cf neigh_create +EXPORT_SYMBOL vmlinux 0x7a66b713 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x7a6db324 snd_power_wait +EXPORT_SYMBOL vmlinux 0x7a822523 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x7a91726b clkdev_alloc +EXPORT_SYMBOL vmlinux 0x7a9cebff mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip +EXPORT_SYMBOL vmlinux 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL vmlinux 0x7b1912e5 snd_card_register +EXPORT_SYMBOL vmlinux 0x7b24c235 vfs_writev +EXPORT_SYMBOL vmlinux 0x7b29167b bio_copy_user +EXPORT_SYMBOL vmlinux 0x7b296345 vmtruncate +EXPORT_SYMBOL vmlinux 0x7b3fc685 blk_plug_device +EXPORT_SYMBOL vmlinux 0x7b58457e sock_i_ino +EXPORT_SYMBOL vmlinux 0x7b59fd08 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x7b643480 blk_end_request_all +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7b7636c4 key_task_permission +EXPORT_SYMBOL vmlinux 0x7bcc5a3a fsnotify_find_mark_entry +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7be10d2d nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x7be1b30d gpmc_prefetch_status +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 0x7c9a24f3 bio_add_page +EXPORT_SYMBOL vmlinux 0x7ca71429 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x7cc035a7 __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d3944e0 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x7d4a7123 single_release +EXPORT_SYMBOL vmlinux 0x7d83353f simple_setattr +EXPORT_SYMBOL vmlinux 0x7d923c76 inode_change_ok +EXPORT_SYMBOL vmlinux 0x7db57751 proc_dointvec +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7de50db9 wake_up_process +EXPORT_SYMBOL vmlinux 0x7e056291 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x7e138979 input_grab_device +EXPORT_SYMBOL vmlinux 0x7e185166 devm_free_irq +EXPORT_SYMBOL vmlinux 0x7e22e224 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x7e329c27 journal_get_create_access +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e3ac6b6 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x7e577d85 journal_release_buffer +EXPORT_SYMBOL vmlinux 0x7e65f004 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x7e8c8494 current_fs_time +EXPORT_SYMBOL vmlinux 0x7e96b5e3 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7ea0e284 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x7ea72ba2 dma_pool_create +EXPORT_SYMBOL vmlinux 0x7ec44bb8 journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x7ec46042 bio_endio +EXPORT_SYMBOL vmlinux 0x7ed08943 serio_rescan +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f2aceec xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x7f33a63b omap_get_dma_chain_dst_pos +EXPORT_SYMBOL vmlinux 0x7f4d2879 sk_run_filter +EXPORT_SYMBOL vmlinux 0x7f50bf5c scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x7f53de68 follow_down +EXPORT_SYMBOL vmlinux 0x7f5b8052 console_start +EXPORT_SYMBOL vmlinux 0x7f63b31e _memcpy_toio +EXPORT_SYMBOL vmlinux 0x7f7ef9df block_write_full_page +EXPORT_SYMBOL vmlinux 0x7f87b86a bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x7f996988 bio_pair_release +EXPORT_SYMBOL vmlinux 0x7fabe1e1 dm_table_get +EXPORT_SYMBOL vmlinux 0x7fde2e74 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x800e4ffa __muldi3 +EXPORT_SYMBOL vmlinux 0x8046be77 ab3100_event_register +EXPORT_SYMBOL vmlinux 0x804fc9ca omap_mcbsp_free +EXPORT_SYMBOL vmlinux 0x8054c17e security_path_symlink +EXPORT_SYMBOL vmlinux 0x805e2941 simple_getattr +EXPORT_SYMBOL vmlinux 0x8062285b clk_get_parent +EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x806cac21 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x807b0f3c netif_carrier_off +EXPORT_SYMBOL vmlinux 0x80a37721 kernel_sock_ioctl +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 0x80e54014 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x81003ee2 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x8109405e tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x811df17e dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x811f6651 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x813ed040 idr_remove_all +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815131ba mempool_destroy +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf +EXPORT_SYMBOL vmlinux 0x81ae017a dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x81b04bfc completion_done +EXPORT_SYMBOL vmlinux 0x81c3f654 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +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 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 0x824a1619 tcf_hash_create +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 0x8265190a lock_may_write +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82c5d152 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x82ca6e4f snd_ctl_register_ioctl +EXPORT_SYMBOL vmlinux 0x82d62b06 dget_locked +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x82e85e9e blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x82f9a22e textsearch_register +EXPORT_SYMBOL vmlinux 0x830ac8c1 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x8320bea8 __umodsi3 +EXPORT_SYMBOL vmlinux 0x83680340 inet_frags_init +EXPORT_SYMBOL vmlinux 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL vmlinux 0x83704c9a page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x8371daff sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x83767ca9 proc_dostring +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83d25c38 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x8412b4d0 phy_device_register +EXPORT_SYMBOL vmlinux 0x844f3bb3 mmc_release_host +EXPORT_SYMBOL vmlinux 0x84825a98 mmc_resume_host +EXPORT_SYMBOL vmlinux 0x849203cd blk_register_region +EXPORT_SYMBOL vmlinux 0x8494cdb7 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x84b183ae strncmp +EXPORT_SYMBOL vmlinux 0x84bbb808 snd_unregister_oss_device +EXPORT_SYMBOL vmlinux 0x84c485a6 simple_map_init +EXPORT_SYMBOL vmlinux 0x84cac6c2 security_file_mmap +EXPORT_SYMBOL vmlinux 0x84d246a4 snd_ctl_remove +EXPORT_SYMBOL vmlinux 0x84db4b6e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x84e3eb07 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x84f969c7 dqget +EXPORT_SYMBOL vmlinux 0x8541d494 display_device_unregister +EXPORT_SYMBOL vmlinux 0x855816b3 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x85765fee omap_enable_dma_irq +EXPORT_SYMBOL vmlinux 0x85a89063 sk_free +EXPORT_SYMBOL vmlinux 0x85afc225 write_cache_pages +EXPORT_SYMBOL vmlinux 0x85d6bd1f fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85eac048 dev_addr_del +EXPORT_SYMBOL vmlinux 0x863550e7 cap_file_mmap +EXPORT_SYMBOL vmlinux 0x864566eb sb_set_blocksize +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 0x867f09a1 read_dev_sector +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86ca2384 fb_get_mode +EXPORT_SYMBOL vmlinux 0x86ccf44a blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x86f0cd51 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x86f7c1cb put_page +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870958f9 kernel_connect +EXPORT_SYMBOL vmlinux 0x870c91aa scsi_scan_target +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x871e4e6b scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x872e8fae bio_clone +EXPORT_SYMBOL vmlinux 0x875c8c25 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL vmlinux 0x8779a966 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0x87841ff2 blk_get_request +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87dbba14 ida_get_new +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x882a92a1 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x8838ffe6 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x8848b911 dquot_release +EXPORT_SYMBOL vmlinux 0x88916b07 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x8893fa5d finish_wait +EXPORT_SYMBOL vmlinux 0x88ae108b generic_setlease +EXPORT_SYMBOL vmlinux 0x88b1581f xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x88beaeeb cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x88c117c0 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x88ead8a6 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x890eb059 register_exec_domain +EXPORT_SYMBOL vmlinux 0x8918f2b8 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x894cd63e security_path_rename +EXPORT_SYMBOL vmlinux 0x89662af2 clk_get +EXPORT_SYMBOL vmlinux 0x89739696 blk_end_request +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89887334 vfs_read +EXPORT_SYMBOL vmlinux 0x89a3c4f4 omap_get_dma_chain_index +EXPORT_SYMBOL vmlinux 0x89a49d7b netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x89b69c1d __xfrm_decode_session +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 0x8a056954 kill_pid +EXPORT_SYMBOL vmlinux 0x8a4fa83b __aeabi_llsr +EXPORT_SYMBOL vmlinux 0x8a61a083 bio_add_pc_page +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 0x8a8e572a scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8ae70ed9 mapping_tagged +EXPORT_SYMBOL vmlinux 0x8b08338c scsi_device_put +EXPORT_SYMBOL vmlinux 0x8b0aa8e3 input_open_device +EXPORT_SYMBOL vmlinux 0x8b106f08 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x8b18ca71 dm_register_target +EXPORT_SYMBOL vmlinux 0x8b35a321 amba_release_regions +EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x8b55fce8 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x8b5f464f elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8bb65a17 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long +EXPORT_SYMBOL vmlinux 0x8bf249c5 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x8c0362bb snd_pcm_hw_constraint_step +EXPORT_SYMBOL vmlinux 0x8c0994ff ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x8c0d67ad balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x8c2466a9 simple_release_fs +EXPORT_SYMBOL vmlinux 0x8c27f055 bio_map_user +EXPORT_SYMBOL vmlinux 0x8c32da07 mpage_writepages +EXPORT_SYMBOL vmlinux 0x8c4d6523 omap_dma_chain_a_transfer +EXPORT_SYMBOL vmlinux 0x8c55b09d __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x8c5801b3 tty_kref_put +EXPORT_SYMBOL vmlinux 0x8c6405b3 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x8c662fd6 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x8cad25da force_sig +EXPORT_SYMBOL vmlinux 0x8ccda6f2 load_nls_default +EXPORT_SYMBOL vmlinux 0x8cd0fa06 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x8cd8c339 omap_free_dma +EXPORT_SYMBOL vmlinux 0x8cf51d15 up +EXPORT_SYMBOL vmlinux 0x8d0bf75c i2c_transfer +EXPORT_SYMBOL vmlinux 0x8d16c771 bdev_read_only +EXPORT_SYMBOL vmlinux 0x8d17930f ip_defrag +EXPORT_SYMBOL vmlinux 0x8d1c31a4 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x8d1f06c4 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x8d356031 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x8d496e07 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d8dcf05 may_umount +EXPORT_SYMBOL vmlinux 0x8dc070f6 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x8dc7f7ea skb_insert +EXPORT_SYMBOL vmlinux 0x8dd4e9d9 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x8dd5a243 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x8dee7314 nand_default_bbt +EXPORT_SYMBOL vmlinux 0x8df0bc3c dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x8df1c13a kmem_cache_alloc_notrace +EXPORT_SYMBOL vmlinux 0x8df3789f snd_oss_info_register +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e13465d file_update_time +EXPORT_SYMBOL vmlinux 0x8e1c7bee skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x8e1ccc5a generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x8e2b5dfa netlink_ack +EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk +EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq +EXPORT_SYMBOL vmlinux 0x8e93474e bio_sector_offset +EXPORT_SYMBOL vmlinux 0x8eae5eaa journal_init_inode +EXPORT_SYMBOL vmlinux 0x8eb5a5a2 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x8ee37119 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8ee90693 snd_card_create +EXPORT_SYMBOL vmlinux 0x8f43913f security_file_permission +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f4d8468 kill_pgrp +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 0x8f849406 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x8fa4130a omap_set_dma_callback +EXPORT_SYMBOL vmlinux 0x8fb10446 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x8fc7551e should_remove_suid +EXPORT_SYMBOL vmlinux 0x8fe09dde sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x90127d2d xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x903c2509 elevator_exit +EXPORT_SYMBOL vmlinux 0x90766928 scsi_free_command +EXPORT_SYMBOL vmlinux 0x90b51d6c schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x90bed0b3 save_mount_options +EXPORT_SYMBOL vmlinux 0x90ed14f3 input_register_handler +EXPORT_SYMBOL vmlinux 0x90f5c0be sock_register +EXPORT_SYMBOL vmlinux 0x91089916 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x910deab3 tcp4_gro_receive +EXPORT_SYMBOL vmlinux 0x9112ef6f kset_register +EXPORT_SYMBOL vmlinux 0x912363a8 phy_detach +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 0x9181d4c7 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x919029aa __readwrite_bug +EXPORT_SYMBOL vmlinux 0x920664c8 mempool_free +EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool +EXPORT_SYMBOL vmlinux 0x921c89ef i2c_del_driver +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x929eecac __strncpy_from_user +EXPORT_SYMBOL vmlinux 0x92b80ef2 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x92bb9036 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x92c1d660 kfree_skb +EXPORT_SYMBOL vmlinux 0x92d747d5 icmp_send +EXPORT_SYMBOL vmlinux 0x92dcd0a9 dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x92f06e2f dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x9304a874 clk_enable +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9338bb17 seq_lseek +EXPORT_SYMBOL vmlinux 0x938a5513 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x93964e9b inet_addr_type +EXPORT_SYMBOL vmlinux 0x93a52ce0 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93bfbc23 i2c_master_recv +EXPORT_SYMBOL vmlinux 0x93d28aa5 is_container_init +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 0x942148c6 mmc_cleanup_queue +EXPORT_SYMBOL vmlinux 0x943472c9 generic_permission +EXPORT_SYMBOL vmlinux 0x94355b05 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x946e2c58 tty_mutex +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94af632e complete_all +EXPORT_SYMBOL vmlinux 0x94ca18a2 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x952d4aa0 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x958fd545 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x95dbe078 __get_user_2 +EXPORT_SYMBOL vmlinux 0x95f638d5 posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x961c6e5e loop_register_transfer +EXPORT_SYMBOL vmlinux 0x962ade1a get_user_pages +EXPORT_SYMBOL vmlinux 0x96434c8c kset_unregister +EXPORT_SYMBOL vmlinux 0x965f55e7 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x9663a173 __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0x96775628 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x96a7d91d ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x96b39b6e omap_start_dma_chain_transfers +EXPORT_SYMBOL vmlinux 0x96b94b79 iget5_locked +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x970992a2 ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x970bfb99 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x970ec609 jbd2_journal_init_jbd_inode +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 0x9745f604 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x974ad2f1 tc_classify +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x9771ecb6 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x97a837d7 tcp_child_process +EXPORT_SYMBOL vmlinux 0x97ae942e blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x9805dad3 vlan_gro_frags +EXPORT_SYMBOL vmlinux 0x9806b829 blk_unplug +EXPORT_SYMBOL vmlinux 0x98082893 __copy_to_user +EXPORT_SYMBOL vmlinux 0x980cb1f7 snd_register_oss_device +EXPORT_SYMBOL vmlinux 0x982f2b65 d_alloc_name +EXPORT_SYMBOL vmlinux 0x983bae7e ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x983d7001 flush_old_exec +EXPORT_SYMBOL vmlinux 0x983ec80e napi_skb_finish +EXPORT_SYMBOL vmlinux 0x9855754b clk_add_alias +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x98968bac sock_kmalloc +EXPORT_SYMBOL vmlinux 0x9899233a commit_creds +EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init +EXPORT_SYMBOL vmlinux 0x98c2fc62 revert_creds +EXPORT_SYMBOL vmlinux 0x98c9f2a1 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x98cc61b5 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x98e6c4e4 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x98fbbeb3 input_register_device +EXPORT_SYMBOL vmlinux 0x9905064b flush_delayed_work +EXPORT_SYMBOL vmlinux 0x990e3d07 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x9910a253 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x992229e3 request_key +EXPORT_SYMBOL vmlinux 0x99228e80 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x992c1911 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x993f7385 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999c3148 __raw_readsb +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99bb8806 memmove +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name +EXPORT_SYMBOL vmlinux 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 0x9a428cc7 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x9aab0ff3 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x9addd526 dm_table_get_size +EXPORT_SYMBOL vmlinux 0x9adf6ca6 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b780ab0 inode_init_always +EXPORT_SYMBOL vmlinux 0x9b7fb99d gpmc_prefetch_reset +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9ba79f25 release_sock +EXPORT_SYMBOL vmlinux 0x9baf27ac down_read_trylock +EXPORT_SYMBOL vmlinux 0x9bcc1cc8 nla_append +EXPORT_SYMBOL vmlinux 0x9bce482f __release_region +EXPORT_SYMBOL vmlinux 0x9bd27e65 map_destroy +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c27aeaf bmap +EXPORT_SYMBOL vmlinux 0x9c3e0b7b snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL vmlinux 0x9c3f8bd8 inet6_release +EXPORT_SYMBOL vmlinux 0x9c5b17a5 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x9c668cde journal_load +EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt +EXPORT_SYMBOL vmlinux 0x9c8d7c13 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x9c8eabd3 key_link +EXPORT_SYMBOL vmlinux 0x9ca097cb __put_cred +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cd60539 sg_free_table +EXPORT_SYMBOL vmlinux 0x9cd72580 skb_clone +EXPORT_SYMBOL vmlinux 0x9ce26602 xfrm_register_type +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 0x9d382acd phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x9d389eea dev_load +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d669763 memcpy +EXPORT_SYMBOL vmlinux 0x9d7ddf44 inet_shutdown +EXPORT_SYMBOL vmlinux 0x9d8a48be mddev_congested +EXPORT_SYMBOL vmlinux 0x9d9905a1 omapdss_default_get_resolution +EXPORT_SYMBOL vmlinux 0x9daab5a8 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x9dc1169b nf_reinject +EXPORT_SYMBOL vmlinux 0x9dd1bb0a cont_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x9de5558f skb_recycle_check +EXPORT_SYMBOL vmlinux 0x9dfb472a get_sb_ns +EXPORT_SYMBOL vmlinux 0x9dff27ae ip_ct_attach +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e3054c4 pipe_to_file +EXPORT_SYMBOL vmlinux 0x9e39c9a3 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x9e3adb34 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x9e58b1e9 km_state_expired +EXPORT_SYMBOL vmlinux 0x9e5bc6c6 path_is_under +EXPORT_SYMBOL vmlinux 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9eaf91d7 brioctl_set +EXPORT_SYMBOL vmlinux 0x9eb13baf serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9ed743c5 get_super +EXPORT_SYMBOL vmlinux 0x9ee8401f dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9efbdb38 register_netdev +EXPORT_SYMBOL vmlinux 0x9f083baa blk_execute_rq +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f11c398 user_path_at +EXPORT_SYMBOL vmlinux 0x9f272fe4 generic_write_checks +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f53d6ee dma_mmap_writecombine +EXPORT_SYMBOL vmlinux 0x9f5670d5 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x9f71fce9 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x9f8b513f arp_xmit +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f99d9bf ida_pre_get +EXPORT_SYMBOL vmlinux 0x9fa2df62 __pskb_pull_tail +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 0x9ff6fa1f blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0xa014da01 omapdss_sdi_display_enable +EXPORT_SYMBOL vmlinux 0xa01d690c lock_rename +EXPORT_SYMBOL vmlinux 0xa021dcb1 neigh_compat_output +EXPORT_SYMBOL vmlinux 0xa0257bd8 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0xa029bc72 ipv6_push_nfrag_opts +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 0xa09a3592 snd_pcm_hw_refine +EXPORT_SYMBOL vmlinux 0xa0aeae59 tty_port_open +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0f37d2e blk_queue_dma_alignment +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 0xa1649b8b uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xa185c10d tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0xa18803a1 bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0xa19bb584 dentry_open +EXPORT_SYMBOL vmlinux 0xa1a2d9e6 mnt_unpin +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1c8a26b mii_check_link +EXPORT_SYMBOL vmlinux 0xa1dcbf02 update_region +EXPORT_SYMBOL vmlinux 0xa1fdc21d __scm_send +EXPORT_SYMBOL vmlinux 0xa201b5ac framebuffer_release +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa217f4b2 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xa256d528 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0xa25fb0d4 key_type_keyring +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2e7fe97 scsi_remove_device +EXPORT_SYMBOL vmlinux 0xa2ec04f7 page_readlink +EXPORT_SYMBOL vmlinux 0xa2f2b33c phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0xa2f997f1 security_path_rmdir +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL vmlinux 0xa346bab4 kernel_read +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa3564d4f kdb_current_task +EXPORT_SYMBOL vmlinux 0xa35651b2 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa37e14e5 register_gifconf +EXPORT_SYMBOL vmlinux 0xa3a8b570 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xa3aa1243 d_alloc +EXPORT_SYMBOL vmlinux 0xa3b8753a arp_send +EXPORT_SYMBOL vmlinux 0xa3b960d4 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xa3be6a12 try_to_release_page +EXPORT_SYMBOL vmlinux 0xa3cbaa95 mmc_request_done +EXPORT_SYMBOL vmlinux 0xa3e1b510 follow_pfn +EXPORT_SYMBOL vmlinux 0xa3f6ea99 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xa416a0f0 pid_task +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa43c6602 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa45be686 journal_check_available_features +EXPORT_SYMBOL vmlinux 0xa4610bc6 omap_rev +EXPORT_SYMBOL vmlinux 0xa46ee7c7 netpoll_print_options +EXPORT_SYMBOL vmlinux 0xa48f5b09 omap_dma_set_global_params +EXPORT_SYMBOL vmlinux 0xa49b088e netdev_features_change +EXPORT_SYMBOL vmlinux 0xa4b42c55 omap_set_dma_priority +EXPORT_SYMBOL vmlinux 0xa4c29461 omap_st_is_enabled +EXPORT_SYMBOL vmlinux 0xa4f3103c dm_snap_cow +EXPORT_SYMBOL vmlinux 0xa504b2b5 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xa52ea883 inet_frags_fini +EXPORT_SYMBOL vmlinux 0xa52faac1 netdev_set_master +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa583eba4 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0xa586ef9c fput +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5b2bdf6 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0xa5bb7227 __elv_add_request +EXPORT_SYMBOL vmlinux 0xa5bcd20e mmc_free_host +EXPORT_SYMBOL vmlinux 0xa5c3f2d7 iget_failed +EXPORT_SYMBOL vmlinux 0xa5cef8ad release_resource +EXPORT_SYMBOL vmlinux 0xa5cf5bc1 dm_snap_origin +EXPORT_SYMBOL vmlinux 0xa5dc30fe d_obtain_alias +EXPORT_SYMBOL vmlinux 0xa5fa8f4b register_sysrq_key +EXPORT_SYMBOL vmlinux 0xa608ff18 omap_dss_unregister_driver +EXPORT_SYMBOL vmlinux 0xa61aa028 snd_pcm_format_unsigned +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 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL vmlinux 0xa65f5ae7 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa684790a cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xa6b4afa3 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xa6b6c5ef xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xa6c373f5 bio_alloc +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa704fb3d splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xa7063243 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0xa718820c seq_open_private +EXPORT_SYMBOL vmlinux 0xa74f2501 mmc_remove_host +EXPORT_SYMBOL vmlinux 0xa77c697c ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0xa786c38b file_permission +EXPORT_SYMBOL vmlinux 0xa7a1bc57 unload_nls +EXPORT_SYMBOL vmlinux 0xa7e3ac8e arp_find +EXPORT_SYMBOL vmlinux 0xa81c44ff snd_timer_stop +EXPORT_SYMBOL vmlinux 0xa8458a93 pipe_unlock +EXPORT_SYMBOL vmlinux 0xa8585679 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xa85924f6 set_blocksize +EXPORT_SYMBOL vmlinux 0xa8660349 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0xa86fe6bd i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0xa8741cf6 start_tty +EXPORT_SYMBOL vmlinux 0xa8b3f5a5 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0xa8cde9a7 remove_wait_queue +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 0xa9351b1a ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xa9498883 bio_kmalloc +EXPORT_SYMBOL vmlinux 0xa9575f6c xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xa95bed7a clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xa964dd13 gpmc_cs_request +EXPORT_SYMBOL vmlinux 0xa9676010 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xa9829df2 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xa98c4908 write_inode_now +EXPORT_SYMBOL vmlinux 0xa9d2424c sk_reset_txq +EXPORT_SYMBOL vmlinux 0xaa067ef2 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0xaa11b24b tc_classify_compat +EXPORT_SYMBOL vmlinux 0xaa206ad6 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0xaa231893 tc6393xb_lcd_set_power +EXPORT_SYMBOL vmlinux 0xaa282d77 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xaa4a9b4c eth_header_cache +EXPORT_SYMBOL vmlinux 0xaa5745a7 dev_get_by_index +EXPORT_SYMBOL vmlinux 0xaa5927f9 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0xaa7420b7 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa94c694 __init_rwsem +EXPORT_SYMBOL vmlinux 0xaab57d58 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xaabcd2c3 register_filesystem +EXPORT_SYMBOL vmlinux 0xaac69f01 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0xaad3a5f2 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xaad55280 udp_proc_register +EXPORT_SYMBOL vmlinux 0xaada1e15 dev_driver_string +EXPORT_SYMBOL vmlinux 0xaaec4c16 kernel_bind +EXPORT_SYMBOL vmlinux 0xaaf05b31 scsi_host_put +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab42e2cc alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0xab455eb0 up_read +EXPORT_SYMBOL vmlinux 0xab464b2b ether_setup +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab7a4622 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xab94e47e ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0xab9b8a13 remove_arg_zero +EXPORT_SYMBOL vmlinux 0xaba34281 dpi_check_timings +EXPORT_SYMBOL vmlinux 0xaba841b2 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabd6d436 snd_seq_root +EXPORT_SYMBOL vmlinux 0xabdd7c78 dquot_commit +EXPORT_SYMBOL vmlinux 0xabfcfac5 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac0bb04f tcp_make_synack +EXPORT_SYMBOL vmlinux 0xac2eb1dc nf_log_register +EXPORT_SYMBOL vmlinux 0xac506d4a cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xac5f113d cpu_all_bits +EXPORT_SYMBOL vmlinux 0xac6311a5 input_register_handle +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac7bdcf6 bio_free +EXPORT_SYMBOL vmlinux 0xac7d846f abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0xac81fb97 uart_register_driver +EXPORT_SYMBOL vmlinux 0xac8755e9 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xaca397f5 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xacab819f security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0xacb4494a __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xacba3af7 security_path_mkdir +EXPORT_SYMBOL vmlinux 0xacbe5233 get_fs_type +EXPORT_SYMBOL vmlinux 0xacbef244 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad1f4524 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0xad25bb20 init_timer_key +EXPORT_SYMBOL vmlinux 0xad4031db inet_accept +EXPORT_SYMBOL vmlinux 0xad4081ff generic_make_request +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad53f050 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0xad7018e8 snd_device_new +EXPORT_SYMBOL vmlinux 0xad7951d6 __neigh_event_send +EXPORT_SYMBOL vmlinux 0xad7b6630 block_write_end +EXPORT_SYMBOL vmlinux 0xada0ee0b mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0xada111be ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadb3d81e up_write +EXPORT_SYMBOL vmlinux 0xadc87873 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xadd5a716 dquot_free_inode +EXPORT_SYMBOL vmlinux 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region +EXPORT_SYMBOL vmlinux 0xae0882f2 omap_mcbsp_request +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 0xaeba9fe4 inet_add_protocol +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaed372e0 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xaef06bd6 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xaef2fd71 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xaf0d98f0 phy_driver_register +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +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 0xaf79e5c0 sock_no_listen +EXPORT_SYMBOL vmlinux 0xaf8aa518 system_rev +EXPORT_SYMBOL vmlinux 0xafa0517f security_path_unlink +EXPORT_SYMBOL vmlinux 0xafaa3d1c __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xafe78b22 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0xafedc051 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xaff6a72c simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xb0498f5a put_io_context +EXPORT_SYMBOL vmlinux 0xb099eef6 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xb09ebd5f check_disk_size_change +EXPORT_SYMBOL vmlinux 0xb0a69cac d_instantiate +EXPORT_SYMBOL vmlinux 0xb0a9b5b2 snd_card_disconnect +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb102d57d poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0xb11f5897 request_key_async +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb14180e0 I_BDEV +EXPORT_SYMBOL vmlinux 0xb150290e cdev_del +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 0xb19e08fe jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xb1b22911 down_write +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1d37369 dev_uc_init +EXPORT_SYMBOL vmlinux 0xb1ef8296 napi_frags_finish +EXPORT_SYMBOL vmlinux 0xb2061b7d tty_port_close +EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb23982b7 md_error +EXPORT_SYMBOL vmlinux 0xb23eb3ce nf_register_hooks +EXPORT_SYMBOL vmlinux 0xb2436660 blk_start_request +EXPORT_SYMBOL vmlinux 0xb2651935 neigh_seq_start +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb27057c4 d_alloc_root +EXPORT_SYMBOL vmlinux 0xb27e62a7 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL vmlinux 0xb28f1c92 omap_mcbsp_stop +EXPORT_SYMBOL vmlinux 0xb2a372a2 pagecache_write_end +EXPORT_SYMBOL vmlinux 0xb2a3a2f6 __break_lease +EXPORT_SYMBOL vmlinux 0xb2b02806 tcp_splice_read +EXPORT_SYMBOL vmlinux 0xb2b6f1a1 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xb2d846b3 clk_unregister +EXPORT_SYMBOL vmlinux 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL vmlinux 0xb2f89c03 i2c_use_client +EXPORT_SYMBOL vmlinux 0xb2f8e8bf check_disk_change +EXPORT_SYMBOL vmlinux 0xb30c9ab9 vfs_getattr +EXPORT_SYMBOL vmlinux 0xb31a343f pskb_copy +EXPORT_SYMBOL vmlinux 0xb3486985 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xb36f2aaf tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xb37838e1 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xb38d734d jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3a9be20 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0xb3c82ba9 seq_putc +EXPORT_SYMBOL vmlinux 0xb3efc72d down +EXPORT_SYMBOL vmlinux 0xb3fa90c2 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL vmlinux 0xb4025378 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0xb4052ab9 tty_name +EXPORT_SYMBOL vmlinux 0xb416d84c unlock_rename +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb428867a blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0xb429410a posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb499bbda wireless_send_event +EXPORT_SYMBOL vmlinux 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL vmlinux 0xb4bd52cd vfs_fsync_range +EXPORT_SYMBOL vmlinux 0xb4c8f38a omap_dma_chain_status +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb527a93f skb_tx_hash +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb545875d mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xb56c6c46 neigh_update +EXPORT_SYMBOL vmlinux 0xb59b33fd d_splice_alias +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5bb6d5a end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5e0d847 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0xb628adb7 serial8250_register_port +EXPORT_SYMBOL vmlinux 0xb6431a93 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0xb645b8f7 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xb646116e __starget_for_each_device +EXPORT_SYMBOL vmlinux 0xb64f706f inode_init_owner +EXPORT_SYMBOL vmlinux 0xb6554bd0 inet_select_addr +EXPORT_SYMBOL vmlinux 0xb6622d29 dquot_enable +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 0xb6b7e54f scsi_add_device +EXPORT_SYMBOL vmlinux 0xb6bcce6d skb_split +EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6c62339 phy_print_status +EXPORT_SYMBOL vmlinux 0xb6d7da52 f_setown +EXPORT_SYMBOL vmlinux 0xb6eaca3d scsi_execute +EXPORT_SYMBOL vmlinux 0xb717b99e i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xb730dc6e blk_insert_request +EXPORT_SYMBOL vmlinux 0xb7595b59 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xb77816b6 bdi_register_dev +EXPORT_SYMBOL vmlinux 0xb77a7c47 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xb785f49a xfrm_find_acq +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 0xb81e3d95 generic_pipe_buf_unmap +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 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb872f052 snd_pcm_lib_mmap_noncached +EXPORT_SYMBOL vmlinux 0xb8762191 sk_stream_kill_queues +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 0xb8bda02a pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xb8eb0014 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xb8edec2e mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xb8f1d109 journal_update_format +EXPORT_SYMBOL vmlinux 0xb8f33c3a skb_trim +EXPORT_SYMBOL vmlinux 0xb95f98d6 _memset_io +EXPORT_SYMBOL vmlinux 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL vmlinux 0xb96c7a9d dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xb97ac634 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb9904cab xfrm4_rcv_encap +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 0xb9cf9d6d scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xb9e38683 omap_mcbsp_xmit_word +EXPORT_SYMBOL vmlinux 0xb9e52429 __wake_up +EXPORT_SYMBOL vmlinux 0xb9fed3e1 ppp_unit_number +EXPORT_SYMBOL vmlinux 0xba1d962b blk_run_queue +EXPORT_SYMBOL vmlinux 0xba1e1a49 tty_port_put +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 0xba64cc69 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xba6f3789 generic_delete_inode +EXPORT_SYMBOL vmlinux 0xba925029 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbaac8c9b tty_vhangup +EXPORT_SYMBOL vmlinux 0xbac483b4 snd_timer_open +EXPORT_SYMBOL vmlinux 0xbacb013d rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xbb0b022c vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0xbb158516 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xbb165ba3 km_query +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb3b498a scsi_remove_host +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb72d4fe __put_user_1 +EXPORT_SYMBOL vmlinux 0xbb781a16 register_netdevice +EXPORT_SYMBOL vmlinux 0xbb79c43e jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0xbb9584fb filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbb6f993 sock_sendmsg +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbc02a194 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0xbc10dd97 __put_user_4 +EXPORT_SYMBOL vmlinux 0xbc1626f7 get_sb_bdev +EXPORT_SYMBOL vmlinux 0xbc187db3 netif_rx_ni +EXPORT_SYMBOL vmlinux 0xbc2e1e5d dma_alloc_coherent +EXPORT_SYMBOL vmlinux 0xbc3de5b1 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xbc4650ed netif_device_detach +EXPORT_SYMBOL vmlinux 0xbc4d2c8b generic_setxattr +EXPORT_SYMBOL vmlinux 0xbc677b9a posix_lock_file +EXPORT_SYMBOL vmlinux 0xbc763cd9 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xbceaabe9 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xbd0a8d91 kill_litter_super +EXPORT_SYMBOL vmlinux 0xbd1e2b5d pskb_expand_head +EXPORT_SYMBOL vmlinux 0xbd26b186 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0xbd4e50e6 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xbd5a2793 __devm_request_region +EXPORT_SYMBOL vmlinux 0xbd69e9fd snd_pcm_lib_free_pages +EXPORT_SYMBOL vmlinux 0xbd99a4d7 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xbdcbc100 mod_timer +EXPORT_SYMBOL vmlinux 0xbdd6b986 zero_fill_bio +EXPORT_SYMBOL vmlinux 0xbdec0db2 omap_readb +EXPORT_SYMBOL vmlinux 0xbdf2580d __raw_readsl +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe174db8 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0xbe1a89ef get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0xbe4700ff blkdev_fsync +EXPORT_SYMBOL vmlinux 0xbe54f877 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xbe5ce865 bioset_create +EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource +EXPORT_SYMBOL vmlinux 0xbe70a8ea skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xbed3cbec nand_scan_bbt +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf08eb18 lock_sock_nested +EXPORT_SYMBOL vmlinux 0xbf08fa47 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xbf1faebe mutex_trylock +EXPORT_SYMBOL vmlinux 0xbf2409ca send_sig_info +EXPORT_SYMBOL vmlinux 0xbf515d3c lock_sock_fast +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8dbcb9 simple_unlink +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfd39a58 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff52f09 bh_submit_read +EXPORT_SYMBOL vmlinux 0xc01ddecb scsi_print_sense +EXPORT_SYMBOL vmlinux 0xc02cf69b clkdev_drop +EXPORT_SYMBOL vmlinux 0xc047bc3f omap_mcbsp_spi_master_recv_word_poll +EXPORT_SYMBOL vmlinux 0xc0519bc8 mpage_writepage +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc06ec2c8 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xc0802e6d journal_dirty_data +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc0858f16 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xc0957553 bdi_destroy +EXPORT_SYMBOL vmlinux 0xc0a33de5 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xc0a6a8c5 omap_set_dma_dest_burst_mode +EXPORT_SYMBOL vmlinux 0xc0b0538e tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xc0b94d00 tcp_close +EXPORT_SYMBOL vmlinux 0xc0bdcd36 scsi_finish_command +EXPORT_SYMBOL vmlinux 0xc0cf95f9 omap_vrfb_request_ctx +EXPORT_SYMBOL vmlinux 0xc0dd1a93 ip_getsockopt +EXPORT_SYMBOL vmlinux 0xc0e88118 dma_async_device_register +EXPORT_SYMBOL vmlinux 0xc0e91c84 notify_change +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc15ee062 elv_register_queue +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 0xc16d8df7 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0xc1728c7e blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xc174d7db wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0xc17b6a0e try_wait_for_completion +EXPORT_SYMBOL vmlinux 0xc18a526d bd_set_size +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1d0b292 snd_component_add +EXPORT_SYMBOL vmlinux 0xc1e4706d unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xc1fc4511 _test_and_change_bit_le +EXPORT_SYMBOL vmlinux 0xc205cff6 snd_pcm_new +EXPORT_SYMBOL vmlinux 0xc24c6e48 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc264233f dm_exception_store_type_register +EXPORT_SYMBOL vmlinux 0xc27487dd __bug +EXPORT_SYMBOL vmlinux 0xc2782ed3 netif_notify_peers +EXPORT_SYMBOL vmlinux 0xc29d78be generic_write_end +EXPORT_SYMBOL vmlinux 0xc2ae1ff3 dev_disable_lro +EXPORT_SYMBOL vmlinux 0xc2ae2c1d dquot_quota_on_path +EXPORT_SYMBOL vmlinux 0xc2b1211c blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xc2cad323 d_rehash +EXPORT_SYMBOL vmlinux 0xc2cf6411 snd_timer_notify +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e058a4 idr_get_new_above +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2e66539 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xc344182b bdev_stack_limits +EXPORT_SYMBOL vmlinux 0xc347ee4f xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xc349fe33 blk_remove_plug +EXPORT_SYMBOL vmlinux 0xc359fb65 abort +EXPORT_SYMBOL vmlinux 0xc362dfa4 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0xc36659ab tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0xc36756ec rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xc3696d10 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0xc36e8929 open_by_devnum +EXPORT_SYMBOL vmlinux 0xc37c36e1 omap_writeb +EXPORT_SYMBOL vmlinux 0xc39c4536 kernel_getsockname +EXPORT_SYMBOL vmlinux 0xc3c0f659 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3e59096 arp_tbl +EXPORT_SYMBOL vmlinux 0xc3ec86d3 block_prepare_write +EXPORT_SYMBOL vmlinux 0xc3f89c2d audit_log_end +EXPORT_SYMBOL vmlinux 0xc4280422 nla_reserve +EXPORT_SYMBOL vmlinux 0xc45ef616 idr_for_each +EXPORT_SYMBOL vmlinux 0xc46c2b69 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xc47ea3a9 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4a4a3ab snd_pcm_suspend_all +EXPORT_SYMBOL vmlinux 0xc4c248b9 ___ratelimit +EXPORT_SYMBOL vmlinux 0xc4c945e6 bio_split +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 0xc5067ad0 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xc51a00af splice_direct_to_actor +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 0xc53fba57 nf_log_packet +EXPORT_SYMBOL vmlinux 0xc54d6d96 kobject_set_name +EXPORT_SYMBOL vmlinux 0xc56879aa inet_ioctl +EXPORT_SYMBOL vmlinux 0xc5713c1f vmap +EXPORT_SYMBOL vmlinux 0xc57745da abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xc57bd344 unregister_qdisc +EXPORT_SYMBOL vmlinux 0xc580d168 module_refcount +EXPORT_SYMBOL vmlinux 0xc5af0022 generic_file_open +EXPORT_SYMBOL vmlinux 0xc5bf3ed7 ip6_route_output +EXPORT_SYMBOL vmlinux 0xc5e820e7 xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0xc6126d60 vm_insert_page +EXPORT_SYMBOL vmlinux 0xc6184045 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xc634cd41 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0xc64c2192 sock_i_uid +EXPORT_SYMBOL vmlinux 0xc66c012e scsi_unregister +EXPORT_SYMBOL vmlinux 0xc67d69d9 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xc6cf99be scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xc6d37b7e nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0xc6d533e1 down_read +EXPORT_SYMBOL vmlinux 0xc7002e91 generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc725db6c sock_wmalloc +EXPORT_SYMBOL vmlinux 0xc72d8b0f dma_sync_wait +EXPORT_SYMBOL vmlinux 0xc743e168 __lock_page +EXPORT_SYMBOL vmlinux 0xc7484d53 snd_timer_pause +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7b4aa1c sock_no_accept +EXPORT_SYMBOL vmlinux 0xc7d2c62d mmc_power_save_host +EXPORT_SYMBOL vmlinux 0xc7e2ece3 skb_append +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc7eee87e get_mem_type +EXPORT_SYMBOL vmlinux 0xc8033012 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc866bf8f find_get_pages_tag +EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0xc88ba252 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0xc89402bb tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xc89ac142 serio_unregister_port +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8bc70f3 vfs_rmdir +EXPORT_SYMBOL vmlinux 0xc8bf99be iget_locked +EXPORT_SYMBOL vmlinux 0xc8d35f68 kobject_init +EXPORT_SYMBOL vmlinux 0xc8dc1ec1 dquot_scan_active +EXPORT_SYMBOL vmlinux 0xc8fc7117 register_con_driver +EXPORT_SYMBOL vmlinux 0xc90109ec unregister_cdrom +EXPORT_SYMBOL vmlinux 0xc913b37e sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xc9142293 omap_dss_ntsc_timings +EXPORT_SYMBOL vmlinux 0xc9161a57 down_interruptible +EXPORT_SYMBOL vmlinux 0xc91c0970 kern_path +EXPORT_SYMBOL vmlinux 0xc9241c9c mdiobus_scan +EXPORT_SYMBOL vmlinux 0xc94425b6 lro_receive_frags +EXPORT_SYMBOL vmlinux 0xc9450996 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xc94595f0 omap_chip_is +EXPORT_SYMBOL vmlinux 0xc959cccd generic_file_fsync +EXPORT_SYMBOL vmlinux 0xc95c8329 scsi_scan_host +EXPORT_SYMBOL vmlinux 0xc980ffaa snd_pcm_hw_param_first +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9d68abb sk_stop_timer +EXPORT_SYMBOL vmlinux 0xca221d05 max8925_reg_read +EXPORT_SYMBOL vmlinux 0xca559580 netif_rx +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca9822fe tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0xca99f7d0 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0xcab17e69 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xcabe48d3 module_layout +EXPORT_SYMBOL vmlinux 0xcad4a525 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0xcad54d76 neigh_parms_release +EXPORT_SYMBOL vmlinux 0xcad63d8d proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xcade3e33 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0xcaf727c7 snd_timer_interrupt +EXPORT_SYMBOL vmlinux 0xcafb807f proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xcafee3cf __blockdev_direct_IO +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 0xcba4ef6f submit_bio +EXPORT_SYMBOL vmlinux 0xcbe61134 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xcbea8984 del_gendisk +EXPORT_SYMBOL vmlinux 0xcbee2160 __nla_put +EXPORT_SYMBOL vmlinux 0xcbf29853 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc2d279c iunique +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 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 0xccd8f563 generic_fillattr +EXPORT_SYMBOL vmlinux 0xccda8b32 bio_integrity_free +EXPORT_SYMBOL vmlinux 0xccea98f4 md_done_sync +EXPORT_SYMBOL vmlinux 0xccf8f9a3 generic_show_options +EXPORT_SYMBOL vmlinux 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL vmlinux 0xcd0cbd3b bdi_unregister +EXPORT_SYMBOL vmlinux 0xcd30b95a tmio_core_mmc_clk_div +EXPORT_SYMBOL vmlinux 0xcd4b732f bit_waitqueue +EXPORT_SYMBOL vmlinux 0xcd63c845 __aeabi_lasr +EXPORT_SYMBOL vmlinux 0xcd72b972 vfs_symlink +EXPORT_SYMBOL vmlinux 0xcd8343f2 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xcd8e8835 inode_init_once +EXPORT_SYMBOL vmlinux 0xcda1542a scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0xcdbcb614 snd_jack_new +EXPORT_SYMBOL vmlinux 0xcdc0c2a0 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0xcdd1b6a4 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xcde06e18 __page_symlink +EXPORT_SYMBOL vmlinux 0xcdfc5266 omapfb_update_window +EXPORT_SYMBOL vmlinux 0xce14dad2 rtnl_notify +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 0xce448d73 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce76bc52 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xce7ed430 dev_mc_del +EXPORT_SYMBOL vmlinux 0xced93186 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf014fa1 d_move +EXPORT_SYMBOL vmlinux 0xcf1a86f4 simple_link +EXPORT_SYMBOL vmlinux 0xcf2a5866 unregister_netdev +EXPORT_SYMBOL vmlinux 0xcf39fcdf cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xcf3bf95e dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0xcf4a8cfc genphy_suspend +EXPORT_SYMBOL vmlinux 0xcf514c00 filp_open +EXPORT_SYMBOL vmlinux 0xcf58b56a udp_poll +EXPORT_SYMBOL vmlinux 0xcf5c3c76 mii_nway_restart +EXPORT_SYMBOL vmlinux 0xcf69a446 scsi_register +EXPORT_SYMBOL vmlinux 0xcf7f9ea7 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xcf87c1ab ip_dev_find +EXPORT_SYMBOL vmlinux 0xcfa95adf snd_pcm_new_stream +EXPORT_SYMBOL vmlinux 0xcfae6aeb set_device_ro +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd0303f7d tty_write_room +EXPORT_SYMBOL vmlinux 0xd0314029 inet6_bind +EXPORT_SYMBOL vmlinux 0xd034c732 arp_broken_ops +EXPORT_SYMBOL vmlinux 0xd0551685 write_one_page +EXPORT_SYMBOL vmlinux 0xd06a2943 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xd071a2b8 amba_request_regions +EXPORT_SYMBOL vmlinux 0xd08b53a8 blkdev_get +EXPORT_SYMBOL vmlinux 0xd08b5dab qdisc_destroy +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL vmlinux 0xd0c623a8 scm_fp_dup +EXPORT_SYMBOL vmlinux 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0efa441 __dquot_transfer +EXPORT_SYMBOL vmlinux 0xd0fa6fb1 generic_write_sync +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd10ae58c snd_pcm_set_sync +EXPORT_SYMBOL vmlinux 0xd1157735 release_and_free_resource +EXPORT_SYMBOL vmlinux 0xd123c709 block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xd12ad172 blk_queue_free_tags +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 0xd1c70aa1 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0xd224b084 igrab +EXPORT_SYMBOL vmlinux 0xd2283512 tcp_proc_register +EXPORT_SYMBOL vmlinux 0xd2352b27 cdev_alloc +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 0xd2743d4e udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2cc8004 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0xd2d7ab60 inet_stream_ops +EXPORT_SYMBOL vmlinux 0xd2eddca3 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xd2efd3d7 kmem_cache_alloc_node_notrace +EXPORT_SYMBOL vmlinux 0xd3167273 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xd31b982e blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xd324079a input_get_keycode +EXPORT_SYMBOL vmlinux 0xd329a7f9 mdiobus_register +EXPORT_SYMBOL vmlinux 0xd353c2c6 register_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0xd357afe0 netdev_state_change +EXPORT_SYMBOL vmlinux 0xd37453bc neigh_ifdown +EXPORT_SYMBOL vmlinux 0xd37bd238 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xd3809208 journal_stop +EXPORT_SYMBOL vmlinux 0xd3953729 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xd3a1ee6f tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xd3a5c978 simple_transaction_get +EXPORT_SYMBOL vmlinux 0xd3dbfbc4 _find_first_zero_bit_le +EXPORT_SYMBOL vmlinux 0xd3f22464 journal_ack_err +EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource +EXPORT_SYMBOL vmlinux 0xd41eb350 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0xd4348112 load_nls +EXPORT_SYMBOL vmlinux 0xd458e8b9 __free_pages +EXPORT_SYMBOL vmlinux 0xd46356b9 dma_find_channel +EXPORT_SYMBOL vmlinux 0xd48ea76e uart_add_one_port +EXPORT_SYMBOL vmlinux 0xd4fb4ccf dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xd502e979 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0xd50ed78c scsi_print_command +EXPORT_SYMBOL vmlinux 0xd51116ad tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0xd5152710 sg_next +EXPORT_SYMBOL vmlinux 0xd522756e iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd532cfe5 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xd54d922f blkdev_put +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 0xd5761a1b tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xd57eada1 inode_permission +EXPORT_SYMBOL vmlinux 0xd5978315 fb_set_var +EXPORT_SYMBOL vmlinux 0xd5ac67a2 get_gendisk +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5b63560 sound_class +EXPORT_SYMBOL vmlinux 0xd5e0dbf7 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0xd5f25853 fb_class +EXPORT_SYMBOL vmlinux 0xd624fe98 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd64f76ef md_barrier_request +EXPORT_SYMBOL vmlinux 0xd65ed683 generic_setattr +EXPORT_SYMBOL vmlinux 0xd65fdabd snd_pcm_open_substream +EXPORT_SYMBOL vmlinux 0xd67304f2 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0xd688c693 log_wait_commit +EXPORT_SYMBOL vmlinux 0xd69a3ab0 proc_mkdir +EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xd6b306a4 d_invalidate +EXPORT_SYMBOL vmlinux 0xd6c7b262 ip6_xmit +EXPORT_SYMBOL vmlinux 0xd6c96da7 backlight_device_register +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd715e131 napi_complete +EXPORT_SYMBOL vmlinux 0xd76b44d6 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xd76d242e clk_register +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd79e050c page_symlink +EXPORT_SYMBOL vmlinux 0xd7cc303d omap_mcbsp_set_io_type +EXPORT_SYMBOL vmlinux 0xd7db63ec blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd847e057 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user +EXPORT_SYMBOL vmlinux 0xd84fce34 ilookup +EXPORT_SYMBOL vmlinux 0xd877fc91 set_bh_page +EXPORT_SYMBOL vmlinux 0xd88111fa __brelse +EXPORT_SYMBOL vmlinux 0xd88428fb skb_unlink +EXPORT_SYMBOL vmlinux 0xd888c82f generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xd8891f8e simple_statfs +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8b59e93 __pagevec_release +EXPORT_SYMBOL vmlinux 0xd8bfe7a7 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xd8caca7e neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xd8e48148 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8f68883 omap_mcbsp_pollread +EXPORT_SYMBOL vmlinux 0xd9070d70 security_inode_init_security +EXPORT_SYMBOL vmlinux 0xd9298bde mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd92afae5 tty_set_operations +EXPORT_SYMBOL vmlinux 0xd92dcdcd scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xd9490567 open_exec +EXPORT_SYMBOL vmlinux 0xd955d2b7 omap_set_dma_dest_data_pack +EXPORT_SYMBOL vmlinux 0xd96a8799 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xd96ff587 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd99745ee page_put_link +EXPORT_SYMBOL vmlinux 0xd9aa27a2 mempool_create_node +EXPORT_SYMBOL vmlinux 0xd9baaecc ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xd9c0505c __dquot_free_space +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xd9e044ab tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda1f7b34 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xda4b099c unlock_new_inode +EXPORT_SYMBOL vmlinux 0xda5ea696 _test_and_set_bit_le +EXPORT_SYMBOL vmlinux 0xda6e0fcb vfs_mknod +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda838234 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xda8a5661 snd_ctl_unregister_ioctl +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xdaa01c14 journal_revoke +EXPORT_SYMBOL vmlinux 0xdaaf15d0 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xdabecbbc bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0xdac1d544 __dst_free +EXPORT_SYMBOL vmlinux 0xdadac322 serio_open +EXPORT_SYMBOL vmlinux 0xdaf27031 path_lookup +EXPORT_SYMBOL vmlinux 0xdb07e2e7 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0xdb1430be ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xdb14b331 nf_hook_slow +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 0xdb9e6665 scsi_target_resume +EXPORT_SYMBOL vmlinux 0xdbba3c73 sock_wake_async +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 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc2be946 neigh_destroy +EXPORT_SYMBOL vmlinux 0xdc316965 netpoll_setup +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc5f2f7d datagram_poll +EXPORT_SYMBOL vmlinux 0xdc73da5d give_up_console +EXPORT_SYMBOL vmlinux 0xdc743e29 omap_dss_get_overlay_manager +EXPORT_SYMBOL vmlinux 0xdc798d37 __mutex_init +EXPORT_SYMBOL vmlinux 0xdc934b5d km_new_mapping +EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcf64933 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd0b39dd do_splice_from +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd47b8e0 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0xdd4b48f8 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xdd90085e find_vma +EXPORT_SYMBOL vmlinux 0xddb3a22f htc_egpio_get_wakeup_irq +EXPORT_SYMBOL vmlinux 0xddbbe36b sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xdddcbd99 empty_zero_page +EXPORT_SYMBOL vmlinux 0xdddd014c simple_dir_operations +EXPORT_SYMBOL vmlinux 0xddf6fdb6 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xde101624 default_file_splice_read +EXPORT_SYMBOL vmlinux 0xde15c042 omap_set_dma_src_index +EXPORT_SYMBOL vmlinux 0xde2b0381 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xde3c68a6 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xde692d94 omap_get_dma_chain_src_pos +EXPORT_SYMBOL vmlinux 0xde6a5134 scsi_host_get +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xdebf864c __netif_schedule +EXPORT_SYMBOL vmlinux 0xdec56680 __scsi_put_command +EXPORT_SYMBOL vmlinux 0xdee56408 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0xdf0490b1 snd_pcm_hw_rule_add +EXPORT_SYMBOL vmlinux 0xdf3de96d dev_gro_receive +EXPORT_SYMBOL vmlinux 0xdf3ed3e2 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf535e8f vfs_rename +EXPORT_SYMBOL vmlinux 0xdf5ffa43 filemap_fault +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf6ea200 simple_rmdir +EXPORT_SYMBOL vmlinux 0xdf7784c6 netpoll_send_skb +EXPORT_SYMBOL vmlinux 0xdf8a85b4 insert_inode_locked +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf963ba5 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xdf9b9db2 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xdfb01a80 cpu_v7_dcache_clean_area +EXPORT_SYMBOL vmlinux 0xdfbdfa04 blk_sync_queue +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfd91ce9 omap_type +EXPORT_SYMBOL vmlinux 0xe0029ea0 serio_reconnect +EXPORT_SYMBOL vmlinux 0xe0304777 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0xe032e3d6 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0xe0351942 tcp_prot +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe08a4aee journal_set_features +EXPORT_SYMBOL vmlinux 0xe09f00bf dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xe0a3704b blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort +EXPORT_SYMBOL vmlinux 0xe0ca1b9e set_bdi_congested +EXPORT_SYMBOL vmlinux 0xe106154f omap_vram_get_info +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe114965f __bio_clone +EXPORT_SYMBOL vmlinux 0xe11f6879 md_register_thread +EXPORT_SYMBOL vmlinux 0xe1264ba7 filp_close +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 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe18b821b journal_clear_err +EXPORT_SYMBOL vmlinux 0xe1a1768f eth_validate_addr +EXPORT_SYMBOL vmlinux 0xe1af3078 sk_stream_error +EXPORT_SYMBOL vmlinux 0xe1b10d05 __destroy_inode +EXPORT_SYMBOL vmlinux 0xe1cf33e8 set_create_files_as +EXPORT_SYMBOL vmlinux 0xe1e1705f proc_symlink +EXPORT_SYMBOL vmlinux 0xe20c9214 snd_iprintf +EXPORT_SYMBOL vmlinux 0xe222bb71 dm_put_device +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe2493006 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe24f9847 nobh_write_begin +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 0xe28482ce inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xe2a07dab security_inode_readlink +EXPORT_SYMBOL vmlinux 0xe2c9fc12 __register_chrdev +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2eeee57 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe2fc332b ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0xe30949ea inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xe3118f2e dev_open +EXPORT_SYMBOL vmlinux 0xe319ea47 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xe327a100 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xe36aa275 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xe37d10ae omap_dispc_unregister_isr +EXPORT_SYMBOL vmlinux 0xe3b7ec80 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xe3ba608e unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xe3c8b158 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xe3e686e9 page_follow_link_light +EXPORT_SYMBOL vmlinux 0xe3fea976 display_device_register +EXPORT_SYMBOL vmlinux 0xe4067241 vlan_gro_receive +EXPORT_SYMBOL vmlinux 0xe424a5d6 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xe42fb5ca aio_put_req +EXPORT_SYMBOL vmlinux 0xe4c80097 cacheid +EXPORT_SYMBOL vmlinux 0xe4ea1580 pipe_lock +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe51b0fc3 ipv4_specific +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe52dd6ae tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xe52ff409 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xe53ed6bc snd_jack_set_parent +EXPORT_SYMBOL vmlinux 0xe5445af6 omap_get_dma_dst_pos +EXPORT_SYMBOL vmlinux 0xe55e144a proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xe5641b3f dquot_initialize +EXPORT_SYMBOL vmlinux 0xe564d9e4 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5787a78 iput +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 0xe5cbc2b1 module_put +EXPORT_SYMBOL vmlinux 0xe5d454e8 noop_qdisc +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5ed8779 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xe5f6b150 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xe5fd7a9b simple_set_mnt +EXPORT_SYMBOL vmlinux 0xe6131722 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL vmlinux 0xe6242164 rtnl_create_link +EXPORT_SYMBOL vmlinux 0xe632e3d5 scsi_prep_return +EXPORT_SYMBOL vmlinux 0xe63b97cf do_splice_to +EXPORT_SYMBOL vmlinux 0xe647c686 gpmc_prefetch_enable +EXPORT_SYMBOL vmlinux 0xe6511b03 d_find_alias +EXPORT_SYMBOL vmlinux 0xe6744a89 omap_clear_dma +EXPORT_SYMBOL vmlinux 0xe690b8fd __ipv6_isatap_ifid +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6a1dfa9 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xe6a2b2c2 dma_alloc_writecombine +EXPORT_SYMBOL vmlinux 0xe6a528d7 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xe6c3ebb0 __raw_writesw +EXPORT_SYMBOL vmlinux 0xe6cc3b60 clk_get_rate +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6faffd2 sk_wait_data +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe707d823 __aeabi_uidiv +EXPORT_SYMBOL vmlinux 0xe70ce532 skb_checksum +EXPORT_SYMBOL vmlinux 0xe70d571f make_bad_inode +EXPORT_SYMBOL vmlinux 0xe7109a4a __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xe73d0fde sleep_on +EXPORT_SYMBOL vmlinux 0xe74ad483 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xe75f3919 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xe7700cc6 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xe78fc6b6 fsnotify_destroy_mark_by_entry +EXPORT_SYMBOL vmlinux 0xe7a5de3e skb_gso_segment +EXPORT_SYMBOL vmlinux 0xe7cb90ef dmam_release_declared_memory +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 0xe82743f9 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xe82a5154 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xe837417c scsi_register_driver +EXPORT_SYMBOL vmlinux 0xe8456829 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xe86a3453 snd_pcm_release_substream +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe87ed1ce idr_replace +EXPORT_SYMBOL vmlinux 0xe8886cee __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xe88fe9b6 ps2_init +EXPORT_SYMBOL vmlinux 0xe8a35ff6 seq_escape +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe9319037 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xe936f336 mdiobus_read +EXPORT_SYMBOL vmlinux 0xe93dd9aa blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0xe94e41a6 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0xe95a7e3c snd_cards +EXPORT_SYMBOL vmlinux 0xe96ab259 xfrm_lookup +EXPORT_SYMBOL vmlinux 0xe978f5d3 find_lock_page +EXPORT_SYMBOL vmlinux 0xe98a87f1 dcache_lock +EXPORT_SYMBOL vmlinux 0xe9a6dab1 scsi_init_io +EXPORT_SYMBOL vmlinux 0xe9bab882 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0xe9cd246b mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xe9ce8b95 omap_ioremap +EXPORT_SYMBOL vmlinux 0xe9d6705f dquot_set_dqblk +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 0xea1efc85 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0xea2d33a2 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0xea3f8651 abx500_mask_and_set_register_interruptible +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 0xeaacb9fa invalidate_inodes +EXPORT_SYMBOL vmlinux 0xeabb98a6 snd_card_proc_new +EXPORT_SYMBOL vmlinux 0xeada4579 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xeae2aef6 blk_rq_init +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeb0eb62d sock_kfree_s +EXPORT_SYMBOL vmlinux 0xeb1026be free_task +EXPORT_SYMBOL vmlinux 0xeb1b120e omap_set_dma_write_mode +EXPORT_SYMBOL vmlinux 0xeb23bd51 dev_mc_add +EXPORT_SYMBOL vmlinux 0xeb2d7e23 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0xeb33e6d9 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0xeb3f14b4 simple_transaction_set +EXPORT_SYMBOL vmlinux 0xeb495f4a elv_queue_empty +EXPORT_SYMBOL vmlinux 0xeb6f03c6 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xeb7cab35 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n +EXPORT_SYMBOL vmlinux 0xeb94cf03 blk_init_queue +EXPORT_SYMBOL vmlinux 0xeb989683 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0xebafc57d ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0xebba1c76 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0xebbfb8eb blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull +EXPORT_SYMBOL vmlinux 0xebe21f72 input_get_keycode_big +EXPORT_SYMBOL vmlinux 0xebed6ae0 cont_write_begin +EXPORT_SYMBOL vmlinux 0xebf392bd uart_update_timeout +EXPORT_SYMBOL vmlinux 0xebfbb042 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xebfdcbdf system_serial_high +EXPORT_SYMBOL vmlinux 0xec109fb7 journal_check_used_features +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec57cd86 set_page_dirty +EXPORT_SYMBOL vmlinux 0xec6a4d04 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0xecb1f38d key_revoke +EXPORT_SYMBOL vmlinux 0xeceae1e0 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xed01f48d alloc_tty_driver +EXPORT_SYMBOL vmlinux 0xed0c4663 tcf_exts_change +EXPORT_SYMBOL vmlinux 0xed13e6f1 cdev_init +EXPORT_SYMBOL vmlinux 0xed1b3d4f xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0xed3a89ca xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xed4f4a33 bio_put +EXPORT_SYMBOL vmlinux 0xed854dac omap_stop_dma_chain_transfers +EXPORT_SYMBOL vmlinux 0xed9ebb5b set_user_nice +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedd9106d __ashrdi3 +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee4e94fe snd_timer_new +EXPORT_SYMBOL vmlinux 0xee705a80 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xee975681 dst_discard +EXPORT_SYMBOL vmlinux 0xee9a1678 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xeea1dc00 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0xeea6b557 tty_register_driver +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb11c0c __bread +EXPORT_SYMBOL vmlinux 0xeeb48879 input_unregister_handle +EXPORT_SYMBOL vmlinux 0xeed1569f uart_unregister_driver +EXPORT_SYMBOL vmlinux 0xeedfd5cf __seq_open_private +EXPORT_SYMBOL vmlinux 0xeeeadd9a jbd2_journal_start +EXPORT_SYMBOL vmlinux 0xeeed6d53 __getblk +EXPORT_SYMBOL vmlinux 0xeef2e562 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xeefab4b4 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xef0794c6 dmam_pool_create +EXPORT_SYMBOL vmlinux 0xef14923d lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0xef560bea vfs_follow_link +EXPORT_SYMBOL vmlinux 0xef63889a generic_file_llseek_unlocked +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 0xefec312f omap_get_dma_active_status +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf001716d dcache_readdir +EXPORT_SYMBOL vmlinux 0xf007bc84 cdrom_open +EXPORT_SYMBOL vmlinux 0xf01f087c __lookup_one_len +EXPORT_SYMBOL vmlinux 0xf023dc4b lookup_one_len +EXPORT_SYMBOL vmlinux 0xf034f4c1 dev_get_by_name +EXPORT_SYMBOL vmlinux 0xf057ca69 simple_lookup +EXPORT_SYMBOL vmlinux 0xf0808e76 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0xf0d72680 neigh_table_init +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 0xf102809c nf_unregister_hook +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf136c279 add_timer +EXPORT_SYMBOL vmlinux 0xf1505cbe audit_log_start +EXPORT_SYMBOL vmlinux 0xf1569a35 __ps2_command +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf17bf6f8 security_path_truncate +EXPORT_SYMBOL vmlinux 0xf18286e2 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0xf183ab3e blk_stop_queue +EXPORT_SYMBOL vmlinux 0xf1844941 thaw_super +EXPORT_SYMBOL vmlinux 0xf1866036 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf198acf6 sock_update_classid +EXPORT_SYMBOL vmlinux 0xf1a0b687 kthread_stop +EXPORT_SYMBOL vmlinux 0xf1a3c919 omap_mcbsp_set_tx_threshold +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1f6e6a5 snd_timer_close +EXPORT_SYMBOL vmlinux 0xf2059687 snd_timer_start +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf211ba9c cdev_add +EXPORT_SYMBOL vmlinux 0xf213947a elv_abort_queue +EXPORT_SYMBOL vmlinux 0xf21ac8ff snd_timer_global_register +EXPORT_SYMBOL vmlinux 0xf21ef718 alloc_file +EXPORT_SYMBOL vmlinux 0xf25671d7 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xf26a510f mmc_register_driver +EXPORT_SYMBOL vmlinux 0xf26df746 omap_vram_free +EXPORT_SYMBOL vmlinux 0xf27e60c5 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0xf28e1e3e omap_st_disable +EXPORT_SYMBOL vmlinux 0xf29084d6 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2c25d81 blk_put_request +EXPORT_SYMBOL vmlinux 0xf2c75063 snd_mixer_oss_notify_callback +EXPORT_SYMBOL vmlinux 0xf2ff40a7 inet_bind +EXPORT_SYMBOL vmlinux 0xf30793c7 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf31a712e ppp_input_error +EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name +EXPORT_SYMBOL vmlinux 0xf328af22 neigh_connected_output +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 0xf34a59ec register_console +EXPORT_SYMBOL vmlinux 0xf34bd4aa dm_dirty_log_create +EXPORT_SYMBOL vmlinux 0xf34fccde scsi_host_set_state +EXPORT_SYMBOL vmlinux 0xf35ba525 file_fsync +EXPORT_SYMBOL vmlinux 0xf35c91ba blk_requeue_request +EXPORT_SYMBOL vmlinux 0xf365ac79 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL vmlinux 0xf38122fa sock_create +EXPORT_SYMBOL vmlinux 0xf388f7a1 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf38e7cc0 find_or_create_page +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf3a53310 dev_addr_flush +EXPORT_SYMBOL vmlinux 0xf3b1bbc0 bio_unmap_user +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3e16e41 submit_bh +EXPORT_SYMBOL vmlinux 0xf3eb34b7 abort_creds +EXPORT_SYMBOL vmlinux 0xf3f92fed splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xf4053811 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xf40ff09f dm_exception_store_create +EXPORT_SYMBOL vmlinux 0xf4399a5c vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xf45dc304 sockfd_lookup +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf4dfcfe3 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f64044 generic_getxattr +EXPORT_SYMBOL vmlinux 0xf4fac1cf uart_suspend_port +EXPORT_SYMBOL vmlinux 0xf5164b60 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xf535fde4 mmc_detect_change +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 0xf564412a __aeabi_ulcmp +EXPORT_SYMBOL vmlinux 0xf56b51ed dm_table_event +EXPORT_SYMBOL vmlinux 0xf56d2b77 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xf578fb01 get_sb_nodev +EXPORT_SYMBOL vmlinux 0xf58fb355 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0xf599cf29 lookup_bdev +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 0xf5db10ef kill_fasync +EXPORT_SYMBOL vmlinux 0xf5e1199c i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf6288e02 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0xf671b0be dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xf6858225 snd_pcm_suspend +EXPORT_SYMBOL vmlinux 0xf6960016 create_proc_entry +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6c387b7 km_report +EXPORT_SYMBOL vmlinux 0xf6d7e5d6 snd_pcm_link_rwlock +EXPORT_SYMBOL vmlinux 0xf6e6df12 skb_seq_read +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6ef04ee jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xf6f3cef6 omap_vrfb_setup +EXPORT_SYMBOL vmlinux 0xf71be213 xfrm_register_km +EXPORT_SYMBOL vmlinux 0xf7249ca6 __f_setown +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 0xf76d555c sock_no_poll +EXPORT_SYMBOL vmlinux 0xf77bdcb2 registered_fb +EXPORT_SYMBOL vmlinux 0xf7802486 __aeabi_uidivmod +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf79e157c sk_dst_check +EXPORT_SYMBOL vmlinux 0xf7acde6e sk_reset_timer +EXPORT_SYMBOL vmlinux 0xf7c61815 get_omap3_evm_rev +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf853bbca omap_vrfb_map_angle +EXPORT_SYMBOL vmlinux 0xf85602a2 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xf8690b1e fasync_helper +EXPORT_SYMBOL vmlinux 0xf88c3301 sg_init_table +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf8a44883 dcache_dir_open +EXPORT_SYMBOL vmlinux 0xf8a58025 dquot_destroy +EXPORT_SYMBOL vmlinux 0xf8fbb4f0 __bad_xchg +EXPORT_SYMBOL vmlinux 0xf90c155d init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0xf92166eb ps2_end_command +EXPORT_SYMBOL vmlinux 0xf934ba25 dqput +EXPORT_SYMBOL vmlinux 0xf94c4c3c d_genocide +EXPORT_SYMBOL vmlinux 0xf955c4a7 set_anon_super +EXPORT_SYMBOL vmlinux 0xf99aecac blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9be08f9 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xf9c3a1a3 ilookup5 +EXPORT_SYMBOL vmlinux 0xf9c48e39 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xf9d2077e kernel_listen +EXPORT_SYMBOL vmlinux 0xf9df2a5f uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xf9e48403 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xf9f64140 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xfa1781c2 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xfa1bfd2b irq_stat +EXPORT_SYMBOL vmlinux 0xfa22f52a dm_io_client_resize +EXPORT_SYMBOL vmlinux 0xfa3c43fa netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0xfac68eba arm_elf_read_implies_exec +EXPORT_SYMBOL vmlinux 0xfad06e5d jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xfae705c5 unregister_md_personality +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfafaf1a4 scm_detach_fds +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 0xfb34e0f6 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb70ef30 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0xfb7d9c45 __udivsi3 +EXPORT_SYMBOL vmlinux 0xfba3afb2 free_buffer_head +EXPORT_SYMBOL vmlinux 0xfbbe1cd5 kick_iocb +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 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc098338 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xfc14f9b1 eth_type_trans +EXPORT_SYMBOL vmlinux 0xfc1d899a inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0xfc2868ee inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc508715 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0xfc580ee8 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xfc710596 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xfc76ef6b generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xfc9cafab sock_no_getname +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcbe8d12 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states +EXPORT_SYMBOL vmlinux 0xfce03cab skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0xfceb7500 __breadahead +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcef4007 netif_device_attach +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd195c62 omap_mcbsp_xmit_buffer +EXPORT_SYMBOL vmlinux 0xfd2b5125 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xfd2cd3ce dm_table_get_md +EXPORT_SYMBOL vmlinux 0xfd305341 walk_stackframe +EXPORT_SYMBOL vmlinux 0xfd4f6b9b d_add_ci +EXPORT_SYMBOL vmlinux 0xfd504adb dquot_drop +EXPORT_SYMBOL vmlinux 0xfd7b67ca journal_init_dev +EXPORT_SYMBOL vmlinux 0xfd8184e7 pm860x_reg_read +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 0xfde5d4d9 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0xfdee1db5 input_set_capability +EXPORT_SYMBOL vmlinux 0xfdeea9c5 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe16a05e free_netdev +EXPORT_SYMBOL vmlinux 0xfe18cbfa snd_pcm_lib_ioctl +EXPORT_SYMBOL vmlinux 0xfe225273 omap_mcbsp_recv_buffer +EXPORT_SYMBOL vmlinux 0xfe2a5bf6 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xfe368beb bioset_free +EXPORT_SYMBOL vmlinux 0xfe47cf9b snd_device_register +EXPORT_SYMBOL vmlinux 0xfe4dc5a5 tcp_check_req +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe609ba7 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xfe634f58 add_wait_queue +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe860bc5 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0xfebc698e mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfeebdfd2 cad_pid +EXPORT_SYMBOL vmlinux 0xfeec44dd mfd_add_devices +EXPORT_SYMBOL vmlinux 0xfef3c079 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff0672dd simple_readpage +EXPORT_SYMBOL vmlinux 0xff1d470b dquot_file_open +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff261096 kobject_get +EXPORT_SYMBOL vmlinux 0xff2728d9 dev_alloc_name +EXPORT_SYMBOL vmlinux 0xff2b0fa1 omap_mcbsp_get_max_rx_threshold +EXPORT_SYMBOL vmlinux 0xff301668 elevator_init +EXPORT_SYMBOL vmlinux 0xff599531 open_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xff655a7b nf_ct_attach +EXPORT_SYMBOL vmlinux 0xff67b37f __lshrdi3 +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int +EXPORT_SYMBOL vmlinux 0xff9befe8 secpath_dup +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffb9285f km_policy_notify +EXPORT_SYMBOL vmlinux 0xffd2cf99 omap_dss_get_num_overlay_managers +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xfff0c2ab snd_timer_global_free +EXPORT_SYMBOL vmlinux 0xfffc3d88 sock_rfree +EXPORT_SYMBOL vmlinux 0xffff47d1 blk_make_request +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 0xa00603ec async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xa7fd7ae4 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x61d16860 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x8cb3afaa 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 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 0x0e6c29c9 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x12c56c14 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3a803a6a ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4e13947a ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5197d855 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5d082e8f ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5f2ec594 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x78d8f001 ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8cb456f0 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb6047310 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc4d6b0e6 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xcd6d3401 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd840c09e ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xdef1a63f 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/bluetooth/btmrvl 0x159b42a3 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x1d5e8e2e btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x23e3354a btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x392977e8 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4653ade9 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7b490745 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xd65088fc btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe7649424 btmrvl_send_module_cfg_cmd +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 0x07d90e6c gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x16b3de0c gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2ca26669 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x30e0d304 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5c97225c gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6c02b323 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6c7282ec gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7a995980 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x987206eb gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa1b03426 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa9ee6240 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb187e66c gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc0b15b68 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd82365e2 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe106d8a0 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe5cf58e7 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe9a363f9 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf9053802 gigaset_if_receive +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 0x4c7fe1a3 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x8281c39f sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x8745bad7 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x8f0a83a3 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x923dfca1 sm501_unit_power +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 0x5d2015e3 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x795d33c7 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x9331967f macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xf11f1818 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xf8d251b7 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/tun 0xbf7569b5 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 0x0c403c6e rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0ffbbb65 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x130cb47d rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x17004feb rt2800_init_bbp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2eb9b63f rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3187947a rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x33e1f4d0 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x38f177e4 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4e7e20ed rt2800_rt2x00debug +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7817b008 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7a9d8c97 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8175b43f rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x846cb5e5 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x92cf1f00 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xac55464f rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaee93330 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc1e51751 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc3a514e9 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc757020b rt2800_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcec956e0 rt2800_init_rfcsr +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd5b68317 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdb514963 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdf78386c 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 0x0aa5e8ab rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x18372cc7 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1dd1f5c5 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1f310db2 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2219ff16 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2393177c rt2x00lib_beacondone +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 0x68da78b9 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x71f3ece5 rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x756f6c4c rt2x00lib_resume +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 0xb930c28a rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbce336e6 rt2x00lib_suspend +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 0xd3ca5794 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe39ea065 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe81547fd rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf492f821 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1b95f2c2 rt2x00usb_vendor_request_large_buff +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 0x3520a7f4 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3e136748 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x489cb4ec rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x52ee090b rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x62264f79 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x81c839c2 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x89d6a1ea rt2x00usb_kick_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9eeda5fe rt2x00usb_kill_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa76a6204 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc3053711 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xcbb5ee5b rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdcf52ba3 rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf13f9414 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 0x56952c12 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00ab3a63 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x010ba21e iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x028c3a4f __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0413de9c iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x11347256 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x34b12a81 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x37fe2032 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3b0d738a iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3b7d3339 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x410c2790 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4464aae3 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x45fa968e iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x473ba2ba iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x594116dc iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5b17b1e0 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x62e12c47 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6f8624cb iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7475809f iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x77c0645f iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x79eebdfc iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x918c1704 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x91d4ea94 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9437e21b iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9b2ad6e2 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xab585a58 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xae0f1970 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb2a9ed2e iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xba4e7d0b iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc91c44bd iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcee00f09 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd793b98a iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd9960bac iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdede9e1d iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdf65278c iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe01f0b44 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe11b1e35 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe63eccaf iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xecee9b79 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf6c4a905 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf8eb4077 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf8f90935 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfca45388 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x094d4583 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0c19ae06 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x17a50c6e iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x221139bb iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x24052113 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2633daa1 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x376e4975 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4ada507e iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x718f78e7 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x71a0672f iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x90ac4792 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa7fbdb10 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb4ba7e66 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xba56378d iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xda23a45d iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf92ef1f2 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x174e0b56 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1f151fc0 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1f9a7b8d sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3bbd72da sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3c691f1f sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4c66032d sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4d0e204c sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5c601998 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5ff8aaea sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6b9dda4b sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x84764e7c sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x912cbe17 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9dc68ffb sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa073634f sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb4e54e9f sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbddcfe91 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc8ee5cb2 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcdc854d0 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd66d137c sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdf41e9ac sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe20258de sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf4daa468 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfabfc1d5 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x108cbe5e scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x1c01ef0c scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4c66df7c scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x51fdd3e8 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x8677bc65 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xa8b4fc20 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd7e2ae78 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xec7200e0 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xeea4cfec scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0d25ce6d iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1362ebc9 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1ebff914 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2226f80c iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3cce6b99 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3fddff89 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4ddd6ac5 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x531df6d5 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7f18eac9 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x841a007f iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8940f362 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8f0c8e23 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa5a15543 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa85a14cd iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb73f9935 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbcd69ad7 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbdaf841d iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd25d5ea2 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdd69f683 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe36047fd iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe89c21cc iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xebb82696 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x407249c0 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x6932aac6 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xd30c5061 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xe6d4c42e sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x185e6ae2 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x40fc2ef7 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x59a5af8a srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x93b247a4 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc1b1d0a3 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 0xbf24376f 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 0x05b9c24f usbip_task_init +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x11dae3c7 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x202461c3 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x30acc889 usbip_start_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x3a12b550 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x44c75b2f 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 0x878d2a18 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xa22b3249 usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xa7d27a80 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xb7d1cbc6 usbip_stop_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xcd2ba21e usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd045ee0c usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe06ace02 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 0xee5cbba2 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xfa396cbe sockfd_to_socket +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 0x07bd59b9 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x780b773c usbatm_usb_disconnect +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 0x0337e892 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x109d9364 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x266062d9 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x29185dfd usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x419b520f usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4699057e ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x504dba53 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x77865723 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8475c454 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x87477040 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8e530541 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x96bb796a usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9e89533a usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xaa7e28e6 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb454ec30 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc07e5852 ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf2194085 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf7de6e31 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfd2ed5f5 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x02ecf3a9 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x05cd724d usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x13f141ac usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3cf832b6 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x58a6ffab usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5f69f8ca usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x665b9585 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x84bca1f6 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x91903572 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9508cbd3 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9b5578f1 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9c6ddf6a usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa4b30dc5 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xac37fa92 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbbef39d5 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbe3816ea usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbf69fef3 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcfe022ef fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd58b474b usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xdc7c2261 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xdf3694fd usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xeca35054 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf9184e4f usb_stor_set_xfer_buf +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 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 0x8e4ae2b5 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x97f94138 fat_setattr +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 0xd0256349 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xd067bb86 fat_time_unix2fat +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 0x1df57023 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x8837fb20 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 0xafa9152e nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xd0780a61 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xfe3b1318 nlmsvc_ops +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 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 0x67bd5865 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x6d656178 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9c77e2c7 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 0xb0c0e2ff o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc211b214 o2hb_unregister_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 0xfc7bd1f7 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xffb6e5ed o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x2cb444ed dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xb4061b7a dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xb9c84bc4 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xbdd57907 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc2c548f5 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xcdc04e67 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 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 0x853cd07b 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 0x8e49f2cc bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x086fc95c dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0d1feb6d dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0d8c82ce dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x159f08f2 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x17a4ebb2 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2bae05a6 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2bbc8a12 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2f9000ad dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x31324a4f dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x334c6e43 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x433441f4 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x52d919d2 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5f56d551 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6ba11f0f dccp_ctl_make_reset +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 0x927c24b4 dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00af159 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xade203ea dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xae10ee5c inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb0ed3391 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb13beb21 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbb5e983d dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbc6103d0 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xca54f888 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcc7c5df7 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd1eaab15 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe254d4af dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe6774b43 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0xec8603bd dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xef71cac1 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf6303e1c dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf8c5085d dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf9201c82 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf9a82588 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfb969066 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x0d5726a8 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x771112c1 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x79be1dd7 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x9c8261cd dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa0b9f025 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xd550835e dccp_invalid_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x62232f75 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xe4a24352 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x0b1041aa 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 0x1fe77a76 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x249c836c nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x24abeb9e nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x4f81d41c 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 0xc0c28a09 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xd3db49ee nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xd616df2f nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xfa62f193 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 0x001ea083 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x090eb06e tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x0fb8c582 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x34aa29d7 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x8cef3c1a tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x8ed923a5 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x054298cc l2tp_tunnel_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x182885df l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1c2eb7ea l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2012857f l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x62d3b0b0 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6d4d068a l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7080876f l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8d0a02d6 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x92c08a66 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9ff71f7e l2tp_xmit_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa4f7aa1c l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xaf350070 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc37b8f91 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe5929801 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe6845525 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf80dc33c l2tp_udp_recv_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf9b25ee4 l2tp_session_find_nth +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 0x424ab3e7 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4e078d4e __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x567980e4 nf_conntrack_l3proto_generic +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 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x707cd165 nf_conntrack_l4proto_udp4 +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 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 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 0xccae8905 nf_conntrack_l4proto_tcp4 +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 0xfe98eb87 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfed34cb7 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xf75467ca nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x528909f9 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0b15a5ea set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2833a054 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x36255f67 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x506465c4 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6ce85c82 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7a9de34e get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa9a03179 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc04b303b nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd06e7c4a nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd8906431 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x83e02470 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x0b0876cc nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x1b5e16a1 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x1e2a7497 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x6bd9f5c8 nf_nat_pptp_hook_exp_gre +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 0x245f711b nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2b167289 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x46a8b6bb ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4c2e30d8 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4cd1c88a ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x53307e49 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x630598d7 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x78fa2993 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x80244a4f nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9144b9d2 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xabd54575 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xcbb57d21 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf997f206 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x3924a817 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x3953bf79 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xfe314232 nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x183537a6 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x36cbabca nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5b3c5e13 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x6544fa28 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xcb4299ad nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd5e38847 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x94b6aeea nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1b634f9e xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1e5deebf xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x266e9e02 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2a3c6e63 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4eec049c xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6220c9f9 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x64189f2f xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6f93acf4 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9eca0587 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9ffdeb17 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xab54a84c xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb7171cc1 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe8fdb796 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf6eab12d xt_table_unlock +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 0x070a80fe rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x1196ed9e rds_inc_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x12ef80ae rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x1f47a2cd rds_conn_create_outgoing +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 0x334f46d6 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x48e27d79 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x492faf92 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x504b846f rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x54070f02 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x67c7b6e6 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x6bc27f14 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x6d8bf64d rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x876ed9f3 rds_connect_complete +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 0x9aa2d3a2 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0xa11b2c57 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0xb0f32bc7 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xc6e867e0 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xcb91ccbb rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0xce3f2aa6 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0xd38da1e1 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xd396c4f2 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0xea718e12 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xf0299a45 rds_inc_put +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x543b9ac4 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xb5fd8bde 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 0x06b96a57 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x232d6cdb gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x49e707a2 gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6cb6cb04 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 0x8ed1ae8a gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xaf093642 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xaf953893 gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xba31279d gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xc247e61a gss_mech_register +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 0xfaf7529e gss_mech_unregister +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 0x0a78f404 auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c1b03ad rpc_bind_new_program +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 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 0x0f9fd9c0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0fdcc162 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10a08353 svc_sock_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x127f77ad svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1307c137 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1540c634 rpc_peeraddr2str +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 0x1a4fe1f7 cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b0d22d3 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b2efb09 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1fa12768 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x224056f0 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25a5b586 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25f0508a svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29e2319e xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ac0afec xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d358f8a xprt_unregister_transport +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 0x3095294f rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x321f56d4 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x33112549 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x350ff25b xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x396f6796 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3cd912d1 auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d1bdebe rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3dc87e43 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4021a283 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40ae99bf xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x432681e2 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43b22d6d auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4523a577 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x47bfc016 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4aa90fc5 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4aaeea7f svc_exit_thread +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 0x4d2e1530 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e335087 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e4e8ff0 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f42d625 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51d59d38 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x525c379b svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53870e5f svc_sock_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x549f3d6d xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x59a9eb22 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x59beb703 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a074cbc xdr_skb_read_bits +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 0x5e48370a rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ed5be28 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62fca5d3 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63afd4c9 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64e23ac2 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67ead1cc xprt_wait_for_buffer_space +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 0x6a5f6da8 rpc_exit_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6bd4b75f rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6bf4a64f unix_domain_find +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 0x6e648377 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x72dfe3fc rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7389ac64 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x740de6fb svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75e8aca3 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76daee87 svc_create_xprt +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 0x79915ae0 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e84b3ad rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x818b38ec svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8370ebca xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x83f5d778 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84f14493 rpc_restart_call_prepare +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 0x89bc70af xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c65ed14 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c764650 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8cf75583 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8d57d027 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8d5f9a36 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e5c9500 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x950bc490 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x986e4fa4 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98b042b2 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ea8b084 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ecc565e rpc_call_start +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 0xa9775aa8 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab6daeaf xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae9d1b83 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb314149c svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5868ad5 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5fc493b rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb79742c2 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbc0a8a6b xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbcfdd70f rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd904861 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe3cc3f9 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc00b6220 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc32117fb rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4b8b6f4 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc649fee6 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc874e4df read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc977ca98 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcabad8e2 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc134ae0 svc_reg_xprt_class +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 0xcf89c14e xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd02969ca rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd15b9fd9 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2107168 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2af75d7 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6e0bdec rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdde33a6e put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe12584d5 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1d85b0a rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe82c54eb rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe914322b xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeabc9ac7 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee54e1b9 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0ca172d svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf361b2cb xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3efa051 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4c12a43 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7b8d45d svc_print_addr +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 0xfd170511 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd1750bf svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfdc6bbf3 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe22b932 xprt_reserve_xprt +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 0x1fa3959e wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2acb7886 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x3f85cf66 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x4431961d wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x4ffe2166 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x61cc3745 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x7625ed43 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x8ce73df1 wimax_msg_alloc +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 0xafd94c33 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xc6a2f59d wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xdf001ebb wimax_msg_send +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 0x0e2c2bcb ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x9e684003 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xad3dcc88 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xb93ae489 ipcomp_input +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 0x001f1d6c sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x00259bd0 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x002dd8e8 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x002e0375 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x00460395 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x0047baf9 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x0076d1cb blk_abort_request +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 0x01485e18 sata_link_hardreset +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 0x025aff38 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x0279e782 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL vmlinux 0x028e66be dm_rh_delay +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x0302b801 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x0309832e hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x0311cec1 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x03312f39 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0337f3f4 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0359c880 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x036df9d4 task_active_pid_ns +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 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x041f52b9 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x0433603b bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x04ba3bf1 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x04e51eae ata_host_register +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 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 0x0660f44d snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL vmlinux 0x066a6edd inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x0691f2ca ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x06fbc489 pcap_adc_sync +EXPORT_SYMBOL_GPL vmlinux 0x06fc72d6 __blk_put_request +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 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0830dd26 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x085e54f7 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x0878bde8 relay_close +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 0x08977711 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x08e0b79a scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x095984d9 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x095f32e8 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x098a95a6 omap_dm_timer_set_prescaler +EXPORT_SYMBOL_GPL vmlinux 0x099dbde1 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x09be5e7b crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x09c2b390 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x09e4e131 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x09f7365b kill_mtd_super +EXPORT_SYMBOL_GPL vmlinux 0x0a057864 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x0a05f274 ring_buffer_overruns +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 0x0a85f89b xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x0aa27f8b dm_rh_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b23ec89 crypto_shash_digest +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 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 0x0ce5b737 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x0d03dbdb sata_port_ops +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 0x0e5199e8 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x0e6fd964 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x0e754f44 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x0e8855c6 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x0e9f9b76 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x0ec5710e cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x0ec84a85 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x0ed40fda rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x0f5c1a18 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x0fa0be85 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x0fa32cd6 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x0fb801b6 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x0fcb1ed7 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +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 0x11e3529d ata_dev_next +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 0x12c07244 dm_unregister_path_selector +EXPORT_SYMBOL_GPL vmlinux 0x12ea2571 fuse_conn_kill +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 0x137971db rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x138a11bc blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x139210a0 register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x139b2553 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x13a35323 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13c7b366 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x13d94bdf fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x13e812ad sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x142891c2 relay_subbufs_consumed +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 0x14da3c05 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x1514718d ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x1545f4de register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x156bc818 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x15817a6a ata_cable_80wire +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 0x15badbb5 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x161800d1 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x1699e2cd fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x16f76869 probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x16fd6b75 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x17142764 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x1719efa6 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0x177b6dc5 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x17e37a05 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x1808f3bd inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0x182b7c7e raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x1842864f ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x18f2a0f6 __ip_route_output_key +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 0x19f9f8bf blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x1a19d674 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x1a1ff95e setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +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 0x1b6ff294 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1b7a07de md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x1b95441f tc35892_block_read +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1c729700 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x1c7914c9 ata_std_qc_defer +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 0x1cd47774 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x1cfb5a74 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x1da14e86 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x1dc3fea1 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x1dce9dbe skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1e1758cc kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x1e2a845f snd_soc_dapm_enable_pin +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 0x1ebde5e7 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x1ec50e1e snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL vmlinux 0x1f2990b0 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x1f45b7f4 snd_soc_register_dai +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 0x1fd6c54b macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x20117eda omap_dm_timer_get_fclk +EXPORT_SYMBOL_GPL vmlinux 0x201b398c snd_soc_get_volsw +EXPORT_SYMBOL_GPL vmlinux 0x205a5294 sdhci_free_host +EXPORT_SYMBOL_GPL vmlinux 0x206ee1b5 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x207f290c snd_soc_limit_volume +EXPORT_SYMBOL_GPL vmlinux 0x20a20f39 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20cb3689 eventfd_signal +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 0x221e8efd sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x223448fd crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x223b03f3 ab8500_write +EXPORT_SYMBOL_GPL vmlinux 0x227a43b7 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22bddcf7 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x238cfee0 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x23bbb46c tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x23c1bd61 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x23c970d2 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x2418e2ea ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x242bb2a3 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x243feeda queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x244e82a5 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x24d43d15 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24f88d00 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x2507a19e trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x25204c4d kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x2540cf29 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL vmlinux 0x255a9590 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x25b8b8d3 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x25c3a60c find_pid_ns +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 0x26107a00 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x2655bd4b __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x26a8508d disk_part_iter_init +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 0x273d6cc5 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2745cee7 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x278a4df0 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x27a28ad2 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x27e8c2ea ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x27ee7390 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range +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 0x298fdd5e sdhci_alloc_host +EXPORT_SYMBOL_GPL vmlinux 0x29a4c37b eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x2a04dbe2 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x2a3846e6 mnt_want_write +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 0x2b26c13f vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x2b2d13e8 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2b5897a7 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x2b5b8843 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x2b73e084 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x2b7aa627 sdhci_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2bcd3686 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2c08169d lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x2c150488 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c67bd22 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x2c959825 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2cb3baf1 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x2cbf810c crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x2ce2026c ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d5958b2 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x2d77f361 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x2d88a0a0 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x2da70d5f usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x2ddf9ef6 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x2de162c0 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x2e047c7c dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x2e180efb snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL vmlinux 0x2e360c7d scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e4f8117 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x2e5e4c88 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x2e8f7d98 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x2e939676 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2ebdf419 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x2ed390fb regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x2ed483c3 inet_csk_route_req +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 0x2f9c743d del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0x2fbd3516 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x30095534 inet_csk_bind_conflict +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 0x30d5fed9 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x30db85a5 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x31d0853e wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x31de6218 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x31eaf80d cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x3239d3b2 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x3269d4c4 snd_soc_add_controls +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32dbff68 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x32fc38d2 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x3309e5cb br_handle_frame_hook +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 0x33f74d57 inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0x34043ce9 tcp_death_row +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 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 0x3554cc03 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x3565d034 inet_hash +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 0x35e0297c ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x35e527c0 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x35e5ac2b dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x35ea82ab inet6_lookup +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 0x36964dda ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x36aa38f4 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x36d98807 parse_mtd_partitions +EXPORT_SYMBOL_GPL vmlinux 0x371de74a __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x3769ab0c klist_next +EXPORT_SYMBOL_GPL vmlinux 0x38025ade tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x382c3f44 snd_soc_test_bits +EXPORT_SYMBOL_GPL vmlinux 0x3830b7f5 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL vmlinux 0x386b3b4d snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL vmlinux 0x3895c376 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x3895e73d dm_rh_get_region_size +EXPORT_SYMBOL_GPL vmlinux 0x3897e44f tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38df2a0e devres_add +EXPORT_SYMBOL_GPL vmlinux 0x38ff0e49 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x39403f3d scsi_target_block +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 0x39c101a2 ata_host_detach +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 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 0x3aa888cc do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0x3ab79385 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x3b0cfc7e __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x3b30577c dm_rh_recovery_in_flight +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 0x3bb9e430 ref_module +EXPORT_SYMBOL_GPL vmlinux 0x3bbfb884 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x3bcfd5e3 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +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 0x3d1ce836 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3db91586 scatterwalk_done +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 0x3e178b54 key_type_user +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 0x3f6ec900 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x3fe40dbf ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x3fefbfca inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x3ffb63af crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x4008e3cb dm_rh_recovery_end +EXPORT_SYMBOL_GPL vmlinux 0x4030ea8f inode_add_to_lists +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4072e6de crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x4082e323 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40e902b8 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x40f792c0 blk_trace_setup +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 0x417435ea mnt_clone_write +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 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x428b1bf0 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x429855cc mmput +EXPORT_SYMBOL_GPL vmlinux 0x42f15ed5 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x42f23e03 sdhci_add_host +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 0x436488ab sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x436a2f23 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x43d83dfd put_inotify_watch +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 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 0x44c03212 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x44e5516f ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x45160dd4 scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45a000b3 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x45ab2bb9 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45e37f68 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x4618a111 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x4640dfec usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x469f70bf security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x46cc3675 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x46e0226e i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x47244a28 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x47998ee5 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x47cebc4a sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x47e3bb20 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x47e4eadd blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x47eea9f8 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x482a913f wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x482fcd92 dm_region_hash_create +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 0x487d312b tty_prepare_flip_string_flags +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 0x48c504bf ipv6_find_tlv +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 0x4a5b0506 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x4a5d620d ata_qc_complete +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 0x4b1a9c8c bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x4b8b24dd scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x4ba9c828 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x4be62033 mtd_erase_callback +EXPORT_SYMBOL_GPL vmlinux 0x4be8156f sata_link_resume +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 0x4c848371 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x4c9b5a3c tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x4cb9e264 snd_soc_jack_new +EXPORT_SYMBOL_GPL vmlinux 0x4cec71a2 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x4d51c151 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4d5c27fa device_register +EXPORT_SYMBOL_GPL vmlinux 0x4d6f399e tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x4d7fa5fd blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x4d883b26 deregister_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0x4da4a32e page_cache_async_readahead +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 0x4e9d332e get_dcookie +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 0x4f3af1fb usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x4f3fa278 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x4f7570e9 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4fda2737 register_mtd_blktrans +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 0x4ff67bac inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x5029069d blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x502c0efa ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x50748a04 ata_noop_qc_prep +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 0x50c89f23 __alloc_percpu +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 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x514a7e46 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x51c1e86d sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x51c800d2 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x51de8b83 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x5265be11 inet_twsk_put +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 0x549bdb52 vfs_test_lock +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 0x56224ffd ata_cable_40wire +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 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 0x56fc9785 atomic_notifier_chain_unregister +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 0x57b80fbc __trace_note_message +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 0x592696cb dm_rh_recovery_start +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x597b093a tty_put_char +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 0x5b342771 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x5b4affc2 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x5b82a144 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x5b856563 fl6_sock_lookup +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 0x5ca934c2 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x5cbb075d get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x5cc0e3b3 ring_buffer_empty +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 0x5e87f23a usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5e91f50c ata_scsi_queuecmd +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 0x5f2002ee each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x5f519f2d flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x5f5c0703 omap_dm_timer_set_int_enable +EXPORT_SYMBOL_GPL vmlinux 0x5f60e3e7 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5fa17e7c ata_sas_port_start +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 0x603a7626 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x6087a328 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +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 0x611718c6 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x618b5225 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x61d184a3 inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0x61d747d8 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +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 0x62e3fea1 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x633c9e3c scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x63bf30cc snd_soc_dai_set_clkdiv +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 0x64da27e3 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x64eb821f hrtimer_init +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 0x6643930f xfrm_inner_extract_output +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 0x67340de3 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +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 0x685ae7e2 skb_partial_csum_set +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 0x6906d1be inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x690b6acc usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x6920adfd crypto_find_alg +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 0x6a1286e7 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6b0ed02e regulator_set_voltage +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 0x6ca6e0b5 tty_perform_flush +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 0x6f511801 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x6f871749 skb_gro_receive +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 0x705ebb82 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70c38cb3 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x7104ac54 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x71125081 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0x714530fc __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71f29592 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x722cf624 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x72658629 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x726b7782 nf_unregister_afinfo +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 0x7334a3e2 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73c1a13a snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x73dc1bb8 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x73e99247 debugfs_rename +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 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 0x75c7acc5 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75d6eb15 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +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 0x76b6d20a debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x76d07a43 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x76d80ab0 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x7755ccb4 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7770fc62 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x7796bfbf cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x77c743ac usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x783f64a8 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x787b3621 perf_event_create_kernel_counter +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 0x78d033c9 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x7908ace1 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x7950a0d0 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x79975274 skb_segment +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 0x7a2fff6b blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x7a90b834 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x7aab7890 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7aee7fd7 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x7b4b9b5d ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x7ba201c0 __get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x7bc88afe ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x7bef0be2 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x7bf1d4b2 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7bf9d3ba relay_open +EXPORT_SYMBOL_GPL vmlinux 0x7c3cf886 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x7c6784ef ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x7cac9a3e usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x7d44cbd2 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d6df0be screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x7d886da7 sdio_enable_func +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 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e708807 dm_rh_get_state +EXPORT_SYMBOL_GPL vmlinux 0x7e855846 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x7eda255d sdhci_remove_host +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 0x7f50288a scsi_dh_set_params +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 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 0x81023e20 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x810d06d9 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x81656dab wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x81c23096 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x823ad7c4 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82a6c005 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x82ae27bd dio_end_io +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 0x837738a7 fib_rules_cleanup_ops +EXPORT_SYMBOL_GPL vmlinux 0x837f27f5 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x839c16ec snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x83b7b68e ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x83b92506 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x83c063ee vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x83c0a2ce ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x83f8cb45 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x840d412b soc_codec_dev_twl4030 +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 0x84e89b36 dm_rh_flush +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 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 0x86dab0aa dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x86e53fd5 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x87151020 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x87204a2e skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x873335ae init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x876677bd kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x877c4493 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x878bc255 usb_get_status +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 0x8989df2f do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x89b149db rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x89d8ef0c crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x89dcade5 sata_scr_read +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 0x8a6d59f2 dm_rh_dec +EXPORT_SYMBOL_GPL vmlinux 0x8a8988e5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x8a9a252d put_pid +EXPORT_SYMBOL_GPL vmlinux 0x8aa44bc5 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x8afed182 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x8aff3438 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x8b000cc6 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x8b1ddd35 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x8b4240d1 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x8b442424 __css_put +EXPORT_SYMBOL_GPL vmlinux 0x8b53765b sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x8b65c0ca usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8ba8da9c cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x8bc4db30 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x8bc91775 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x8bdce011 __mtd_next_device +EXPORT_SYMBOL_GPL vmlinux 0x8bec0115 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x8c3cc320 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8c3f3057 wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x8c4b163e find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x8c6ca1c8 register_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0x8c75a0f6 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x8c7d6ef8 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x8c9ea6c7 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x8c9eadb7 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x8ce80a5e vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x8d340d06 user_match +EXPORT_SYMBOL_GPL vmlinux 0x8d7156ca ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x8da5cacd ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x8db799f4 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x8ddf61a5 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x8df4e360 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x8e14910b sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x8e2e878c bus_register +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 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 0x8f69a242 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x8f6cc978 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f796fe5 dm_rh_region_context +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 0x90261030 elv_unregister +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 0x9085f21e ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90d86fcb snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL vmlinux 0x90ecc432 inet_unhash +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 0x91f0a581 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x920f835a platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x92117966 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x925ddcd9 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x929877cd init_pmu +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 0x93227a5c snd_soc_put_volsw +EXPORT_SYMBOL_GPL vmlinux 0x933740ca cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x936917ce ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x936f9b39 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x93ab92d1 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x93aeeb45 dev_attr_unload_heads +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 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 0x95dab315 ata_host_alloc +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 0x96c9b152 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96fdf730 dm_rh_update_states +EXPORT_SYMBOL_GPL vmlinux 0x97413b7c ab8500_read +EXPORT_SYMBOL_GPL vmlinux 0x97a608fe led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x97dc0c0a ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x97e0e91a tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x97ecc8f9 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x982f0051 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x98c0b338 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL vmlinux 0x98cad668 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x98cadb8a inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x98ce54bb sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x98eee9ef ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x98f44d12 spi_setup +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 0x993450ca ata_base_port_ops +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 0x9a7e423b drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0x9acc1bb9 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x9af1d0f2 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x9b068808 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x9b3eacac crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x9b59fb8d sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bb1ce43 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x9bb433c1 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x9bcb41ef default_mtd_writev +EXPORT_SYMBOL_GPL vmlinux 0x9bd98b18 timecompare_offset +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 0x9cb2df6d cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9ce5cff3 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x9d064ef9 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x9d1a3afa skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x9d3f676b add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x9d4d82e6 ezx_pcap_write +EXPORT_SYMBOL_GPL vmlinux 0x9d6b9d93 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x9dbeb58b tty_mode_ioctl +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 0x9e2c929f blk_abort_queue +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 0x9e93d8b4 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x9eb76035 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x9ee0b078 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x9f113d75 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f4c1e78 dm_register_path_selector +EXPORT_SYMBOL_GPL vmlinux 0x9f6e211a scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x9f700930 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9f703324 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x9fce0b07 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +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 0xa0e756c3 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0xa0f48855 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xa135f51f crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xa16d9e24 vfs_setxattr +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 0xa1e424cd tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xa211d7b0 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL vmlinux 0xa34707d0 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0xa3938bb3 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xa3bb6078 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0xa3d928e1 sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0xa3ec5111 dm_get_rq_mapinfo +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 0xa500017b blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xa557217f sk_attach_filter +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 0xa5cbc979 dm_kill_unmapped_request +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 0xa7138604 inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0xa7ccce10 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL vmlinux 0xa7cf3723 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xa7cfc3a4 rq_flush_dcache_pages +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 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 0xa9803181 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa98bbc58 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa99f0663 __pm_runtime_put +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 0xaaee8752 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xab33fab7 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab6e6487 get_mtd_device_nm +EXPORT_SYMBOL_GPL vmlinux 0xab8e7281 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xab9523e7 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xabdd9afd bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0xabebb03a dm_rh_inc_pending +EXPORT_SYMBOL_GPL vmlinux 0xacc3f11d dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0xacdcc2eb ata_slave_link_init +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 0xad91e45a dm_rh_get_region_key +EXPORT_SYMBOL_GPL vmlinux 0xada49db8 sysfs_remove_group +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 0xaef70ade tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xaf25639a dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xaf3c0d8a sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xaf3d4136 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xaf3e0ed9 __module_address +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaf4d9210 register_posix_clock +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 0xafbdceb6 dm_rh_start_recovery +EXPORT_SYMBOL_GPL vmlinux 0xaffe0b31 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0xb05a07d0 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL vmlinux 0xb08bfd81 platform_device_register_data +EXPORT_SYMBOL_GPL vmlinux 0xb092ee94 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb0ab9f8c flush_work +EXPORT_SYMBOL_GPL vmlinux 0xb0c659e0 inet_csk_listen_stop +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 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 0xb271a171 raw_unhash_sk +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 0xb39e9844 net_cls_subsys_id +EXPORT_SYMBOL_GPL vmlinux 0xb3d6175a unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xb3f0902f usb_free_coherent +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 0xb54aeaf7 add_mtd_blktrans_dev +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 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 0xb65f34fa destroy_workqueue +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 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 0xb865c703 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xb88704f1 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0xb8f0ee46 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xb9146913 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0xb917b6d7 return_address +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 0xba87e045 register_ftrace_event +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 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb08a470 __module_text_address +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 0xbb718984 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xbb7e9e91 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0xbb9a2c75 ktime_add_ns +EXPORT_SYMBOL_GPL vmlinux 0xbbe663ad vfs_setlease +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 0xbc0de24e tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0xbc0ede5d dm_rh_stop_recovery +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 0xbc982bd2 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xbcabfa2e dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0xbcb05f38 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0xbcc29fa4 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xbccaa363 blk_trace_remove +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 0xbd8ac56b blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0xbda99b15 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0xbdc190fe sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0xbdc211e4 dm_region_hash_destroy +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdda6858 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xbde61a9e ata_port_schedule_eh +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 0xbea8d757 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xbeacca96 tcp_reno_min_cwnd +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 0xbf75d2ed blk_queue_lld_busy +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 0xc04a304b srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc04e5160 power_supply_get_by_name +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 0xc0f57e52 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc14bad2b dm_set_device_limits +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 0xc1db0a63 ab8500_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xc20b1e8e debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xc20eaec5 scsi_unregister_device_handler +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 0xc29b8555 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xc2a4ada0 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0xc2d1578a nf_register_afinfo +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 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 0xc3de6488 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xc402347f crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xc40ec9b3 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc44c971b sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0xc44f1abb devres_get +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 0xc4adc68e ata_do_eh +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 0xc5cea08c cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xc5ec0a9a snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0xc5f671f4 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc60126c9 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xc60a730b klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc651c3b9 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0xc685eb03 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0xc6db3d37 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xc6e0402b __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xc733de4a snd_soc_dapm_free +EXPORT_SYMBOL_GPL vmlinux 0xc737d2f1 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL vmlinux 0xc74261a9 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0xc76d05f7 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xc789b467 __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0xc8177c8c blk_end_request_err +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 0xc8892a4f cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0xc897f102 cpuidle_disable_device +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 0xc9b449a2 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc9b654ea snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL vmlinux 0xc9d385ac ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +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 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 0xcb14bfe6 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xcb1eb5ca find_module +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 0xcc18e351 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xcc1a8979 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc220965 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0xcc34abd7 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0xcc5ab895 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0xcc8c939e vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xcca61545 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcd02854b usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xcd19cc56 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0xcd2798d3 rtnl_kill_links +EXPORT_SYMBOL_GPL vmlinux 0xcd27f6c7 snd_soc_unregister_dais +EXPORT_SYMBOL_GPL vmlinux 0xcd2d6c17 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0xcd5d032d hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xcd763643 sdio_set_block_size +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 0xce5c1f62 blk_queue_rq_timeout +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 0xcec92279 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xced8323e inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0xcf189c00 tty_ldisc_ref_wait +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 0xcf5d8237 dm_put +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 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 0xd0dede69 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xd13092ab br_fdb_test_addr_hook +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 0xd21a0690 user_describe +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +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 0xd2c5f8a6 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xd2d4ea0a sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xd2de335f ata_do_set_mode +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 0xd3427e06 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0xd3b40233 vfs_kern_mount +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 0xd42fe894 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xd4c42562 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xd4cf668f led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd4ee16c5 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xd5291df4 __mmdrop +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 0xd581cd37 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xd58292fe sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0xd631667c pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xd644b16d sdhci_resume_host +EXPORT_SYMBOL_GPL vmlinux 0xd678563a inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xd6a8de9d ata_host_alloc_pinfo +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 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 0xd978d3dd usb_mon_register +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 0xda785a23 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdaa1dd75 register_kprobe +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 0xdb3c9816 xfrm_output_resume +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 0xdbdfc702 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xdbfbb5b6 put_driver +EXPORT_SYMBOL_GPL vmlinux 0xdc23e091 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0xdc55f87e rtc_irq_set_freq +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 0xdd49067a usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0xdd5b8601 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xdd887efb generic_detach_inode +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 0xde200c4c crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde96a725 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xde9b1c85 register_net_sysctl_rotable +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 0xdf13a213 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xdf38da19 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0xdf5a62ae fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xdf701b31 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xdfebdc0c rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xdff29f0b inet_twsk_purge +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 0xe18c81fa __class_register +EXPORT_SYMBOL_GPL vmlinux 0xe1cb2fa1 scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0xe20d2695 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xe22136d4 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xe27d597d fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe27df792 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0xe2ea5b98 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xe33f5e4f ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0xe36084df crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xe3993edc aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xe3e4dce8 securityfs_create_file +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 0xe4504986 inet_ctl_sock_create +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 0xe56ce374 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0xe58eff13 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0xe5c6d6b6 get_driver +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 0xe6654bef snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe738a885 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xe75c4a44 ata_scsi_ioctl +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 0xe7e3e534 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0xe8253720 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe8a03ef1 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xe9068ab5 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xe90d8e39 security_inode_create +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 0xe96bb7fc tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xe9be05cf sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0xe9d78a8d scsi_eh_ready_devs +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 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea557827 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xeacafc70 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xeadd9738 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeaf59014 securityfs_remove +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 0xecedbd4f blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0xed4d384b shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0xed62121d ip6_dst_blackhole +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 0xedafa76d queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0xedbf248d dm_disk +EXPORT_SYMBOL_GPL vmlinux 0xedd582c5 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0xee315eb0 atomic_notifier_call_chain +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 0xeec61b20 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0xef22a767 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0xef26631b bsg_unregister_queue +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 0xf05b04a6 dm_rh_mark_nosync +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 0xf1ad823c sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xf2151200 elv_register +EXPORT_SYMBOL_GPL vmlinux 0xf28cc3dc tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xf2cfe33b ata_bmdma_qc_issue +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 0xf37984bd unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xf3ae2433 pcap_adc_async +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3ee2bd4 inet6_sk_rebuild_header +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 0xf52e4336 locks_release_private +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 0xf58690d4 snd_soc_new_pcms +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5bed192 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xf6a198ee ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0xf6b29369 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xf6d28f8a wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xf6e63339 ata_pio_need_iordy +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 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 0xf8127d50 blk_rq_err_bytes +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 0xf8e4a743 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf921079f tty_ldisc_ref +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 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9cc298b add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xf9d046f0 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xf9d85419 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xf9dc2de4 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +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 0xfaab4795 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xfabb97ae __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xfadbe54a class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xfae28478 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0xfb0665cb ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb77f9cc sdev_evt_send_simple +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 0xfc7900c4 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xfcad8a1b spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0xfcf09faf ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xfcfbffc6 register_jprobe +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 0xfdaca679 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xfdb3dc1a scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0xfdc9c09a __inet_lookup_listener +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 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 0xff89bc92 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffc18502 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xfffd73ea usb_sg_cancel --- linux-2.6.35.orig/debian.master/abi/2.6.35-28.49/armel/versatile +++ linux-2.6.35/debian.master/abi/2.6.35-28.49/armel/versatile @@ -0,0 +1,9032 @@ +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 0x000b189f drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00e2fd72 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x01335977 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x042e3e62 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x08bb761c drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x08d79749 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a4636d3 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0cf947cc drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x104c0308 drm_core_get_reg_ofs +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 0x13141b4d drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x199c17d2 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a24f09b drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ca45312 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ccb588f drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1dd1d1da drm_pci_alloc +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 0x210ec63d drm_i_have_hw_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x219db9b1 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21a99e70 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2331d60d drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28b336cb drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2add3d9e drm_get_drawable_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ffd6775 drm_addmap +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 0x3847607c drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x398abf9d drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39a251b9 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ba743a8 drm_i2c_encoder_destroy +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 0x3e4ccc47 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x406dc44a drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x40ad9c54 drm_lock_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44f92200 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x465da05d drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47413755 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4961f89c drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a2db84e drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b1beecc drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d3b28c9 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d4856c4 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4dc94dc5 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x528d6d92 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5401e16c drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x545a5ffc drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55237e4e drm_gem_object_alloc +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 0x57c62003 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x58ceb302 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f3592b0 drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x61c9608c drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65bc46bc drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b45b71d drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f2a5f0b drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f7a753c drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x78660d25 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x791a8d98 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79bd8367 drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79c1b4f7 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79fe688c drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b30cb72 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c4c6eef drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7cb97ebd drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fcb4cea drm_get_resource_start +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82815533 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8311c51e drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x86f005e6 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x891b277c drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c4e4ab5 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d3f636e drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d6ff82e drm_mode_prune_invalid +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 0x92274a4a drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x956fc1a2 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b4bb3e7 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9e8286c6 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f32f6f4 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa2ed646d drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4e3a1fe drm_get_resource_len +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5c9281c drm_lock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa10fa6b drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf13e3a4 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb1cd5243 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb1f778d1 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb567b7df drm_core_reclaim_buffers +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 0xb6e9a3f2 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbca49e3d drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0d1960f drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc1700181 drm_sg_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6794f16 drm_core_get_map_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc68adbf7 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8e39c70 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc9224aed drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb3af6ca drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb5f160f drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb69cf4c drm_put_dev +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 0xd5dce1a6 drm_get_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd81c4fbc drm_gem_vm_open +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 0xddff65e5 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf381d9b drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe12b0a9f drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe18088e6 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2a5e876 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe42d902c drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe44e823e drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe52eaf5f drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe771999b drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7a196ea drm_ati_pcigart_cleanup +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 0xedfbb5be drm_connector_attach_property +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 0xf46f36ad drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf519e8ef drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf590fede drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb5aae35 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfcd6550a drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd032303 drm_rmmap_locked +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 0x01558af0 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x08d079db drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0e74d491 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x11a41824 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x125000c5 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1b5f73e5 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x26db2a83 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x277c606d drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2e0c6c45 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2f47333f drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x597b4eec drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6ed25302 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x75c36786 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8100e75e drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8633982d drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x86a66f64 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x87d9cdcd drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x960c94e5 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 0xad7291a7 drm_helper_connector_dpms +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 0xc28bddfa drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc2b08e38 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 0xe246d319 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe6f65bc4 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe90654f2 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf436328f drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf4f5a9ba drm_kms_helper_poll_fini +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 0x35461f93 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xea9ed28a rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xee034f38 rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 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 0x032436f2 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x083dd2a1 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x11949752 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x167811c7 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x19406538 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3cba9195 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x42279d5c rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4d61044f rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x70d980ef rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x768d014a rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x78029283 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7dce0b03 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9c2fe249 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa2744f04 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb8815466 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc918b750 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf0493d32 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf5371d66 rdma_create_qp +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 0x63c350c9 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x87c6907b dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x96d7b4c4 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xc529c04b dib7000p_i2c_enumeration +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 0x03ae3581 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x04ced307 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1070a2c2 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x141eca5b mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x20fc89a8 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2647d42d mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x38e2065d mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x437f81db mpt_get_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 0x614f5468 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x64bc7a6b mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x66f5c938 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x674fa594 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x695d8d53 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7c02a372 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7d58a494 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x81f9ceb0 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x88254464 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x99c7aacf mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa8da8e87 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xac811c9e mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb2fbfca1 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb42a7000 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb60dddcb mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbcd1aa88 mpt_halt_firmware +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 0xcc2a1160 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd4694e92 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd5bd9ad mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe89484b1 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfda21737 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0601f7c5 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x06a48602 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1910c97e mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x280094c2 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3265d271 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x411f5ecd mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x53f1473c mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x551e1925 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x565c3546 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6b36aea3 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x734ea4ec mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x73d92e3c mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7c0d6c1c mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x861dbbc3 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x907e8362 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x99dd91f5 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa5339e7d mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa6920024 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xab14f536 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbd98d074 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc5b074b7 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc67974cd mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc878f147 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd3f868d6 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf752226a mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf853654d mptscsih_get_scsi_lookup +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 0x7d5b2aba bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x 0x1d5eab10 bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x25d3ccf0 cnic_register_driver +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x0a69b437 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x39a7c893 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x55f55030 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x6c885695 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x803a1f37 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x889c654b cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8b0d5b31 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8e8035fe cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x9df99f0a cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x9e12828e cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc5828156 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc60b95c9 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd28ef994 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xdd9fbe49 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf2820530 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf46ca1d6 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x0c2c1070 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x33ee4cc5 cxgb4_pktgl_to_skb +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 0x620ec34c cxgb4_ofld_send +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 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 0x3de7efd4 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0x7b5f9357 register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xfdaa90aa 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 0x0ecacc94 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1210b0ba libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x173d4b4a libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1b22a0ff free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x22778a14 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x288ff9a1 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x42085b91 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x50e4595c libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5e948160 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x65888421 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7578ec9a libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x83c9d2b2 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa36a810b libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xaace7b45 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb108db84 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbedfc92b alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc3c5603b libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd686c609 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf24a43c5 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf4190b56 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfb9a38cd libipw_is_valid_channel +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 0x18985ffc fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x213e406e fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x2699d16d fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x921d408d fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa1b2f873 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xab56696a fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xbf04cb82 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x061f357c fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x062c83c0 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1c9dd78e fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x20cab942 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2368956b fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3256e660 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x33cba1a2 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x33d36b04 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3bdc9a65 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x424dda9f fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x43847f57 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x49e4aba6 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5dbee54d fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6a991028 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6d11b7c2 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6e6171f6 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x71cac574 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x744f49f5 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7f3751eb fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fa07f8c fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x815f173a fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x837ec3bf fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8458d86e libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8ed91d61 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8f3091ca fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9dbb5a61 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9e268574 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa06c5743 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa4f2c333 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa6431fef fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb02c861b fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb958e309 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb81e991 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcbaa581d fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcf430d78 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd83c8c99 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdbe2850f fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe225bb33 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xef667c98 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfc5ce2a3 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfcde781d fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfe35dd49 fc_change_queue_depth +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 0x18b1ee75 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xe0348236 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xe7181ed7 raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x299c8426 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3173fe50 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3a90c937 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x85b6c2bf fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xaea668ce scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb0d8a2f1 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb607b1dc scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd8ed3da2 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xdd8361d4 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe6ed8898 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xefb1a907 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf75c8b4d fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xfe630cc4 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x100879e4 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x10f922ae sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x143a4130 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x156eb003 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1579f3d4 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x19c7a442 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x28a94197 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3e65f91a sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5b8f8dce sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5e97b83f sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6e58dfa2 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x72751e66 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x78b5f0f0 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x87aea35e sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9a72b09c sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9c03ec91 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9e07bd83 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xac8b86f7 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc6ad6c25 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcb623782 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xde03ef19 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe998a63e sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xedeb6114 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf6e934dc sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf91e1899 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf98897de scsi_is_sas_port +EXPORT_SYMBOL drivers/serial/8250 0x137ffa91 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 0x0e3aaa45 ieee80211_rx_mgt_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 0x4c569884 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4d55e17e ieee80211_rx_rsl +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 0x9d2fc6b7 ieee80211_txb_free_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 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 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 0x0e10859d vme_lm_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x194c2b12 vme_dma_list_exec +EXPORT_SYMBOL drivers/staging/vme/vme 0x1febd466 vme_bus_type +EXPORT_SYMBOL drivers/staging/vme/vme 0x222ff763 vme_register_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x251b9ed8 vme_slave_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x312f6e64 vme_dma_list_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x35e8aa27 vme_irq_handler +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 0x51d832f1 vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x529e9662 vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0x581d5434 vme_irq_generate +EXPORT_SYMBOL drivers/staging/vme/vme 0x5a56871c vme_dma_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x63cbc36c vme_master_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x66227eae vme_alloc_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0x6d8ed344 vme_lm_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x76bab4d4 vme_master_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x7797a741 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/staging/vme/vme 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 0x9410e04d vme_slot_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 0x9c601d45 vme_irq_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xa6dd5fe2 vme_slave_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xaba2443b vme_register_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 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xe1ae79ea 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 0xeccbeafc vme_dma_free_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xef8c50c2 vme_unregister_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0xf190da76 vme_irq_free +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 0x08f0e32c usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x0e0aa57e usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x23a60342 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2a020af9 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x44cfd87e usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6491e6e4 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x86566d61 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8c483c79 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xae7b1aef usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd0e12744 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd3f2b7df usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe7e1e18a usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xfbd00ef4 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xfd52059d usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x34722869 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xd8e9da4e 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 0x1e821a16 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x2240de3f w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xb1738c24 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 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 0x20217c19 ax25_find_cb +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 0x51c3eb9c ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x686c64f0 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x7ca61bda ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x81f79eb2 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x83f3c139 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x9c4c6663 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xdcc5af4f ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xfdd15764 ax25_linkfail_register +EXPORT_SYMBOL net/bridge/bridge 0x2d549509 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x1fe5c6a1 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x3a6df4bc ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x9ba51e2a ebt_unregister_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 0x134f620c can_send +EXPORT_SYMBOL net/can/can 0x240f45b3 can_proto_unregister +EXPORT_SYMBOL net/can/can 0x3c651093 can_proto_register +EXPORT_SYMBOL net/can/can 0xd5102c87 can_rx_register +EXPORT_SYMBOL net/can/can 0xe9552a4e can_rx_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x015010b2 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x01b19aec wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x311d7de5 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x37173f82 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3cf4ed77 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3d17daee ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4c634b78 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4e46a95a wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x81b5741a wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xcb39a434 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd359d39d wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd4579fd8 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf3578445 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x1fb1ba7f arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x355b0ec9 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x405e80d7 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x19a04949 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x34922406 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xdcd39432 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1be2006b nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x4fadb5a4 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb28c3f2a nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb4cb2c74 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xba95ab64 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xddc5373f nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf5874506 nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/tunnel4 0x2078fb0c xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0x64e5bff6 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x45909cd7 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x62917b47 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x8c5932bf ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xd60b381e ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0x67f8ea09 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0xad95c1cb xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x307480a8 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x471924b8 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xe4f128df xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/l2tp/l2tp_core 0x87e7262e l2tp_recv_common +EXPORT_SYMBOL net/l2tp/l2tp_core 0xd20e9fd8 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 0x0a5e3fe3 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x176f3eee ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2e513b0f ip_vs_skb_replace +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4480081f ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x59061c60 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9629db1d register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9f55e71e register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa7031810 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb17940de register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xea1e0eeb unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xea3d8344 ip_vs_conn_new +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 0x23aefcb9 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x26385f66 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x614027f2 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6c6d2dfd xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x8ddda918 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x94a26845 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x982699be xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xbcafeeaf xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xc4dcefac xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xc62e5870 xt_register_target +EXPORT_SYMBOL net/phonet/phonet 0x1bc3b958 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x20e4b2f5 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x88804b6e pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x977ce5e9 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0xa84c4a2d phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0xc5c5caca pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0xc5f89e36 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0xcb87d5a5 phonet_header_ops +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2b7027b1 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x34bd2c14 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5ae06d9a rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5dfe4f2e rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x60897386 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7fe62394 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x89e18903 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9f46b543 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa0476ef2 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa1d9000e rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa6ae07c4 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xcf4f72a5 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe5e41b61 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe6bf0c19 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf6e84a16 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/sunrpc/sunrpc 0x702405a3 svc_pool_stats_open +EXPORT_SYMBOL net/wimax/wimax 0x08727fb4 wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0xe5b6ea80 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 0x118d6e50 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x16eb1108 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x17f6f98f ieee80211_get_hdrlen_from_skb +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 0x3112ed30 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x3cd12790 wiphy_rfkill_set_hw_state +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 0x8c6746c4 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x93f81ecc cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x94476cf9 ieee80211_data_to_8023 +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 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 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 0xf12d3696 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xf2b0f7a4 ieee80211_amsdu_to_8023s +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 0x3211c6de dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x56cab09f dm_mem_cache_free +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x934aff63 dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x984bcf1f dm_mem_cache_client_destroy +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xbf4382b2 dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xc3b1a2ca dm_mem_cache_grow +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x0026337e tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x004fce87 sk_free +EXPORT_SYMBOL vmlinux 0x005df76f sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x005f66e3 init_special_inode +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00eef49e __strnlen_user +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x0125f035 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x01424f59 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x015bbd2a xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x0185c2db mapping_tagged +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x019ec484 bh_submit_read +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01ae23a9 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x01b4b046 pci_find_capability +EXPORT_SYMBOL vmlinux 0x01c2815b scm_fp_dup +EXPORT_SYMBOL vmlinux 0x01e3e198 clkdev_add +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x0214937c fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x02196324 __aeabi_idiv +EXPORT_SYMBOL vmlinux 0x024fe8d5 udp_table +EXPORT_SYMBOL vmlinux 0x02534306 tr_type_trans +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 0x02a1822b d_find_alias +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02c8882f generic_unplug_device +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +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 0x0334795d icst307_s2div +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x034cad87 get_sb_bdev +EXPORT_SYMBOL vmlinux 0x035d0d89 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x0377bc8d dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x039b8bd6 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x03b092c3 input_release_device +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03c9061a __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x03dc4ab5 vc_resize +EXPORT_SYMBOL vmlinux 0x03eb39df vm_insert_mixed +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x03fd5299 __register_chrdev +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 0x0442b66f jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x045ff487 neigh_table_init +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04d706e1 simple_rename +EXPORT_SYMBOL vmlinux 0x04f1a859 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x04ffe49d key_negate_and_link +EXPORT_SYMBOL vmlinux 0x0515d8eb datagram_poll +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x05243e56 dquot_enable +EXPORT_SYMBOL vmlinux 0x052ed4d7 tty_set_operations +EXPORT_SYMBOL vmlinux 0x057632a5 ppp_register_channel +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 0x05a196f0 unregister_con_driver +EXPORT_SYMBOL vmlinux 0x05a5b746 bdi_register +EXPORT_SYMBOL vmlinux 0x05b9d2d9 kmap +EXPORT_SYMBOL vmlinux 0x05baaba0 wait_for_completion +EXPORT_SYMBOL vmlinux 0x05c0ef74 __inet6_hash +EXPORT_SYMBOL vmlinux 0x05c45ad5 generic_fillattr +EXPORT_SYMBOL vmlinux 0x05d88e23 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x06113bfe nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x061a3e9e input_unregister_handle +EXPORT_SYMBOL vmlinux 0x066581db pcim_enable_device +EXPORT_SYMBOL vmlinux 0x0665d36f arp_create +EXPORT_SYMBOL vmlinux 0x067d3d26 pipe_to_file +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06b48a5e thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0x06b650e7 tty_unthrottle +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 0x06ff6dec filp_close +EXPORT_SYMBOL vmlinux 0x070aa507 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x071e1fdf lease_get_mtime +EXPORT_SYMBOL vmlinux 0x07239c4e dquot_file_open +EXPORT_SYMBOL vmlinux 0x07273de7 netif_napi_del +EXPORT_SYMBOL vmlinux 0x07462ad3 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x07638191 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x07915886 clk_round_rate +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07ae0bcc backlight_device_register +EXPORT_SYMBOL vmlinux 0x07b4156a fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07d9c522 scsi_free_command +EXPORT_SYMBOL vmlinux 0x080c40e3 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x08504c7f devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x088b2631 complete_request_key +EXPORT_SYMBOL vmlinux 0x088ece7b tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x08ba7750 dm_exception_store_type_unregister +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 0x09286160 new_inode +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 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x097b9fd2 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x09804f6f simple_write_begin +EXPORT_SYMBOL vmlinux 0x0986be29 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d36372 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x09dc4905 dma_free_coherent +EXPORT_SYMBOL vmlinux 0x09ec2875 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x09ef257b remove_proc_entry +EXPORT_SYMBOL vmlinux 0x0a035cfa inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x0a1bebc5 kernel_execve +EXPORT_SYMBOL vmlinux 0x0a1d4dd0 skb_insert +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a2a0851 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a495321 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x0a4aa6a1 init_net +EXPORT_SYMBOL vmlinux 0x0a67f17e skb_clone +EXPORT_SYMBOL vmlinux 0x0a80c620 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x0a99167c sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x0aa13d05 __raw_readsw +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ad47e3a qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x0afb1998 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x0b067918 do_splice_to +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b0ddb18 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x0b148748 amba_find_device +EXPORT_SYMBOL vmlinux 0x0b1abaaa softnet_data +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b1e68e7 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x0b351ada mempool_resize +EXPORT_SYMBOL vmlinux 0x0b60d7d7 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0badc255 ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0x0bec3384 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x0c195e20 down_timeout +EXPORT_SYMBOL vmlinux 0x0c35f2c6 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x0c44e3df dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x0c614a2d mpage_readpage +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c7f92cc tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x0c8106c2 sock_i_uid +EXPORT_SYMBOL vmlinux 0x0c86ed57 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x0c8ae208 set_create_files_as +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c974ca1 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x0c9c342b generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0cab3b2f kobject_add +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0ccf2f10 submit_bh +EXPORT_SYMBOL vmlinux 0x0cd2deaf jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x0cdd158d sg_alloc_table +EXPORT_SYMBOL vmlinux 0x0cedfd82 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x0d3a5e8d tcf_hash_create +EXPORT_SYMBOL vmlinux 0x0d3f57a2 _find_next_bit_le +EXPORT_SYMBOL vmlinux 0x0d436453 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +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 0x0db25f08 bio_map_user +EXPORT_SYMBOL vmlinux 0x0db3877d ___dma_single_dev_to_cpu +EXPORT_SYMBOL vmlinux 0x0dc74109 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x0dc987a9 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x0df4d1e6 mmc_cleanup_queue +EXPORT_SYMBOL vmlinux 0x0e1f36e3 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e5de780 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x0e79a393 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x0eae495f seq_release_private +EXPORT_SYMBOL vmlinux 0x0ec98808 ida_init +EXPORT_SYMBOL vmlinux 0x0ed7a3dc shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x0f02535b deny_write_access +EXPORT_SYMBOL vmlinux 0x0f1bab7e user_revoke +EXPORT_SYMBOL vmlinux 0x0f71dea9 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x0fa2a45e __memzero +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fbcd265 phy_find_first +EXPORT_SYMBOL vmlinux 0x0fcd2771 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x0fce17ea sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x0fd24b4d fasync_helper +EXPORT_SYMBOL vmlinux 0x0fd2b384 kmap_high +EXPORT_SYMBOL vmlinux 0x0fe01db6 ip6_frag_match +EXPORT_SYMBOL vmlinux 0x0ff178f6 __aeabi_idivmod +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ff7092b __alloc_skb +EXPORT_SYMBOL vmlinux 0x0ffa8302 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x100a6c55 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x10324944 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint +EXPORT_SYMBOL vmlinux 0x109b5e5a security_inode_readlink +EXPORT_SYMBOL vmlinux 0x10adb6f0 __rta_fill +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10e463c3 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x10e5da37 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x1106f277 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x112d51bf dquot_alloc +EXPORT_SYMBOL vmlinux 0x112d5906 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x11837bd7 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x1197fcb9 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x119b50e7 elf_check_arch +EXPORT_SYMBOL vmlinux 0x11cc3b34 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x11ec7c40 neigh_update +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12e54ad6 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x12e7c341 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x12f17571 qdisc_list_del +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x13435f3a user_path_at +EXPORT_SYMBOL vmlinux 0x1357cf63 dm_exception_store_create +EXPORT_SYMBOL vmlinux 0x13702558 read_cache_page +EXPORT_SYMBOL vmlinux 0x139cd229 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x13b44d60 skb_unlink +EXPORT_SYMBOL vmlinux 0x13c2583b i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x1450d20c get_user_pages +EXPORT_SYMBOL vmlinux 0x14780a7f skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x1489dee8 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x149dd538 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x14c2e1a1 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x14d53493 vfs_statfs +EXPORT_SYMBOL vmlinux 0x14e37c8d ppp_input_error +EXPORT_SYMBOL vmlinux 0x14e3ab1f block_invalidatepage +EXPORT_SYMBOL vmlinux 0x14f666fc jbd2_journal_blocks_per_page +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 0x157dfd1e sock_i_ino +EXPORT_SYMBOL vmlinux 0x15b655c6 rt6_lookup +EXPORT_SYMBOL vmlinux 0x15c803dc kernel_getsockname +EXPORT_SYMBOL vmlinux 0x15f20c73 ioremap_page +EXPORT_SYMBOL vmlinux 0x15f7accb xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x1606baa1 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x160957bc journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x161f1164 input_grab_device +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x16368c63 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x16591624 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x166e74a2 cpu_v7_set_pte_ext +EXPORT_SYMBOL vmlinux 0x1679e865 vfs_mknod +EXPORT_SYMBOL vmlinux 0x16824d00 dm_exception_store_type_register +EXPORT_SYMBOL vmlinux 0x169d101e mdiobus_scan +EXPORT_SYMBOL vmlinux 0x16b48804 pci_get_class +EXPORT_SYMBOL vmlinux 0x16c8e8a7 fddi_type_trans +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 0x171eb77b have_submounts +EXPORT_SYMBOL vmlinux 0x17259299 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x1731d5ec page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x177380f4 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x178405ab thaw_super +EXPORT_SYMBOL vmlinux 0x178efb2c ipv4_specific +EXPORT_SYMBOL vmlinux 0x17a142df __copy_from_user +EXPORT_SYMBOL vmlinux 0x17a2e11c scsi_block_requests +EXPORT_SYMBOL vmlinux 0x17d726b5 elv_add_request +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x181bde84 otg_put_transceiver +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184008a1 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x18ad05be unregister_cdrom +EXPORT_SYMBOL vmlinux 0x18deeab9 md_write_start +EXPORT_SYMBOL vmlinux 0x18e69617 free_task +EXPORT_SYMBOL vmlinux 0x19013910 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x192779f0 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x19651933 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x196aff3e dev_base_lock +EXPORT_SYMBOL vmlinux 0x19750114 bio_pair_release +EXPORT_SYMBOL vmlinux 0x197a9b80 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19a72042 tty_register_device +EXPORT_SYMBOL vmlinux 0x19a72c09 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x19b156c8 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x19b1f510 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x19c50a16 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x19d9b712 bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0x19f139fe md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x1a0d052b skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x1a1dbf5c dev_txq_stats_fold +EXPORT_SYMBOL vmlinux 0x1a275457 unlock_rename +EXPORT_SYMBOL vmlinux 0x1a2d225e register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x1a31787d input_get_keycode_big +EXPORT_SYMBOL vmlinux 0x1a5e7ac7 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x1a65f4ad __arm_ioremap_pfn +EXPORT_SYMBOL vmlinux 0x1a6bfc37 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x1a803c91 __napi_schedule +EXPORT_SYMBOL vmlinux 0x1a882364 down_killable +EXPORT_SYMBOL vmlinux 0x1a9df6cc malloc_sizes +EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in +EXPORT_SYMBOL vmlinux 0x1aa30cc0 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad1f2e7 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0x1ad306c0 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b0c71d1 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x1b23458a vfs_getattr +EXPORT_SYMBOL vmlinux 0x1b24d781 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x1b45cc42 elv_register_queue +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b93d9c6 __napi_complete +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1ba7652b inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x1bc89978 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x1bd453a7 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x1bde06ca security_file_mmap +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c534d4e sk_alloc +EXPORT_SYMBOL vmlinux 0x1c5e3878 icst525_idx2s +EXPORT_SYMBOL vmlinux 0x1c73068d netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x1c7671f8 dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x1c91831c pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x1cab5809 xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cd0f6c0 mempool_alloc +EXPORT_SYMBOL vmlinux 0x1d09a930 elevator_exit +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 0x1d2f47cd zero_fill_bio +EXPORT_SYMBOL vmlinux 0x1d52e063 elv_rq_merge_ok +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 0x1e10fd61 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x1e1622c9 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x1e304a69 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x1e53a748 tcp4_gro_complete +EXPORT_SYMBOL vmlinux 0x1e66f621 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x1e678841 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e794e89 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x1e996b13 ___pskb_trim +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 0x1eb829e6 skb_pad +EXPORT_SYMBOL vmlinux 0x1ef50168 get_super +EXPORT_SYMBOL vmlinux 0x1ef85235 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f12ccac inode_init_always +EXPORT_SYMBOL vmlinux 0x1f58446b vfs_follow_link +EXPORT_SYMBOL vmlinux 0x1f5b9d94 blk_insert_request +EXPORT_SYMBOL vmlinux 0x1f6c136e xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x1f6c2bca cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x1f6dc900 arp_tbl +EXPORT_SYMBOL vmlinux 0x1f799a6a mmc_free_host +EXPORT_SYMBOL vmlinux 0x1f876840 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x1f8c6932 vfs_readv +EXPORT_SYMBOL vmlinux 0x1fab3b11 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x1fbd745a mdiobus_register +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fd77ed6 set_device_ro +EXPORT_SYMBOL vmlinux 0x1fdf11d0 ppp_input +EXPORT_SYMBOL vmlinux 0x1ff268da unregister_md_personality +EXPORT_SYMBOL vmlinux 0x1ff69dd8 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x20021998 set_security_override +EXPORT_SYMBOL vmlinux 0x201fab3d unregister_8022_client +EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x20422de9 file_permission +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x20885ce1 d_alloc +EXPORT_SYMBOL vmlinux 0x20a56cd3 phy_disconnect +EXPORT_SYMBOL vmlinux 0x20cb32c0 kill_block_super +EXPORT_SYMBOL vmlinux 0x20d34091 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x20e44a0d single_open +EXPORT_SYMBOL vmlinux 0x20f02d42 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x211331fa __divsi3 +EXPORT_SYMBOL vmlinux 0x211533bd pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x2164df3f mnt_unpin +EXPORT_SYMBOL vmlinux 0x216f9ae1 simple_readpage +EXPORT_SYMBOL vmlinux 0x21962864 __find_get_block +EXPORT_SYMBOL vmlinux 0x21b86552 file_fsync +EXPORT_SYMBOL vmlinux 0x21bb6d3d dev_uc_sync +EXPORT_SYMBOL vmlinux 0x21d2d2b6 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x21dc6065 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x220d61a5 mtd_do_chip_probe +EXPORT_SYMBOL vmlinux 0x22131cfb down_write_trylock +EXPORT_SYMBOL vmlinux 0x2219d64b __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x221dfde0 idr_pre_get +EXPORT_SYMBOL vmlinux 0x222da670 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x22425f85 ip_fragment +EXPORT_SYMBOL vmlinux 0x22490c08 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x228f89ea tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x231305d5 fd_install +EXPORT_SYMBOL vmlinux 0x231c24f6 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x2321f371 seq_write +EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul +EXPORT_SYMBOL vmlinux 0x232c8612 generic_getxattr +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x2364018d nobh_write_end +EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x237b2b4a scsi_host_get +EXPORT_SYMBOL vmlinux 0x23ac0016 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x23b50da2 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23e4365c bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x23e96325 __lock_buffer +EXPORT_SYMBOL vmlinux 0x23f88ed2 elv_abort_queue +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24071b47 __break_lease +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x24634fbd udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x24743156 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x24924317 jbd2_journal_force_commit_nested +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 0x24d0e163 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x24d2c53d scsi_scan_target +EXPORT_SYMBOL vmlinux 0x24d8929d hippi_change_mtu +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x2514b31e dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x252d7640 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x2546e0c3 tcp4_gro_receive +EXPORT_SYMBOL vmlinux 0x254b1f84 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x254f18c0 pci_choose_state +EXPORT_SYMBOL vmlinux 0x2559510c nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x255ffab3 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x25609e5e balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x2596ee1a dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x25a38af9 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x25aae0c1 pskb_copy +EXPORT_SYMBOL vmlinux 0x25cd0f75 seq_path +EXPORT_SYMBOL vmlinux 0x25d807db tcf_register_action +EXPORT_SYMBOL vmlinux 0x25d81960 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x25e96707 dev_uc_del +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 0x2672f70f napi_frags_skb +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 0x26b0b4aa tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x26b290e9 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x2700b38a mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x27072e8a xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x2725dd8e security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x272add61 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x2742719a kobject_del +EXPORT_SYMBOL vmlinux 0x275897ca i2c_clients_command +EXPORT_SYMBOL vmlinux 0x277af174 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0x2780ddb1 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x27840f87 dev_mc_add +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +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 0x280d7c0f put_page +EXPORT_SYMBOL vmlinux 0x28118cb6 __get_user_1 +EXPORT_SYMBOL vmlinux 0x2830fee2 idr_get_next +EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll +EXPORT_SYMBOL vmlinux 0x2886308d generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28c5065d register_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0x28ceb3b9 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x2921e3f7 udp_ioctl +EXPORT_SYMBOL vmlinux 0x2932a45c sock_no_accept +EXPORT_SYMBOL vmlinux 0x29417c40 amba_device_register +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29be4444 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x29c8c3f5 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x29d775c9 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x29e78d57 add_mtd_partitions +EXPORT_SYMBOL vmlinux 0x29e9f2c2 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x2a135016 skb_push +EXPORT_SYMBOL vmlinux 0x2a1905b2 d_rehash +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a5585c9 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x2a8e5629 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aa7e293 call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0x2aad3c48 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x2ac56933 misc_register +EXPORT_SYMBOL vmlinux 0x2ad18cab do_sync_read +EXPORT_SYMBOL vmlinux 0x2af4c8e1 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x2b03d144 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b517a86 proc_create_data +EXPORT_SYMBOL vmlinux 0x2b688622 complete_and_exit +EXPORT_SYMBOL vmlinux 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 0x2bc204ba blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x2c1adf61 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x2c3c20d8 freeze_super +EXPORT_SYMBOL vmlinux 0x2c4d2356 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x2c8d1c31 ll_rw_block +EXPORT_SYMBOL vmlinux 0x2cb83a00 current_fs_time +EXPORT_SYMBOL vmlinux 0x2cb95e1e shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x2cd40636 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x2ce0a80f ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d1ecaf8 dev_addr_del +EXPORT_SYMBOL vmlinux 0x2d29a31d tcp_v4_destroy_sock +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 0x2d6bef0a dev_kfree_skb_any +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 0x2da3147e lookup_one_len +EXPORT_SYMBOL vmlinux 0x2db43c74 __elv_add_request +EXPORT_SYMBOL vmlinux 0x2dcc4f73 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x2dd1a71f bdev_read_only +EXPORT_SYMBOL vmlinux 0x2dd1c9ea __nla_put +EXPORT_SYMBOL vmlinux 0x2dd67734 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x2dee8e99 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x2dfc8385 __free_pages +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e469aa9 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x2e560917 scsi_device_put +EXPORT_SYMBOL vmlinux 0x2e5810c6 __aeabi_unwind_cpp_pr1 +EXPORT_SYMBOL vmlinux 0x2e819b86 ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x2eb2b3ac netlink_dump_start +EXPORT_SYMBOL vmlinux 0x2ec08fee ___dma_page_dev_to_cpu +EXPORT_SYMBOL vmlinux 0x2ecaded6 take_over_console +EXPORT_SYMBOL vmlinux 0x2f1eb964 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x2f3d1330 del_mtd_partitions +EXPORT_SYMBOL vmlinux 0x2f93bd00 phy_attach +EXPORT_SYMBOL vmlinux 0x3036e453 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x303794a5 tty_write_room +EXPORT_SYMBOL vmlinux 0x306e3b56 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x306ef0b4 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x306f5a36 start_tty +EXPORT_SYMBOL vmlinux 0x30864d25 i2c_release_client +EXPORT_SYMBOL vmlinux 0x308d41db nonseekable_open +EXPORT_SYMBOL vmlinux 0x30943344 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x30b7a51a tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x30cce827 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x30e20965 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x30e45f3b dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x3114bc0d generic_setlease +EXPORT_SYMBOL vmlinux 0x31178f17 no_llseek +EXPORT_SYMBOL vmlinux 0x311ab4bc neigh_seq_start +EXPORT_SYMBOL vmlinux 0x3123f613 mmc_host_disable +EXPORT_SYMBOL vmlinux 0x312a7b98 tty_name +EXPORT_SYMBOL vmlinux 0x31319b68 spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0x313341a3 _set_bit_le +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x316dd1cd __wait_on_bit +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31b84bc6 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x31f558e9 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x31f9c55c truncate_pagecache +EXPORT_SYMBOL vmlinux 0x320aa871 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x3219b7b4 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x321af19a fsync_bdev +EXPORT_SYMBOL vmlinux 0x32210c7d clear_inode +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 0x329ac907 dm_table_get_size +EXPORT_SYMBOL vmlinux 0x329e467b simple_pin_fs +EXPORT_SYMBOL vmlinux 0x32bca5e4 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x32d6c6f3 tty_devnum +EXPORT_SYMBOL vmlinux 0x3314990f scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x33336a22 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x3341d376 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x335b69bb scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x335e6f1b blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x336c6df5 block_sync_page +EXPORT_SYMBOL vmlinux 0x33991371 register_snap_client +EXPORT_SYMBOL vmlinux 0x33d46047 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x33f51515 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x33f5a91d __lookup_one_len +EXPORT_SYMBOL vmlinux 0x33f7abcb dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x343f2ee3 sg_miter_next +EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long +EXPORT_SYMBOL vmlinux 0x3463cbe0 devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x348ae757 dentry_unhash +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34a3e890 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x34b8351e __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x34c459ed serio_reconnect +EXPORT_SYMBOL vmlinux 0x34eb969a pci_bus_type +EXPORT_SYMBOL vmlinux 0x34f7a9e0 vc_cons +EXPORT_SYMBOL vmlinux 0x35114fc6 mmc_release_host +EXPORT_SYMBOL vmlinux 0x3519c322 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x351d8c20 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x352f26e0 generic_permission +EXPORT_SYMBOL vmlinux 0x3531b01e generic_delete_inode +EXPORT_SYMBOL vmlinux 0x353e3fa5 __get_user_4 +EXPORT_SYMBOL vmlinux 0x355af26b uart_resume_port +EXPORT_SYMBOL vmlinux 0x3565bc0c cpu_user +EXPORT_SYMBOL vmlinux 0x3566781a ip_ct_attach +EXPORT_SYMBOL vmlinux 0x356ef822 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x3593af58 kernel_listen +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35d0a9b6 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x35d2300d audit_log_format +EXPORT_SYMBOL vmlinux 0x35da2e61 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x35e0c6e5 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x35e796fb scsi_finish_command +EXPORT_SYMBOL vmlinux 0x35fbf895 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x3617df69 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x361b11e2 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x36296beb tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x366e9d57 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x3677c089 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x36855bc5 udp_proc_register +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x36b0e5ae bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x36cb10c8 ftrace_event_seq +EXPORT_SYMBOL vmlinux 0x36e25d32 dma_mmap_writecombine +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36f7f5e8 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x3729f35b dev_set_mtu +EXPORT_SYMBOL vmlinux 0x3732c2d7 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf +EXPORT_SYMBOL vmlinux 0x3755fe8e prepare_binprm +EXPORT_SYMBOL vmlinux 0x376577c8 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x37775453 cdev_alloc +EXPORT_SYMBOL vmlinux 0x3782e98b clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x37844f03 set_anon_super +EXPORT_SYMBOL vmlinux 0x3796f5ab ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x379dc0a8 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x37a2cf30 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37d96888 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x38023f20 mmc_card_sleep +EXPORT_SYMBOL vmlinux 0x3806466b alloc_file +EXPORT_SYMBOL vmlinux 0x38133c8b dqstats +EXPORT_SYMBOL vmlinux 0x3839eb43 inet_put_port +EXPORT_SYMBOL vmlinux 0x385c351e input_register_handle +EXPORT_SYMBOL vmlinux 0x38633d03 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38ba5036 __register_binfmt +EXPORT_SYMBOL vmlinux 0x38bad604 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x38c6a32a find_vma +EXPORT_SYMBOL vmlinux 0x38cd2012 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x38d4a6fe inode_init_owner +EXPORT_SYMBOL vmlinux 0x38e8378d pgprot_kernel +EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x38f8a7cf pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x390e9ea9 task_nice +EXPORT_SYMBOL vmlinux 0x390f272e deactivate_super +EXPORT_SYMBOL vmlinux 0x391eaaf0 alloc_disk +EXPORT_SYMBOL vmlinux 0x3931ce0b brioctl_set +EXPORT_SYMBOL vmlinux 0x3941b9a5 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x394c7025 kernel_bind +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x399c2183 make_EII_client +EXPORT_SYMBOL vmlinux 0x39b0cf57 bitmap_unplug +EXPORT_SYMBOL vmlinux 0x39b20166 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x39dc7908 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x39f45c23 __brelse +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a2db5a1 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x3a3cd2e6 scsi_init_io +EXPORT_SYMBOL vmlinux 0x3a427c8d journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x3a489b39 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x3a528a89 journal_ack_err +EXPORT_SYMBOL vmlinux 0x3a5e3ed8 km_state_notify +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 0x3b4233d3 spi_release_transport +EXPORT_SYMBOL vmlinux 0x3b49c22e do_splice_from +EXPORT_SYMBOL vmlinux 0x3b5478d8 mii_nway_restart +EXPORT_SYMBOL vmlinux 0x3b9aa943 scsi_get_command +EXPORT_SYMBOL vmlinux 0x3b9df243 vfs_rename +EXPORT_SYMBOL vmlinux 0x3bb96402 input_inject_event +EXPORT_SYMBOL vmlinux 0x3bba0d71 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3be61320 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x3bfead13 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c5e4a60 ip_dev_find +EXPORT_SYMBOL vmlinux 0x3c6ead17 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cac7311 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d120571 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x3d15bb87 bdget +EXPORT_SYMBOL vmlinux 0x3d3c540f elf_hwcap +EXPORT_SYMBOL vmlinux 0x3d497ebd mmc_card_awake +EXPORT_SYMBOL vmlinux 0x3d6f1e8d audit_log_start +EXPORT_SYMBOL vmlinux 0x3d78102e consume_skb +EXPORT_SYMBOL vmlinux 0x3d80a42d register_con_driver +EXPORT_SYMBOL vmlinux 0x3d88c092 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3daa69da vfs_lstat +EXPORT_SYMBOL vmlinux 0x3dba37f9 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x3dc6d7d3 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x3dd75905 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x3dea6e62 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x3debd8ed release_sock +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e06d30e end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x3e22f11b pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x3e29c8a0 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x3e3485b6 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e68555f spi_dv_device +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3e933761 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x3eb36888 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x3ebf7691 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x3ec2ff41 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x3ecdb45b blk_init_tags +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3edbb4f7 journal_update_format +EXPORT_SYMBOL vmlinux 0x3ef71411 dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0x3f146c81 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x3f2cde65 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f97f34c qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x3f98965a dcache_dir_close +EXPORT_SYMBOL vmlinux 0x3f98d6d0 dev_open +EXPORT_SYMBOL vmlinux 0x3fb8afeb log_start_commit +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ff764e9 bio_alloc +EXPORT_SYMBOL vmlinux 0x4000f9fb dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x40071ddd generic_readlink +EXPORT_SYMBOL vmlinux 0x400c7a57 neigh_for_each +EXPORT_SYMBOL vmlinux 0x401fe3b7 del_gendisk +EXPORT_SYMBOL vmlinux 0x4022f64e pci_clear_master +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x407136b1 __put_user_8 +EXPORT_SYMBOL vmlinux 0x40746460 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x40771d80 register_exec_domain +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 0x40c33a46 dentry_open +EXPORT_SYMBOL vmlinux 0x40f07981 __ashldi3 +EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x41116723 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x411fc77f xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x41307d52 bdi_unregister +EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp +EXPORT_SYMBOL vmlinux 0x414243e0 sock_wfree +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414aab90 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x41791d88 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x4185ab25 kfree_skb +EXPORT_SYMBOL vmlinux 0x4185cf4b radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x418882d6 register_console +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x418e6eef scsi_print_command +EXPORT_SYMBOL vmlinux 0x41b33015 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x4207244c key_alloc +EXPORT_SYMBOL vmlinux 0x420a6376 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42185c04 vfs_symlink +EXPORT_SYMBOL vmlinux 0x42186862 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x426905fa sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x427153e3 journal_stop +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42c04cad blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x42eea9d6 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x42fa02e3 destroy_EII_client +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x4324e7cb mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short +EXPORT_SYMBOL vmlinux 0x4347b971 idr_init +EXPORT_SYMBOL vmlinux 0x43485c3f blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get +EXPORT_SYMBOL vmlinux 0x43b9d5f9 copy_io_context +EXPORT_SYMBOL vmlinux 0x43ec0403 aio_complete +EXPORT_SYMBOL vmlinux 0x43ee64db dquot_release +EXPORT_SYMBOL vmlinux 0x43fbbb79 override_creds +EXPORT_SYMBOL vmlinux 0x43fce0dc clk_set_rate +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 0x4448f4b5 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x444c2a50 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x44570c28 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x4458e090 nf_register_hooks +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 0x4483b2d2 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x448816e9 napi_get_frags +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44da5d0f __csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44f37b89 slow_work_unregister_user +EXPORT_SYMBOL vmlinux 0x451a1075 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x45478fde set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x454fbc6a ip_getsockopt +EXPORT_SYMBOL vmlinux 0x455761e2 journal_destroy +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x45888b32 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x458ae931 elv_rb_add +EXPORT_SYMBOL vmlinux 0x4591d83a tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x45947727 param_array_set +EXPORT_SYMBOL vmlinux 0x45a55ec8 __iounmap +EXPORT_SYMBOL vmlinux 0x45b9843a dquot_destroy +EXPORT_SYMBOL vmlinux 0x45bba891 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x45bda0d5 system_serial_low +EXPORT_SYMBOL vmlinux 0x45c211d4 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x45caa01b scsi_device_get +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45d2bf0a inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x45da4460 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x45ddfcdd scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x45e203df blk_stack_limits +EXPORT_SYMBOL vmlinux 0x45f5a46d ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x45f74941 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x460ea1c5 udplite_table +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x4646f3c6 blk_free_tags +EXPORT_SYMBOL vmlinux 0x466582d1 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x466df32e neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x468ddad6 loop_register_transfer +EXPORT_SYMBOL vmlinux 0x46a94fc3 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x46b75146 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x46c4b962 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x46c50891 amba_device_unregister +EXPORT_SYMBOL vmlinux 0x46d3b28c __div0 +EXPORT_SYMBOL vmlinux 0x46d6a075 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x46f451c3 tty_throttle +EXPORT_SYMBOL vmlinux 0x46f45cfa xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x471cab4a i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x471e05a2 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x47341ebb scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x4757ab99 rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479f73a6 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x47af373f send_sig_info +EXPORT_SYMBOL vmlinux 0x47b48764 fput +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47ea8a19 dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x47f5f038 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x47f757de elf_platform +EXPORT_SYMBOL vmlinux 0x47fe8bdf dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x4803d491 phy_sanitize_settings +EXPORT_SYMBOL vmlinux 0x483ec199 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x487b6103 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x488ae452 blk_complete_request +EXPORT_SYMBOL vmlinux 0x48a5b067 __machine_arch_type +EXPORT_SYMBOL vmlinux 0x48f52cc5 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x4905525b dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x490c0131 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x490dee32 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x4923df42 i2c_master_send +EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x4951d0e2 __netif_schedule +EXPORT_SYMBOL vmlinux 0x4959fa0d dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x4960fc33 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x4972ac78 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x4977d069 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x4989a65c sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x49a2b8ae pci_set_mwi +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 0x49e64a3a scsi_execute +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a37af33 ___dma_single_cpu_to_dev +EXPORT_SYMBOL vmlinux 0x4a6808f6 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x4a8e005d blk_make_request +EXPORT_SYMBOL vmlinux 0x4a912ff1 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x4a943af3 filemap_fault +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 0x4acfebec invalidate_bdev +EXPORT_SYMBOL vmlinux 0x4ad0b44d sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4aff3ff7 journal_start +EXPORT_SYMBOL vmlinux 0x4b1ae48f sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x4b20cbd2 ida_remove +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b35ef96 alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x4b686514 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x4b87e6b9 sget +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bbd0448 iterate_mounts +EXPORT_SYMBOL vmlinux 0x4bbdc919 ndisc_build_skb +EXPORT_SYMBOL vmlinux 0x4bd1f58c arp_xmit +EXPORT_SYMBOL vmlinux 0x4be43b05 km_policy_expired +EXPORT_SYMBOL vmlinux 0x4be50548 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x4be5b132 md_unregister_thread +EXPORT_SYMBOL vmlinux 0x4c066716 skb_copy_datagram_iovec +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 0x4c40e4b6 vfs_write +EXPORT_SYMBOL vmlinux 0x4c64d88f vm_event_states +EXPORT_SYMBOL vmlinux 0x4c667613 skb_gso_segment +EXPORT_SYMBOL vmlinux 0x4c66f075 blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0x4c78eadc dm_table_event +EXPORT_SYMBOL vmlinux 0x4c833adb __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x4c86c87e rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x4c87f6e8 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cc0eb34 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x4cc79932 dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x4ce69a9b pcim_iounmap +EXPORT_SYMBOL vmlinux 0x4cf1819c lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x4cf22778 km_state_expired +EXPORT_SYMBOL vmlinux 0x4cfd5ced hippi_mac_addr +EXPORT_SYMBOL vmlinux 0x4d083cda netlink_broadcast +EXPORT_SYMBOL vmlinux 0x4d0d163d copy_page +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d51cf04 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x4d634ce0 security_path_mknod +EXPORT_SYMBOL vmlinux 0x4d762a25 vfs_writev +EXPORT_SYMBOL vmlinux 0x4d7ae7a5 kill_litter_super +EXPORT_SYMBOL vmlinux 0x4d80cf4c kmem_cache_create +EXPORT_SYMBOL vmlinux 0x4d9ff96b vlan_gro_frags +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dd431b5 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x4dec6038 memscan +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4df70f96 follow_down +EXPORT_SYMBOL vmlinux 0x4e00c60b netlink_ack +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e28af65 input_register_handler +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e3a04ca cont_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x4e48a19c sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e80981b jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e867419 ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x4eb7210c nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x4ed69b85 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x4ee80202 journal_get_create_access +EXPORT_SYMBOL vmlinux 0x4f0f08a8 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f2fddd4 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f66d546 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x4fc9f82d mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x50019752 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x503ef507 netpoll_send_skb +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x5079ab01 keyring_clear +EXPORT_SYMBOL vmlinux 0x5093fa82 _clear_bit_le +EXPORT_SYMBOL vmlinux 0x50a23921 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x50b3ccd0 unlock_buffer +EXPORT_SYMBOL vmlinux 0x50ba64ec sk_run_filter +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 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x51329e67 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x514e4149 mmc_request_done +EXPORT_SYMBOL vmlinux 0x514e8dc1 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0x51629338 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x51637f41 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x516b9f39 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x517f1c32 sock_rfree +EXPORT_SYMBOL vmlinux 0x518dedd8 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x51908eb8 __raw_writesl +EXPORT_SYMBOL vmlinux 0x51a87f72 sock_no_listen +EXPORT_SYMBOL vmlinux 0x51bd8cd2 spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e1f380 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x51e77c97 pfn_valid +EXPORT_SYMBOL vmlinux 0x51ed09ad kern_path +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52492904 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x524d65a9 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x52890760 km_report +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52c6d594 inet_release +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 0x53099e1a md_check_recovery +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x533ed745 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x5366002c fsnotify_obtain_group +EXPORT_SYMBOL vmlinux 0x5372ee6e phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x53969ef1 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x541d5127 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x54204615 ip_cmsg_recv +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 0x544bc73a end_page_writeback +EXPORT_SYMBOL vmlinux 0x547b5c4b dev_add_pack +EXPORT_SYMBOL vmlinux 0x54d348dd scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54f19467 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x54f5684a sock_create_kern +EXPORT_SYMBOL vmlinux 0x54f99b61 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x54faa6b9 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x5500100b invalidate_inodes +EXPORT_SYMBOL vmlinux 0x55079989 redraw_screen +EXPORT_SYMBOL vmlinux 0x5517c8c0 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x551bfb16 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x555408f5 drop_super +EXPORT_SYMBOL vmlinux 0x55544f6b dm_dirty_log_create +EXPORT_SYMBOL vmlinux 0x55562adb poll_freewait +EXPORT_SYMBOL vmlinux 0x556fb864 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x559ca4e8 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x55b3cb06 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x55cb2545 dma_alloc_writecombine +EXPORT_SYMBOL vmlinux 0x55cd9e49 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x55ef328c bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x55f3e394 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x55f67880 sk_stream_kill_queues +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 0x561d003a xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x56202abf get_phy_id +EXPORT_SYMBOL vmlinux 0x562ad513 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x562b2941 skb_checksum +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 0x5680ceec d_alloc_root +EXPORT_SYMBOL vmlinux 0x5684c30a poll_schedule_timeout +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 0x56e57de7 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x56fc52cf fsnotify_destroy_mark_by_entry +EXPORT_SYMBOL vmlinux 0x56fd3737 __scm_send +EXPORT_SYMBOL vmlinux 0x56fe1d3c replace_mount_options +EXPORT_SYMBOL vmlinux 0x5703cfc5 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x5718184c uart_add_one_port +EXPORT_SYMBOL vmlinux 0x571e697a d_move +EXPORT_SYMBOL vmlinux 0x572992e3 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +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 0x57914745 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57cf4de0 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57ddab9b skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x57f4a5a7 journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x585a2f36 sock_setsockopt +EXPORT_SYMBOL vmlinux 0x586818d2 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x58a16af3 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x58d4f810 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x58d800d9 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x58e94935 phy_disable_interrupts +EXPORT_SYMBOL vmlinux 0x590ab3bd phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x590b3936 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x593884eb sk_dst_check +EXPORT_SYMBOL vmlinux 0x594a3bef pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x594e1317 __modsi3 +EXPORT_SYMBOL vmlinux 0x595b76e6 napi_reuse_skb +EXPORT_SYMBOL vmlinux 0x595ed6bb pipe_lock +EXPORT_SYMBOL vmlinux 0x59889397 simple_fill_super +EXPORT_SYMBOL vmlinux 0x59957f28 set_binfmt +EXPORT_SYMBOL vmlinux 0x59bb9576 inode_init_once +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59d8223a ioport_resource +EXPORT_SYMBOL vmlinux 0x59e5070d __do_div64 +EXPORT_SYMBOL vmlinux 0x5a30897a do_truncate +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 0x5aa5a9c3 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x5ab08a53 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x5ab356ab jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x5ae0d47f clocksource_register +EXPORT_SYMBOL vmlinux 0x5ae25347 tcf_em_register +EXPORT_SYMBOL vmlinux 0x5b0bdec3 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b211478 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x5b23ae84 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x5b2bd72e ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x5b4cdd65 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x5b5a9e1a dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x5b688aa6 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x5b7db0d1 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x5b8e72cf udp_disconnect +EXPORT_SYMBOL vmlinux 0x5b916e64 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x5bb36e8f napi_skb_finish +EXPORT_SYMBOL vmlinux 0x5bd5c31d blk_init_queue +EXPORT_SYMBOL vmlinux 0x5be2888a seq_release +EXPORT_SYMBOL vmlinux 0x5bee5522 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x5bf4a1eb sg_last +EXPORT_SYMBOL vmlinux 0x5c29f1c0 blk_start_queue +EXPORT_SYMBOL vmlinux 0x5c2b001d cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x5c4b62be bio_integrity_free +EXPORT_SYMBOL vmlinux 0x5c4c2b77 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x5c50f357 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x5c584bc8 create_mnt_ns +EXPORT_SYMBOL vmlinux 0x5c77ef4e __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x5c8a164b kthread_bind +EXPORT_SYMBOL vmlinux 0x5c9284a0 processor_id +EXPORT_SYMBOL vmlinux 0x5c9aaaf5 register_netdev +EXPORT_SYMBOL vmlinux 0x5c9b665a neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x5cac5dc9 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x5cce39b4 follow_pfn +EXPORT_SYMBOL vmlinux 0x5ce4ceb5 force_sig +EXPORT_SYMBOL vmlinux 0x5ce53101 locks_init_lock +EXPORT_SYMBOL vmlinux 0x5cf0ff2e netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x5d004134 __bio_clone +EXPORT_SYMBOL vmlinux 0x5d181b34 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x5d236697 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x5d2952d6 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x5e074095 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x5e353ec5 dst_destroy +EXPORT_SYMBOL vmlinux 0x5e459550 backlight_force_update +EXPORT_SYMBOL vmlinux 0x5e76adf2 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eb4a017 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x5eba73ad elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x5eca99b8 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5ed9f471 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5efc154f journal_forget +EXPORT_SYMBOL vmlinux 0x5f1d6e64 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x5f212421 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x5f37eb65 scsi_remove_target +EXPORT_SYMBOL vmlinux 0x5f381195 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x5f515dfc pci_get_slot +EXPORT_SYMBOL vmlinux 0x5f51f360 unregister_snap_client +EXPORT_SYMBOL vmlinux 0x5f5f97b4 con_is_bound +EXPORT_SYMBOL vmlinux 0x5f6c82a0 phy_print_status +EXPORT_SYMBOL vmlinux 0x5f7255de dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5f81f077 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fc23e87 d_delete +EXPORT_SYMBOL vmlinux 0x5fcb02c5 handle_sysrq +EXPORT_SYMBOL vmlinux 0x5fea5985 seq_open +EXPORT_SYMBOL vmlinux 0x5ff9c079 eth_header_cache +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x6035ca04 xfrm_register_km +EXPORT_SYMBOL vmlinux 0x60388d15 seq_bitmap +EXPORT_SYMBOL vmlinux 0x6039b1e2 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x6057bcd4 eth_header_parse +EXPORT_SYMBOL vmlinux 0x605c6305 free_netdev +EXPORT_SYMBOL vmlinux 0x605dad06 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x605ed6a0 set_groups +EXPORT_SYMBOL vmlinux 0x605f54d3 cap_file_mmap +EXPORT_SYMBOL vmlinux 0x60961c6e napi_gro_receive +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60b455f2 module_layout +EXPORT_SYMBOL vmlinux 0x60be069b udp_prot +EXPORT_SYMBOL vmlinux 0x60d9275f wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x60f71cfa complete +EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n +EXPORT_SYMBOL vmlinux 0x61080ff1 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x6109a929 generic_writepages +EXPORT_SYMBOL vmlinux 0x61118272 module_refcount +EXPORT_SYMBOL vmlinux 0x61120475 register_key_type +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x6146d3ea dev_remove_pack +EXPORT_SYMBOL vmlinux 0x616024d4 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x6189992d jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x618d9dc7 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x61a79f08 __irq_regs +EXPORT_SYMBOL vmlinux 0x61b67ce6 unregister_nls +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61dbf958 pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x61ea8e73 kill_pid +EXPORT_SYMBOL vmlinux 0x61f1f0fd jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x621bca25 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x62426581 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x624e5624 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x62b72b0d mutex_unlock +EXPORT_SYMBOL vmlinux 0x62cc001f __pci_register_driver +EXPORT_SYMBOL vmlinux 0x62cc569e cpu_present_mask +EXPORT_SYMBOL vmlinux 0x62cdccad do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x62db0b2c skb_find_text +EXPORT_SYMBOL vmlinux 0x62e2798e sock_register +EXPORT_SYMBOL vmlinux 0x62ff0c6a tty_port_put +EXPORT_SYMBOL vmlinux 0x630c6638 block_truncate_page +EXPORT_SYMBOL vmlinux 0x635ee4dc scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x63703a8c skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x6399e872 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x63ca669c default_unplug_io_fn +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 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x6482c302 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64d8b06a find_inode_number +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x65556ea5 input_allocate_device +EXPORT_SYMBOL vmlinux 0x6555be20 cad_pid +EXPORT_SYMBOL vmlinux 0x657f72cf genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x658f7ff5 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x659b40cc dev_addr_flush +EXPORT_SYMBOL vmlinux 0x65aa0d0d tcf_hash_search +EXPORT_SYMBOL vmlinux 0x65b8bc95 blk_end_request_all +EXPORT_SYMBOL vmlinux 0x65d5b5c1 genl_register_ops +EXPORT_SYMBOL vmlinux 0x65db84f9 pci_dev_put +EXPORT_SYMBOL vmlinux 0x660a703b alloc_fcdev +EXPORT_SYMBOL vmlinux 0x660beb37 serio_rescan +EXPORT_SYMBOL vmlinux 0x660ef239 generic_show_options +EXPORT_SYMBOL vmlinux 0x6626b22e dget_locked +EXPORT_SYMBOL vmlinux 0x665027e1 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x668ac6fe __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66ef3345 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x66fe88ba lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x670d1371 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x6717284b phy_detach +EXPORT_SYMBOL vmlinux 0x67205fc7 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x67550e05 audit_log_end +EXPORT_SYMBOL vmlinux 0x67616841 lock_may_read +EXPORT_SYMBOL vmlinux 0x6777bf74 write_inode_now +EXPORT_SYMBOL vmlinux 0x677f83e8 kernel_sock_shutdown +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 0x67db1da9 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x67f3508d get_io_context +EXPORT_SYMBOL vmlinux 0x681cc6d7 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x6855b795 xrlim_allow +EXPORT_SYMBOL vmlinux 0x6874cd48 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x68806d20 security_path_link +EXPORT_SYMBOL vmlinux 0x68a78e0b blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x68b74491 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x68e2eabd netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x68ea1a98 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x68f11fb1 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x68fb581a icst307_idx2s +EXPORT_SYMBOL vmlinux 0x6904b1c9 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x6933b246 xfrm_spd_getinfo +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 0x6985346f thaw_bdev +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x69be70f7 simple_statfs +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69cc25d5 do_munmap +EXPORT_SYMBOL vmlinux 0x69cf20ef ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a2cf553 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x6a3d1a44 write_cache_pages +EXPORT_SYMBOL vmlinux 0x6a5207ba elevator_init +EXPORT_SYMBOL vmlinux 0x6a64fd6e phy_connect +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6ab8e947 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp +EXPORT_SYMBOL vmlinux 0x6ae3cf30 llc_sap_close +EXPORT_SYMBOL vmlinux 0x6ae4b365 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x6aef351d kill_fasync +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b34b5bc bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x6b5a7057 ida_destroy +EXPORT_SYMBOL vmlinux 0x6b670010 blk_unplug +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bd3f30b dma_alloc_coherent +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bef487e blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x6c05965e may_umount_tree +EXPORT_SYMBOL vmlinux 0x6c17180a alloc_disk_node +EXPORT_SYMBOL vmlinux 0x6c1cbfd3 simple_link +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c2930d9 lro_receive_frags +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 0x6caf3e06 bio_split +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +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 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d3c80b5 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x6d662533 _find_first_bit_le +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d734dfa scsi_print_result +EXPORT_SYMBOL vmlinux 0x6d882c92 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x6d91f309 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x6da63e03 register_sysrq_key +EXPORT_SYMBOL vmlinux 0x6dcf7cf6 ps2_init +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6df94cfb dm_get_device +EXPORT_SYMBOL vmlinux 0x6e0ca5b8 dev_change_flags +EXPORT_SYMBOL vmlinux 0x6e1830f9 get_fs_type +EXPORT_SYMBOL vmlinux 0x6e184d5c key_validate +EXPORT_SYMBOL vmlinux 0x6e33a247 default_file_splice_read +EXPORT_SYMBOL vmlinux 0x6e51b15d set_bh_page +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e7fd933 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x6e922eef skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ea74d98 simple_unlink +EXPORT_SYMBOL vmlinux 0x6ed4c739 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x6eec47a0 blk_start_request +EXPORT_SYMBOL vmlinux 0x6f0ffdc4 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x6f295c8c pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x6f623ce5 ip_route_output_key +EXPORT_SYMBOL vmlinux 0x6f69b9e1 mb_cache_create +EXPORT_SYMBOL vmlinux 0x6f7374e7 try_to_release_page +EXPORT_SYMBOL vmlinux 0x6f859766 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6f9b56c3 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x6fa3c098 inet_bind +EXPORT_SYMBOL vmlinux 0x6faca5f0 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x6fc4f2f4 put_tty_driver +EXPORT_SYMBOL vmlinux 0x6fc8a68d cdev_init +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fe487b5 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x6ff4157e alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x700b88ac lock_sock_fast +EXPORT_SYMBOL vmlinux 0x7017085a xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x701ce76c tcp_shutdown +EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf +EXPORT_SYMBOL vmlinux 0x701d3ab7 dst_discard +EXPORT_SYMBOL vmlinux 0x702b7730 read_dev_sector +EXPORT_SYMBOL vmlinux 0x704e4aa3 bio_endio +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7077a3f5 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x70977ebd serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x709cc168 seq_puts +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70c9b837 pci_map_rom +EXPORT_SYMBOL vmlinux 0x70e36fee scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x7126e250 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x71352e03 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x7138981b proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x7139c2aa i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x713cbfc5 __scm_destroy +EXPORT_SYMBOL vmlinux 0x713fa354 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x7146bf5f __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x71470796 nf_afinfo +EXPORT_SYMBOL vmlinux 0x71525144 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x718a5716 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x71905f78 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a794fe sk_wait_data +EXPORT_SYMBOL vmlinux 0x71b658a6 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x71d0a512 ab3100_event_register +EXPORT_SYMBOL vmlinux 0x71defcf9 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x71ee87e3 kernel_connect +EXPORT_SYMBOL vmlinux 0x71f6cb4c gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x71f74b0b md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x72230c55 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x7229b3ed pci_iomap +EXPORT_SYMBOL vmlinux 0x722a2bc1 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x727d6eaf nobh_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x728da8f0 i2c_verify_client +EXPORT_SYMBOL vmlinux 0x72b0d872 aio_put_req +EXPORT_SYMBOL vmlinux 0x72b7dc2b dma_map_sg +EXPORT_SYMBOL vmlinux 0x72bac1d4 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte +EXPORT_SYMBOL vmlinux 0x72c9008f tcp_check_req +EXPORT_SYMBOL vmlinux 0x72d29d32 mmc_add_host +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72f76624 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x7330eed6 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x73333c17 mpage_writepage +EXPORT_SYMBOL vmlinux 0x734ce870 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +EXPORT_SYMBOL vmlinux 0x739dc670 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x7423ee20 unregister_console +EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte +EXPORT_SYMBOL vmlinux 0x7475f76a uart_match_port +EXPORT_SYMBOL vmlinux 0x74854d0f register_quota_format +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74a5db09 arp_find +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74d14ebc bd_claim +EXPORT_SYMBOL vmlinux 0x74da5e2c amba_driver_register +EXPORT_SYMBOL vmlinux 0x74fc8c2e bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x75067f32 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x750818c8 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x75105306 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x755e19b5 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x7577dde0 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x75923f16 unregister_key_type +EXPORT_SYMBOL vmlinux 0x7592d66e ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x759d9e53 skb_put +EXPORT_SYMBOL vmlinux 0x75a17bed prepare_to_wait +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75fee7fd __raw_writesb +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x765f75fb pgprot_user +EXPORT_SYMBOL vmlinux 0x767d6730 neigh_lookup +EXPORT_SYMBOL vmlinux 0x76881360 leds_event +EXPORT_SYMBOL vmlinux 0x76a47a35 scsi_host_alloc +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 0x76d8d843 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x76deaa3a mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0x76e85875 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x76ef1a42 bio_integrity_add_page +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 0x77636e17 vfs_llseek +EXPORT_SYMBOL vmlinux 0x777aed3c mddev_congested +EXPORT_SYMBOL vmlinux 0x7791193f icst525_s2div +EXPORT_SYMBOL vmlinux 0x77a7a8e4 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x77a9f367 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x77aa6fc2 keyring_search +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77c93faf inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77e0755a __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x77fe9a92 pci_disable_device +EXPORT_SYMBOL vmlinux 0x78226cb4 clk_enable +EXPORT_SYMBOL vmlinux 0x78789e6f mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0x787b9cd2 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78f17858 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x78f4382e mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x790a02c8 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x79263b6f cfi_varsize_frob +EXPORT_SYMBOL vmlinux 0x793461e2 __breadahead +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 0x797f8551 kernel_setsockopt +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 0x79f6bf0f jbd2_log_wait_commit +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 0x7a7cd89f tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x7a87d273 md_integrity_register +EXPORT_SYMBOL vmlinux 0x7a9519a1 dev_disable_lro +EXPORT_SYMBOL vmlinux 0x7a9cebff mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x7a9ea951 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x7abe395b block_commit_write +EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip +EXPORT_SYMBOL vmlinux 0x7af9d013 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x7b30f682 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7b7636c4 key_task_permission +EXPORT_SYMBOL vmlinux 0x7bad90d5 bdevname +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7be34886 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x7bf1da65 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x7bf382c9 mpage_readpages +EXPORT_SYMBOL vmlinux 0x7bf6532e pci_set_power_state +EXPORT_SYMBOL vmlinux 0x7bfb830c llc_set_station_handler +EXPORT_SYMBOL vmlinux 0x7c0c32c1 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x7c4728e2 vlan_gro_receive +EXPORT_SYMBOL vmlinux 0x7c6041dd soft_cursor +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c667957 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x7c6bd505 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x7c6c959f dquot_quota_on_path +EXPORT_SYMBOL vmlinux 0x7c822776 inet6_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 0x7cc035a7 __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x7cfb2af6 journal_errno +EXPORT_SYMBOL vmlinux 0x7d070af7 read_cache_pages +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d16cd80 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x7d17dba3 ps2_end_command +EXPORT_SYMBOL vmlinux 0x7d2b4e2c dquot_quota_off +EXPORT_SYMBOL vmlinux 0x7d3b1254 pci_enable_device +EXPORT_SYMBOL vmlinux 0x7d3d7f95 blk_plug_device +EXPORT_SYMBOL vmlinux 0x7d4a7123 single_release +EXPORT_SYMBOL vmlinux 0x7d702082 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x7d84e4a3 register_gifconf +EXPORT_SYMBOL vmlinux 0x7da327b5 dev_uc_add +EXPORT_SYMBOL vmlinux 0x7dad4a06 udplite_prot +EXPORT_SYMBOL vmlinux 0x7dae0a3d simple_setattr +EXPORT_SYMBOL vmlinux 0x7db57751 proc_dointvec +EXPORT_SYMBOL vmlinux 0x7dbbd446 set_page_dirty +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7dd19b4d inet_getname +EXPORT_SYMBOL vmlinux 0x7dd9b78c blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x7df1245b sock_wmalloc +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 0x7e62dbf3 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x7e885730 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x7e9428dd xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7ede9b51 blk_end_request +EXPORT_SYMBOL vmlinux 0x7f020519 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x7f07c8c9 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f2649de pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x7f4c05ce journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x7f5b940a jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x7f63b31e _memcpy_toio +EXPORT_SYMBOL vmlinux 0x7f6c7ca3 register_md_personality +EXPORT_SYMBOL vmlinux 0x7f93bc75 neigh_create +EXPORT_SYMBOL vmlinux 0x7fc8f6c7 ip6_route_output +EXPORT_SYMBOL vmlinux 0x7fce4f35 dev_mc_del +EXPORT_SYMBOL vmlinux 0x7ff5ce16 secpath_dup +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x800e4ffa __muldi3 +EXPORT_SYMBOL vmlinux 0x8044abf2 install_exec_creds +EXPORT_SYMBOL vmlinux 0x805b705c nf_ip6_checksum +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 0x80ab2e8c spi_attach_transport +EXPORT_SYMBOL vmlinux 0x80b73e78 security_path_mkdir +EXPORT_SYMBOL vmlinux 0x80cd1e2d sync_inode +EXPORT_SYMBOL vmlinux 0x80cf0643 init_task +EXPORT_SYMBOL vmlinux 0x80d817ab wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x80de231a idr_remove +EXPORT_SYMBOL vmlinux 0x80e3578e skb_tx_hash +EXPORT_SYMBOL vmlinux 0x81003ee2 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x810c164a genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x8114a65f scsi_device_resume +EXPORT_SYMBOL vmlinux 0x813c0880 dm_dirty_log_type_register +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 0x815d4473 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x816b1d12 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf +EXPORT_SYMBOL vmlinux 0x8181cffe xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x81a09d01 eth_type_trans +EXPORT_SYMBOL vmlinux 0x81b04bfc completion_done +EXPORT_SYMBOL vmlinux 0x81bfbe5b kernel_sendpage +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81ecb689 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x81fab704 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x820a892f inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x821e8d91 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x825eb101 netdev_features_change +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x8262f64b tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x82742e34 console_start +EXPORT_SYMBOL vmlinux 0x8285892b block_read_full_page +EXPORT_SYMBOL vmlinux 0x82879579 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x82aa3702 netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82c64058 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x82ce3869 nf_register_hook +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x82f9a22e textsearch_register +EXPORT_SYMBOL vmlinux 0x83032e0b grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x831a42bd tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x831d090a rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0x8320bea8 __umodsi3 +EXPORT_SYMBOL vmlinux 0x833e37f1 ip_route_input_common +EXPORT_SYMBOL vmlinux 0x83680340 inet_frags_init +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 0x83b6a040 iput +EXPORT_SYMBOL vmlinux 0x83d25c38 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x83e9f2a7 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x83feca72 contig_page_data +EXPORT_SYMBOL vmlinux 0x84108594 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x844d8d27 write_one_page +EXPORT_SYMBOL vmlinux 0x84679f3b pci_match_id +EXPORT_SYMBOL vmlinux 0x847966b3 elv_queue_empty +EXPORT_SYMBOL vmlinux 0x84ab8c68 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x84b183ae strncmp +EXPORT_SYMBOL vmlinux 0x84caacb8 simple_setsize +EXPORT_SYMBOL vmlinux 0x84ccd8a3 i2c_transfer +EXPORT_SYMBOL vmlinux 0x84d7bb75 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x84db4b6e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x84df81ba genphy_suspend +EXPORT_SYMBOL vmlinux 0x850e7e6d mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x852c08ae lro_flush_all +EXPORT_SYMBOL vmlinux 0x85576f0f wireless_send_event +EXPORT_SYMBOL vmlinux 0x855816b3 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x8582aa96 kill_pgrp +EXPORT_SYMBOL vmlinux 0x859a9f0e xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x85a21442 may_umount +EXPORT_SYMBOL vmlinux 0x85a6507e find_lock_page +EXPORT_SYMBOL vmlinux 0x85afb02e bdget_disk +EXPORT_SYMBOL vmlinux 0x85d6d1c3 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85f68a74 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x862c3324 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x869903af netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x86ab8142 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x86aca9a0 phy_stop +EXPORT_SYMBOL vmlinux 0x86ace875 inode_setattr +EXPORT_SYMBOL vmlinux 0x86b937f2 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x86ba131c mii_check_link +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x871123f3 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x871aec95 bh_uptodate_or_lock +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 0x87614bf5 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x8779a966 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87a87eb4 d_alloc_name +EXPORT_SYMBOL vmlinux 0x87dbba14 ida_get_new +EXPORT_SYMBOL vmlinux 0x880117d6 tty_hangup +EXPORT_SYMBOL vmlinux 0x88015e7d bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x8827c42c i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x882f6699 netlink_unicast +EXPORT_SYMBOL vmlinux 0x8847f7a5 alloc_trdev +EXPORT_SYMBOL vmlinux 0x8872fc91 __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0x887a7428 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x888352fd nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x8893fa5d finish_wait +EXPORT_SYMBOL vmlinux 0x8899f909 dm_snap_origin +EXPORT_SYMBOL vmlinux 0x889ff429 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0x88a86eec filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x88c6b21e path_put +EXPORT_SYMBOL vmlinux 0x88ced581 napi_complete +EXPORT_SYMBOL vmlinux 0x88d16dc8 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x88d22e6e __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x88e6f015 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x89378baf d_path +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 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 0x8a251660 rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0x8a2dc5c6 sock_no_getname +EXPORT_SYMBOL vmlinux 0x8a4fa83b __aeabi_llsr +EXPORT_SYMBOL vmlinux 0x8a729f89 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a872979 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x8a8fea8c tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8acc5740 block_write_begin +EXPORT_SYMBOL vmlinux 0x8aea88e4 journal_create +EXPORT_SYMBOL vmlinux 0x8afb3564 vmap +EXPORT_SYMBOL vmlinux 0x8b145c27 pid_task +EXPORT_SYMBOL vmlinux 0x8b1ea1f8 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x8b35a321 amba_release_regions +EXPORT_SYMBOL vmlinux 0x8b39cde9 path_lookup +EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x8b5cb42f open_exec +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b906e1e vfs_read +EXPORT_SYMBOL vmlinux 0x8ba0fa90 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long +EXPORT_SYMBOL vmlinux 0x8bed1f7c tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x8bf249c5 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x8c01bdbc qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x8c0e1e92 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x8c127a2f serio_open +EXPORT_SYMBOL vmlinux 0x8c426ebe tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x8c5d9853 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x8c6d17a6 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x8c9379d9 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x8cc0f7c7 tty_shutdown +EXPORT_SYMBOL vmlinux 0x8cc3010b iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x8ccda6f2 load_nls_default +EXPORT_SYMBOL vmlinux 0x8cf51d15 up +EXPORT_SYMBOL vmlinux 0x8d35454d insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x8d411be4 dm_register_target +EXPORT_SYMBOL vmlinux 0x8d496e07 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x8d4dbd6c unregister_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0x8d50fc31 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d7c312d jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x8db5bcdc cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x8e0612e7 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e13478e scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk +EXPORT_SYMBOL vmlinux 0x8e66bf41 block_prepare_write +EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq +EXPORT_SYMBOL vmlinux 0x8e876ca5 fget +EXPORT_SYMBOL vmlinux 0x8e99124c posix_acl_permission +EXPORT_SYMBOL vmlinux 0x8ed029fd tcp_close +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8f02d209 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x8f07ca98 journal_clear_err +EXPORT_SYMBOL vmlinux 0x8f0fc9d8 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x8f110736 i2c_master_recv +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f678b07 __stack_chk_guard +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f849406 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x8fe71325 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x8ffbc4a2 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x8ffd522b vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x90288f89 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x902e7024 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x905c4289 md_error +EXPORT_SYMBOL vmlinux 0x90659e0a genphy_update_link +EXPORT_SYMBOL vmlinux 0x907733df splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x90a344c6 input_free_device +EXPORT_SYMBOL vmlinux 0x90b51d6c schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x9112ef6f kset_register +EXPORT_SYMBOL vmlinux 0x913d4239 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x9148f149 mdiobus_write +EXPORT_SYMBOL vmlinux 0x9153aeed tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource +EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong +EXPORT_SYMBOL vmlinux 0x919029aa __readwrite_bug +EXPORT_SYMBOL vmlinux 0x91c0980e icst_hz +EXPORT_SYMBOL vmlinux 0x91d39fa2 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x91dea5d5 nobh_writepage +EXPORT_SYMBOL vmlinux 0x91f5c308 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x920664c8 mempool_free +EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool +EXPORT_SYMBOL vmlinux 0x921c54cc dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x923c7437 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x9264014a default_llseek +EXPORT_SYMBOL vmlinux 0x929eecac __strncpy_from_user +EXPORT_SYMBOL vmlinux 0x92bc8615 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x92c86d11 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x92d364b6 setup_new_exec +EXPORT_SYMBOL vmlinux 0x931378d9 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x93171d48 dcache_readdir +EXPORT_SYMBOL vmlinux 0x9337dda2 rtnl_notify +EXPORT_SYMBOL vmlinux 0x9338bb17 seq_lseek +EXPORT_SYMBOL vmlinux 0x933da3a3 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x9346f0a7 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x9353c81d mii_check_media +EXPORT_SYMBOL vmlinux 0x9361e112 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x93a2fae1 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93d07dd0 dma_pool_create +EXPORT_SYMBOL vmlinux 0x93d599c2 rtc_dev_update_irq_enable_emul +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 0x942e8a9a free_buffer_head +EXPORT_SYMBOL vmlinux 0x9431fa04 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x943f8242 scsi_unregister +EXPORT_SYMBOL vmlinux 0x9447e2fb eth_header +EXPORT_SYMBOL vmlinux 0x94540d41 serio_interrupt +EXPORT_SYMBOL vmlinux 0x946e2c58 tty_mutex +EXPORT_SYMBOL vmlinux 0x94727910 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x947b6425 d_genocide +EXPORT_SYMBOL vmlinux 0x947c8060 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94af632e complete_all +EXPORT_SYMBOL vmlinux 0x94bacac9 dquot_resume +EXPORT_SYMBOL vmlinux 0x94d2c966 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94e815a3 mmc_host_enable +EXPORT_SYMBOL vmlinux 0x953a943c md_barrier_request +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x9562af9d bd_set_size +EXPORT_SYMBOL vmlinux 0x956f50dd sock_no_bind +EXPORT_SYMBOL vmlinux 0x95dbe078 __get_user_2 +EXPORT_SYMBOL vmlinux 0x95dc0a01 netif_device_attach +EXPORT_SYMBOL vmlinux 0x95f638d5 posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x95f7c1a0 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x9632920c simple_transaction_set +EXPORT_SYMBOL vmlinux 0x96434c8c kset_unregister +EXPORT_SYMBOL vmlinux 0x9646dc1e jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x964b3b6b journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x9656f8a0 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x968ce243 vga_put +EXPORT_SYMBOL vmlinux 0x968f8707 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x9696b966 freeze_bdev +EXPORT_SYMBOL vmlinux 0x96a335cc tty_port_hangup +EXPORT_SYMBOL vmlinux 0x96a8c31a abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x96b2ba42 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x97121c64 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x97255bdf strlen +EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n +EXPORT_SYMBOL vmlinux 0x974c058c jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x9768c5fc lock_rename +EXPORT_SYMBOL vmlinux 0x97760aff open_by_devnum +EXPORT_SYMBOL vmlinux 0x9781a135 bdi_destroy +EXPORT_SYMBOL vmlinux 0x978814e9 path_get +EXPORT_SYMBOL vmlinux 0x978879f4 icmpv6_send +EXPORT_SYMBOL vmlinux 0x97887b51 kdb_current_task +EXPORT_SYMBOL vmlinux 0x9791b3cd remove_from_page_cache +EXPORT_SYMBOL vmlinux 0x97b643d8 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x97f38a77 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x98082893 __copy_to_user +EXPORT_SYMBOL vmlinux 0x983e5a1c netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x9844f484 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x984a2e6e neigh_connected_output +EXPORT_SYMBOL vmlinux 0x9855754b clk_add_alias +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x9899233a commit_creds +EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init +EXPORT_SYMBOL vmlinux 0x98a1f1ae unlock_page +EXPORT_SYMBOL vmlinux 0x98b7a2f6 __blockdev_direct_IO_newtrunc +EXPORT_SYMBOL vmlinux 0x98bf0d11 sock_map_fd +EXPORT_SYMBOL vmlinux 0x98c2fc62 revert_creds +EXPORT_SYMBOL vmlinux 0x98fda5d3 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x9905064b flush_delayed_work +EXPORT_SYMBOL vmlinux 0x992229e3 request_key +EXPORT_SYMBOL vmlinux 0x9926d1e4 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x99752769 scsi_add_device +EXPORT_SYMBOL vmlinux 0x998001ee journal_init_dev +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999c3148 __raw_readsb +EXPORT_SYMBOL vmlinux 0x999e219b bio_put +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99aea31a rfkill_destroy +EXPORT_SYMBOL vmlinux 0x99bb8806 memmove +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x99fc991c register_filesystem +EXPORT_SYMBOL vmlinux 0x9a14f219 is_bad_inode +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a2d4f76 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x9a374367 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x9a460c44 vga_tryget +EXPORT_SYMBOL vmlinux 0x9a8db81b nla_append +EXPORT_SYMBOL vmlinux 0x9aaf405a blk_get_request +EXPORT_SYMBOL vmlinux 0x9ad06a11 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x9adbe247 sg_miter_start +EXPORT_SYMBOL vmlinux 0x9afa3154 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x9b251ddd llc_sap_find +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b773d30 netif_notify_peers +EXPORT_SYMBOL vmlinux 0x9b94edd4 scsi_host_put +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9baf27ac down_read_trylock +EXPORT_SYMBOL vmlinux 0x9bbf0f0d tcp_disconnect +EXPORT_SYMBOL vmlinux 0x9bce482f __release_region +EXPORT_SYMBOL vmlinux 0x9bd27e65 map_destroy +EXPORT_SYMBOL vmlinux 0x9bd91846 generic_file_open +EXPORT_SYMBOL vmlinux 0x9bdcf6ad pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x9beda1bf blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c2199fa generic_setattr +EXPORT_SYMBOL vmlinux 0x9c2391b5 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x9c389d25 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x9c5103cc skb_seq_read +EXPORT_SYMBOL vmlinux 0x9c5b17a5 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt +EXPORT_SYMBOL vmlinux 0x9c8eabd3 key_link +EXPORT_SYMBOL vmlinux 0x9ca097cb __put_cred +EXPORT_SYMBOL vmlinux 0x9cb1d18c generic_make_request +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cd51d70 do_SAK +EXPORT_SYMBOL vmlinux 0x9cd60539 sg_free_table +EXPORT_SYMBOL vmlinux 0x9cd9467c remove_arg_zero +EXPORT_SYMBOL vmlinux 0x9ce6bfa1 km_new_mapping +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cef94ce igrab +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 0x9d1e64c3 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d669763 memcpy +EXPORT_SYMBOL vmlinux 0x9d7a78d4 journal_restart +EXPORT_SYMBOL vmlinux 0x9dc8fc6b security_path_truncate +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e97f3d2 journal_load +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9eb0231d sk_reset_txq +EXPORT_SYMBOL vmlinux 0x9ed369fb page_readlink +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9f0b12de km_query +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f12b360 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f599d52 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x9f64b9be elv_rb_find +EXPORT_SYMBOL vmlinux 0x9f65150c fb_pan_display +EXPORT_SYMBOL vmlinux 0x9f8f1589 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f99d9bf ida_pre_get +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fd6c482 icmp_send +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9ffd7d83 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xa00be4d4 netpoll_print_options +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa052724f tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa068a6c4 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xa07ac24b irq_stat +EXPORT_SYMBOL vmlinux 0xa07e2ed3 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0xa08e1cde hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0xa0943371 vmtruncate +EXPORT_SYMBOL vmlinux 0xa0b00afb sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b142f5 unregister_filesystem +EXPORT_SYMBOL vmlinux 0xa0b4dc94 dquot_quota_on +EXPORT_SYMBOL vmlinux 0xa0c28989 module_put +EXPORT_SYMBOL vmlinux 0xa0c29de4 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0cf7440 skb_split +EXPORT_SYMBOL vmlinux 0xa0dede5a netif_device_detach +EXPORT_SYMBOL vmlinux 0xa0ee369c vm_insert_page +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 0xa12bbe7b mpage_writepages +EXPORT_SYMBOL vmlinux 0xa1338cab i2c_register_driver +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 0xa2057b7c security_path_chmod +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa220b66e get_write_access +EXPORT_SYMBOL vmlinux 0xa236d9bf ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0xa25e88e1 cfi_read_pri +EXPORT_SYMBOL vmlinux 0xa25fb0d4 key_type_keyring +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2ad4d31 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xa2b47600 follow_up +EXPORT_SYMBOL vmlinux 0xa2d54a4e tcp_read_sock +EXPORT_SYMBOL vmlinux 0xa2f34b1b cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xa321d93c skb_copy +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa36bc163 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xa3805874 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xa3ac4e4c vfs_fsync +EXPORT_SYMBOL vmlinux 0xa3c5fa0b ilookup5 +EXPORT_SYMBOL vmlinux 0xa405a4b9 __kfree_skb +EXPORT_SYMBOL vmlinux 0xa412821c input_open_device +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa4664eca kmem_cache_free +EXPORT_SYMBOL vmlinux 0xa46bbdaf tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xa47a9da8 dquot_operations +EXPORT_SYMBOL vmlinux 0xa48b8c18 xfrm_state_add +EXPORT_SYMBOL vmlinux 0xa510ebbc vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0xa52ea883 inet_frags_fini +EXPORT_SYMBOL vmlinux 0xa547364a jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa5866be5 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5b045a9 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xa5b12b6a dm_io +EXPORT_SYMBOL vmlinux 0xa5b57a2e dev_get_by_name +EXPORT_SYMBOL vmlinux 0xa5b6cf24 posix_test_lock +EXPORT_SYMBOL vmlinux 0xa5c3f2d7 iget_failed +EXPORT_SYMBOL vmlinux 0xa5cef8ad release_resource +EXPORT_SYMBOL vmlinux 0xa5e1238f bdev_stack_limits +EXPORT_SYMBOL vmlinux 0xa5f2962f journal_init_inode +EXPORT_SYMBOL vmlinux 0xa5f3ecba jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0xa5fc3a0a wake_up_process +EXPORT_SYMBOL vmlinux 0xa60a9451 __nla_reserve +EXPORT_SYMBOL vmlinux 0xa62a30cf qdisc_reset +EXPORT_SYMBOL vmlinux 0xa62afa94 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xa6388272 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa6696bb6 tty_port_close +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa68b7592 register_qdisc +EXPORT_SYMBOL vmlinux 0xa68ca3a5 set_bdi_congested +EXPORT_SYMBOL vmlinux 0xa6b11e49 kill_anon_super +EXPORT_SYMBOL vmlinux 0xa6ba133a xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6ebd762 input_event +EXPORT_SYMBOL vmlinux 0xa718820c seq_open_private +EXPORT_SYMBOL vmlinux 0xa7350b5e input_unregister_device +EXPORT_SYMBOL vmlinux 0xa74a66a5 dev_gro_receive +EXPORT_SYMBOL vmlinux 0xa74da95e thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0xa75fb6cd fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xa774a23c generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xa79e88a1 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0xa7a1bc57 unload_nls +EXPORT_SYMBOL vmlinux 0xa7b5f96f dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xa7b71d1c inet_addr_type +EXPORT_SYMBOL vmlinux 0xa7cce445 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0xa7d8539c fb_show_logo +EXPORT_SYMBOL vmlinux 0xa7eaeacd skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xa8015a22 lock_may_write +EXPORT_SYMBOL vmlinux 0xa82cf6ac km_policy_notify +EXPORT_SYMBOL vmlinux 0xa837ca0e bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0xa83dbc68 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0xa879c6d0 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xa8934381 inet_select_addr +EXPORT_SYMBOL vmlinux 0xa8c9286c xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xa8cde9a7 remove_wait_queue +EXPORT_SYMBOL vmlinux 0xa8d47c09 i2c_del_driver +EXPORT_SYMBOL vmlinux 0xa8d87a4d dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xa8dfce16 ppp_unit_number +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 0xa9234b5c xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xa92e51f6 rfkill_set_states +EXPORT_SYMBOL vmlinux 0xa94cbe83 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xa955e502 security_path_rename +EXPORT_SYMBOL vmlinux 0xa98bf068 __neigh_event_send +EXPORT_SYMBOL vmlinux 0xa9abc38a scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xa9c121e5 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0xa9d6c0a0 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xaa1c4918 dquot_scan_active +EXPORT_SYMBOL vmlinux 0xaa4a0165 phy_connect_direct +EXPORT_SYMBOL vmlinux 0xaa5927f9 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa94c694 __init_rwsem +EXPORT_SYMBOL vmlinux 0xaabe7a45 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xaac5a15e fsnotify_find_mark_entry +EXPORT_SYMBOL vmlinux 0xaaceee65 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xaada1e15 dev_driver_string +EXPORT_SYMBOL vmlinux 0xaae623e9 lease_modify +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab058b7d pci_fixup_device +EXPORT_SYMBOL vmlinux 0xab455eb0 up_read +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab6a40c9 tty_free_termios +EXPORT_SYMBOL vmlinux 0xab7a4622 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xab9d1cd2 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xabcbd490 remove_inode_hash +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabe6ed56 sock_no_poll +EXPORT_SYMBOL vmlinux 0xabfcfac5 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xac0aa2e9 tty_port_open +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac13abf7 pci_claim_resource +EXPORT_SYMBOL vmlinux 0xac1db622 sock_sendmsg +EXPORT_SYMBOL vmlinux 0xac3b291b phy_enable_interrupts +EXPORT_SYMBOL vmlinux 0xac405fcd fifo_create_dflt +EXPORT_SYMBOL vmlinux 0xac54d2af __wait_on_buffer +EXPORT_SYMBOL vmlinux 0xac5f113d cpu_all_bits +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac8578dc filemap_flush +EXPORT_SYMBOL vmlinux 0xaca397f5 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xacca49f5 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacdaa0fa dev_trans_start +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad25bb20 init_timer_key +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad5a2ef0 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xad7d5827 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xad84368f sock_wake_async +EXPORT_SYMBOL vmlinux 0xadb3d81e up_write +EXPORT_SYMBOL vmlinux 0xadc87873 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region +EXPORT_SYMBOL vmlinux 0xae2b9c9a dma_pool_alloc +EXPORT_SYMBOL vmlinux 0xae3e8d87 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xae40e09a generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0xae4419ad blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0xae4aa5b8 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xae567b6d rwsem_is_locked +EXPORT_SYMBOL vmlinux 0xae67d10f tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaedf45fb sockfd_lookup +EXPORT_SYMBOL vmlinux 0xaee2aae0 inet_add_protocol +EXPORT_SYMBOL vmlinux 0xaeea5798 dquot_commit_info +EXPORT_SYMBOL vmlinux 0xaef06bd6 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xaef390e7 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xaf10d972 mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0xaf288336 tcp_child_process +EXPORT_SYMBOL vmlinux 0xaf289563 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf50e76d elf_set_personality +EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xaf8aa518 system_rev +EXPORT_SYMBOL vmlinux 0xafa14f0d framebuffer_alloc +EXPORT_SYMBOL vmlinux 0xafad9fe4 scsi_register +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 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0ed04a5 nf_hook_slow +EXPORT_SYMBOL vmlinux 0xb0f991ff tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xb0fab6dd inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xb10c4afa generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xb11f5897 request_key_async +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb12d0210 sock_no_connect +EXPORT_SYMBOL vmlinux 0xb17962c1 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0xb1892a33 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1b22911 down_write +EXPORT_SYMBOL vmlinux 0xb1bcef8f journal_force_commit +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1e047f3 ip6_xmit +EXPORT_SYMBOL vmlinux 0xb1e2040d eth_mac_addr +EXPORT_SYMBOL vmlinux 0xb2217155 page_address +EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2705037 blk_stop_queue +EXPORT_SYMBOL vmlinux 0xb29c03b5 flush_signals +EXPORT_SYMBOL vmlinux 0xb2c01901 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xb3085f2a writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0xb34f0097 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0xb34ffc3d blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xb378a2cb fb_class +EXPORT_SYMBOL vmlinux 0xb3948ae4 f_setown +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3ae08aa phy_start_aneg +EXPORT_SYMBOL vmlinux 0xb3c82ba9 seq_putc +EXPORT_SYMBOL vmlinux 0xb3efc72d down +EXPORT_SYMBOL vmlinux 0xb4025378 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0xb4063ac3 ps2_drain +EXPORT_SYMBOL vmlinux 0xb415ec7c blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0xb41ccb79 d_invalidate +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb429410a posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xb42ef2a9 read_cache_page_async +EXPORT_SYMBOL vmlinux 0xb4344b07 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xb469ddeb mdiobus_free +EXPORT_SYMBOL vmlinux 0xb46ac73e eth_change_mtu +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb47098d6 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xb4b9d7a0 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xb4c2a61b rfkill_register +EXPORT_SYMBOL vmlinux 0xb4d41883 dquot_transfer +EXPORT_SYMBOL vmlinux 0xb502e994 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb5148a80 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xb5207db5 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0xb53e524f input_set_capability +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5acee60 cdrom_open +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb6431a93 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0xb6435710 sk_common_release +EXPORT_SYMBOL vmlinux 0xb64c5e3d bio_integrity_get_tag +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 0xb6c5f169 tty_register_driver +EXPORT_SYMBOL vmlinux 0xb6d0c582 ps2_command +EXPORT_SYMBOL vmlinux 0xb6e16f8d bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xb6f8dbd3 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xb703533d xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xb706fbf4 skb_store_bits +EXPORT_SYMBOL vmlinux 0xb708d80f sock_create_lite +EXPORT_SYMBOL vmlinux 0xb7155066 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0xb725dccb cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xb72d4706 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0xb732b110 generic_write_sync +EXPORT_SYMBOL vmlinux 0xb75ed453 uart_register_driver +EXPORT_SYMBOL vmlinux 0xb77a7c47 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xb78b3626 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xb7904806 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xb7937d97 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0xb79ac5f0 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xb79ba432 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0xb7af3996 unlock_new_inode +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 0xb7ee0fb2 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0xb7fe53e1 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xb81fd3be idr_find +EXPORT_SYMBOL vmlinux 0xb8255243 security_path_chown +EXPORT_SYMBOL vmlinux 0xb841678e skb_set_dev +EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat +EXPORT_SYMBOL vmlinux 0xb85c95d8 file_update_time +EXPORT_SYMBOL vmlinux 0xb8666e24 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb8719317 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0xb874b491 simple_transaction_get +EXPORT_SYMBOL vmlinux 0xb8769449 unregister_binfmt +EXPORT_SYMBOL vmlinux 0xb87fda08 register_netdevice +EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8a17cf5 add_disk +EXPORT_SYMBOL vmlinux 0xb8aa2342 __check_region +EXPORT_SYMBOL vmlinux 0xb8ccac7e ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xb8ce0223 d_splice_alias +EXPORT_SYMBOL vmlinux 0xb8e6719f blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xb8fdd71b nf_ct_attach +EXPORT_SYMBOL vmlinux 0xb9122484 inet_shutdown +EXPORT_SYMBOL vmlinux 0xb92f8bfc slow_work_cancel +EXPORT_SYMBOL vmlinux 0xb95f98d6 _memset_io +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb99e1fa4 search_binary_handler +EXPORT_SYMBOL vmlinux 0xb9acd3d9 __put_user_2 +EXPORT_SYMBOL vmlinux 0xb9e52429 __wake_up +EXPORT_SYMBOL vmlinux 0xba182da4 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0xba2229e9 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba559709 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xba676de4 dev_uc_init +EXPORT_SYMBOL vmlinux 0xba7513bf fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0xba7e6875 ip_defrag +EXPORT_SYMBOL vmlinux 0xba9afd8f dm_table_get_mode +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbac7caa5 put_disk +EXPORT_SYMBOL vmlinux 0xbad0f971 skb_append +EXPORT_SYMBOL vmlinux 0xbb12d3ac mntput_no_expire +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb197a48 kunmap_high +EXPORT_SYMBOL vmlinux 0xbb30fa4b iget_locked +EXPORT_SYMBOL vmlinux 0xbb4377ab sync_blockdev +EXPORT_SYMBOL vmlinux 0xbb43c143 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xbb4f6c53 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb628d57 security_inode_init_security +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 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbbf5c07 flush_old_exec +EXPORT_SYMBOL vmlinux 0xbbe42789 udp_poll +EXPORT_SYMBOL vmlinux 0xbbe9b01c rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xbc0ca64e pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xbc10dd97 __put_user_4 +EXPORT_SYMBOL vmlinux 0xbc1b09c2 bio_sector_offset +EXPORT_SYMBOL vmlinux 0xbc50ff78 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xbc8af5a1 slow_work_register_user +EXPORT_SYMBOL vmlinux 0xbc8cb370 gen_pool_free +EXPORT_SYMBOL vmlinux 0xbcb400a2 tcp_ioctl +EXPORT_SYMBOL vmlinux 0xbcbb6b02 mem_map +EXPORT_SYMBOL vmlinux 0xbce37715 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xbceaabe9 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xbcfbbe23 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xbd556199 sk_release_kernel +EXPORT_SYMBOL vmlinux 0xbd7ba8b2 mmc_resume_host +EXPORT_SYMBOL vmlinux 0xbdcbc100 mod_timer +EXPORT_SYMBOL vmlinux 0xbdd7383f __lock_page +EXPORT_SYMBOL vmlinux 0xbddb52db uart_suspend_port +EXPORT_SYMBOL vmlinux 0xbde0e344 register_framebuffer +EXPORT_SYMBOL vmlinux 0xbdf2580d __raw_readsl +EXPORT_SYMBOL vmlinux 0xbdf523a2 tcp_connect +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbdfd8923 do_map_probe +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe33103d tcp_sendpage +EXPORT_SYMBOL vmlinux 0xbe6264f2 dev_alloc_name +EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource +EXPORT_SYMBOL vmlinux 0xbe6a62d3 pci_clear_mwi +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 0xbf3981db md_register_thread +EXPORT_SYMBOL vmlinux 0xbf3bf8af sock_release +EXPORT_SYMBOL vmlinux 0xbf3ed572 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xbf47f1ee dm_exception_store_destroy +EXPORT_SYMBOL vmlinux 0xbf74e46f bd_release +EXPORT_SYMBOL vmlinux 0xbf776d52 sock_init_data +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf82b709 pcim_iomap +EXPORT_SYMBOL vmlinux 0xbf831c91 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfa6fbe6 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0xbfb4371c blk_run_queue +EXPORT_SYMBOL vmlinux 0xbfbc0da2 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xbfbf5df0 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0xbfd54ca2 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xbfda7bb1 dm_snap_cow +EXPORT_SYMBOL vmlinux 0xbfe7aeb8 kunmap +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff1f894 pagevec_lookup +EXPORT_SYMBOL vmlinux 0xc01a4d2c dquot_initialize +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc06ec2c8 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc0a117b5 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xc0c4fd82 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xc0cae4fa jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xc0e1b3fa serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0xc0e88118 dma_async_device_register +EXPORT_SYMBOL vmlinux 0xc107b134 scsi_scan_host +EXPORT_SYMBOL vmlinux 0xc111586b xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc13dd199 generic_write_checks +EXPORT_SYMBOL vmlinux 0xc1598162 proto_unregister +EXPORT_SYMBOL vmlinux 0xc15ca2d7 dev_mc_flush +EXPORT_SYMBOL vmlinux 0xc1601a4f _change_bit_le +EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic +EXPORT_SYMBOL vmlinux 0xc177c17d __serio_register_port +EXPORT_SYMBOL vmlinux 0xc17b6a0e try_wait_for_completion +EXPORT_SYMBOL vmlinux 0xc19a5ff7 dm_put_device +EXPORT_SYMBOL vmlinux 0xc1aed639 unlock_super +EXPORT_SYMBOL vmlinux 0xc1c15cb5 neigh_destroy +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1c64dfb tty_port_init +EXPORT_SYMBOL vmlinux 0xc1fc4511 _test_and_change_bit_le +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 0xc25507f5 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc2719d91 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xc27487dd __bug +EXPORT_SYMBOL vmlinux 0xc283e27f phy_driver_register +EXPORT_SYMBOL vmlinux 0xc2b1211c blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xc2b25fb7 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xc2b2dc9a __dquot_free_space +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e058a4 idr_get_new_above +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc33c7400 security_path_unlink +EXPORT_SYMBOL vmlinux 0xc359fb65 abort +EXPORT_SYMBOL vmlinux 0xc3a60a45 netif_napi_add +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3eb20ba blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0xc3fa6dec touch_atime +EXPORT_SYMBOL vmlinux 0xc432a198 cdev_add +EXPORT_SYMBOL vmlinux 0xc4468932 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0xc4542fd7 __bread +EXPORT_SYMBOL vmlinux 0xc45ef616 idr_for_each +EXPORT_SYMBOL vmlinux 0xc473d0ac pci_assign_resource +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc49a4169 check_disk_size_change +EXPORT_SYMBOL vmlinux 0xc4b806cf blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xc4c248b9 ___ratelimit +EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic +EXPORT_SYMBOL vmlinux 0xc4e54795 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0xc5067ad0 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xc525a682 nla_reserve +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc533909c scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xc54056ec rtnl_unicast +EXPORT_SYMBOL vmlinux 0xc5461eb1 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0xc54d6d96 kobject_set_name +EXPORT_SYMBOL vmlinux 0xc55444b1 sock_update_classid +EXPORT_SYMBOL vmlinux 0xc57b5b10 dquot_drop +EXPORT_SYMBOL vmlinux 0xc5879ff4 security_file_permission +EXPORT_SYMBOL vmlinux 0xc5904a05 give_up_console +EXPORT_SYMBOL vmlinux 0xc5b80803 __scsi_put_command +EXPORT_SYMBOL vmlinux 0xc5c041df backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xc5d8ad61 get_disk +EXPORT_SYMBOL vmlinux 0xc5e373ac simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xc5ef825e open_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xc5fc7bfe tty_port_close_end +EXPORT_SYMBOL vmlinux 0xc600a04d bio_init +EXPORT_SYMBOL vmlinux 0xc6184045 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xc62a8a01 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0xc636a158 register_cdrom +EXPORT_SYMBOL vmlinux 0xc639fb9f netpoll_setup +EXPORT_SYMBOL vmlinux 0xc64a4f3c blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0xc65b9ad7 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xc660fa61 dev_addr_init +EXPORT_SYMBOL vmlinux 0xc6779094 kick_iocb +EXPORT_SYMBOL vmlinux 0xc67c9522 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xc6baf238 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xc6bb16cf bio_copy_user +EXPORT_SYMBOL vmlinux 0xc6c71215 clkdev_drop +EXPORT_SYMBOL vmlinux 0xc6d533e1 down_read +EXPORT_SYMBOL vmlinux 0xc6e7f0a8 scsi_print_sense +EXPORT_SYMBOL vmlinux 0xc6e884e8 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0xc6f76a54 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xc71b3e70 __scsi_device_lookup_by_target +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 0xc76d71ba security_path_rmdir +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7d8c56c journal_release_buffer +EXPORT_SYMBOL vmlinux 0xc7d91c20 dev_get_flags +EXPORT_SYMBOL vmlinux 0xc7dde8f2 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0xc7e187f1 update_region +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc7eee87e get_mem_type +EXPORT_SYMBOL vmlinux 0xc8033012 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc80a0f43 scsi_execute_req +EXPORT_SYMBOL vmlinux 0xc811fa32 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xc813ab17 mdiobus_read +EXPORT_SYMBOL vmlinux 0xc827f9af lock_fb_info +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 0xc8936a87 cdev_index +EXPORT_SYMBOL vmlinux 0xc8981302 dev_get_stats +EXPORT_SYMBOL vmlinux 0xc8b2578e bio_free +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8d35f68 kobject_init +EXPORT_SYMBOL vmlinux 0xc8ee38fd block_write_end +EXPORT_SYMBOL vmlinux 0xc9161a57 down_interruptible +EXPORT_SYMBOL vmlinux 0xc9856d3d vfs_readlink +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9d611d2 notify_change +EXPORT_SYMBOL vmlinux 0xc9d8ce10 netpoll_poll +EXPORT_SYMBOL vmlinux 0xc9eee4ba dev_close +EXPORT_SYMBOL vmlinux 0xca05a28b blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0xca080f3f pci_save_state +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +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 0xca9a95d1 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xcab06587 bdi_register_dev +EXPORT_SYMBOL vmlinux 0xcab17e69 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xcad0df3a get_sb_nodev +EXPORT_SYMBOL vmlinux 0xcad63d8d proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xcafb807f proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xcb28d838 proto_register +EXPORT_SYMBOL vmlinux 0xcb443834 sk_reset_timer +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb8d79b5 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xcb90a5c3 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0xcbc4f95e dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0xcbea7441 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xcbfb2db7 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xcc1ac125 thaw_process +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc3c44a7 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xcc41aa5f qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xcc43102a __destroy_inode +EXPORT_SYMBOL vmlinux 0xcc4bd8e7 get_phy_device +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc55792f simple_write_end +EXPORT_SYMBOL vmlinux 0xcc63b0c4 dm_table_put +EXPORT_SYMBOL vmlinux 0xcc6d398a tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc880114 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xcc9b6bb5 find_get_page +EXPORT_SYMBOL vmlinux 0xcc9ecabb dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0xccaa4fd6 __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0xccbc174f devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xccbfa42b scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0xcccca482 _test_and_clear_bit_le +EXPORT_SYMBOL vmlinux 0xccd36916 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xccedc92d bio_kmalloc +EXPORT_SYMBOL vmlinux 0xcd354495 journal_revoke +EXPORT_SYMBOL vmlinux 0xcd43c4c5 inet_accept +EXPORT_SYMBOL vmlinux 0xcd4b732f bit_waitqueue +EXPORT_SYMBOL vmlinux 0xcd512a4f sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xcd598e40 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xcd5fd393 invalidate_partition +EXPORT_SYMBOL vmlinux 0xcd63c845 __aeabi_lasr +EXPORT_SYMBOL vmlinux 0xcd6e914e dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xcda00186 dquot_commit +EXPORT_SYMBOL vmlinux 0xcda38c79 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0xcdb23c11 ether_setup +EXPORT_SYMBOL vmlinux 0xcdd5db18 sock_kmalloc +EXPORT_SYMBOL vmlinux 0xcdf3b1f9 pci_iounmap +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce1a32f7 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce6aef17 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xce7df06e xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xce883171 __pagevec_release +EXPORT_SYMBOL vmlinux 0xce8914fb __page_symlink +EXPORT_SYMBOL vmlinux 0xcea2c7f6 genphy_read_status +EXPORT_SYMBOL vmlinux 0xcef0b217 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0xcef2eaaa tcp_prot +EXPORT_SYMBOL vmlinux 0xcf190a3c pci_get_device +EXPORT_SYMBOL vmlinux 0xcf2fc728 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0xcf37be3e tty_port_close_start +EXPORT_SYMBOL vmlinux 0xcf3a5ae5 bio_integrity_split +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 0xcff0a0be inode_needs_sync +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd0184630 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xd020c2bf blkdev_fsync +EXPORT_SYMBOL vmlinux 0xd0480504 nlmsg_notify +EXPORT_SYMBOL vmlinux 0xd049f432 pci_write_vpd +EXPORT_SYMBOL vmlinux 0xd071a2b8 amba_request_regions +EXPORT_SYMBOL vmlinux 0xd0843f64 genphy_resume +EXPORT_SYMBOL vmlinux 0xd0a2bae9 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0xd0a4885a tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xd0a69e27 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0ab1a17 dma_pool_free +EXPORT_SYMBOL vmlinux 0xd0add9a1 file_remove_suid +EXPORT_SYMBOL vmlinux 0xd0b6a1c2 inode_permission +EXPORT_SYMBOL vmlinux 0xd0c2622f thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd1119617 find_or_create_page +EXPORT_SYMBOL vmlinux 0xd132837a pci_read_vpd +EXPORT_SYMBOL vmlinux 0xd1518482 pci_request_region +EXPORT_SYMBOL vmlinux 0xd1523b54 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xd18ceeb9 mmc_suspend_host +EXPORT_SYMBOL vmlinux 0xd193ce28 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0xd1971e52 is_container_init +EXPORT_SYMBOL vmlinux 0xd1a08104 amba_driver_unregister +EXPORT_SYMBOL vmlinux 0xd1c06a13 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0xd1e753bf neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xd22be14f request_firmware +EXPORT_SYMBOL vmlinux 0xd23e93b4 vfs_create +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 0xd28ba1ed submit_bio +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd299524b hippi_type_trans +EXPORT_SYMBOL vmlinux 0xd2d533c0 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0xd320ade2 md_done_sync +EXPORT_SYMBOL vmlinux 0xd33cdacf pci_pme_active +EXPORT_SYMBOL vmlinux 0xd365ac32 framebuffer_release +EXPORT_SYMBOL vmlinux 0xd3a2911a jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xd3ad4381 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xd3d8ce34 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xd3daab78 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xd3dbfbc4 _find_first_zero_bit_le +EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource +EXPORT_SYMBOL vmlinux 0xd4348112 load_nls +EXPORT_SYMBOL vmlinux 0xd437c8e1 blk_peek_request +EXPORT_SYMBOL vmlinux 0xd4420f1b tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xd457593b vfs_rmdir +EXPORT_SYMBOL vmlinux 0xd46356b9 dma_find_channel +EXPORT_SYMBOL vmlinux 0xd4878d60 phy_device_free +EXPORT_SYMBOL vmlinux 0xd48aa2cb serio_close +EXPORT_SYMBOL vmlinux 0xd4944e03 netdev_state_change +EXPORT_SYMBOL vmlinux 0xd494cd96 inode_change_ok +EXPORT_SYMBOL vmlinux 0xd4a04c90 inode_get_bytes +EXPORT_SYMBOL vmlinux 0xd4ad36b9 sock_recvmsg +EXPORT_SYMBOL vmlinux 0xd4bb3ad1 tcf_action_exec +EXPORT_SYMBOL vmlinux 0xd4f9e419 pipe_unlock +EXPORT_SYMBOL vmlinux 0xd5152710 sg_next +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd5452309 __dst_free +EXPORT_SYMBOL vmlinux 0xd556a8bd napi_gro_frags +EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out +EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert +EXPORT_SYMBOL vmlinux 0xd57a8280 get_sb_single +EXPORT_SYMBOL vmlinux 0xd57d4b9d xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xd58d7243 nf_log_register +EXPORT_SYMBOL vmlinux 0xd594c3f2 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xd5aac132 ilookup +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5b27318 nf_log_packet +EXPORT_SYMBOL vmlinux 0xd5f0540f tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xd5fafbbe pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0xd5fd915b security_inode_permission +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd6489ea8 elv_rb_del +EXPORT_SYMBOL vmlinux 0xd69a3ab0 proc_mkdir +EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xd6b3ff39 bmap +EXPORT_SYMBOL vmlinux 0xd6de7ba0 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd7107542 noop_fsync +EXPORT_SYMBOL vmlinux 0xd716ebb5 page_symlink +EXPORT_SYMBOL vmlinux 0xd71f0040 dqget +EXPORT_SYMBOL vmlinux 0xd747b612 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0xd75221db kernel_sendmsg +EXPORT_SYMBOL vmlinux 0xd75dc827 fb_set_var +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7a93fb6 vfs_readdir +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 0xd8106ddd inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xd814d621 skb_dequeue +EXPORT_SYMBOL vmlinux 0xd82aa419 iget5_locked +EXPORT_SYMBOL vmlinux 0xd83cdc8b skb_recycle_check +EXPORT_SYMBOL vmlinux 0xd846d164 cdev_del +EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user +EXPORT_SYMBOL vmlinux 0xd888ef7f ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xd888fc24 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8a53f4a journal_wipe +EXPORT_SYMBOL vmlinux 0xd8b6406e dput +EXPORT_SYMBOL vmlinux 0xd8bfe7a7 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xd8c4990a fb_set_cmap +EXPORT_SYMBOL vmlinux 0xd8d157c5 sk_stream_error +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8ecfe47 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xd90cc1e1 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9aa27a2 mempool_create_node +EXPORT_SYMBOL vmlinux 0xd9aab53c __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xd9aed04a tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xd9b23d14 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xd9d8a585 block_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0xd9ea6069 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xd9ec31a0 bio_add_page +EXPORT_SYMBOL vmlinux 0xd9ed5864 __serio_register_driver +EXPORT_SYMBOL vmlinux 0xda043f00 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda5ea696 _test_and_set_bit_le +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdb02f667 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xdb0d06c9 input_set_keycode +EXPORT_SYMBOL vmlinux 0xdb2178c7 __sg_free_table +EXPORT_SYMBOL vmlinux 0xdb420ed6 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xdb426afa generic_ro_fops +EXPORT_SYMBOL vmlinux 0xdb800358 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdb958246 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0xdba616ab d_validate +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbce84fd sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xdbd1cc95 skb_free_datagram +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc0510d4 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc1fbb56 lock_super +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc4888d5 path_is_under +EXPORT_SYMBOL vmlinux 0xdc798d37 __mutex_init +EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family +EXPORT_SYMBOL vmlinux 0xdca9f384 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcec5098 xfrm_input +EXPORT_SYMBOL vmlinux 0xdcfa70d0 con_copy_unimap +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd159a2c neigh_parms_release +EXPORT_SYMBOL vmlinux 0xdd258750 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd34d0e8 nf_getsockopt +EXPORT_SYMBOL vmlinux 0xdd4e2841 neigh_table_clear +EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xdd6f8c4b wait_on_page_bit +EXPORT_SYMBOL vmlinux 0xdd7f5b13 inet_sendmsg +EXPORT_SYMBOL vmlinux 0xdd84e368 lookup_bdev +EXPORT_SYMBOL vmlinux 0xdd949552 d_instantiate +EXPORT_SYMBOL vmlinux 0xddc9c1ed tty_kref_put +EXPORT_SYMBOL vmlinux 0xddda2bc5 sock_create +EXPORT_SYMBOL vmlinux 0xdddcbd99 empty_zero_page +EXPORT_SYMBOL vmlinux 0xdde1c033 bio_clone +EXPORT_SYMBOL vmlinux 0xde16b8fb tcp_tso_segment +EXPORT_SYMBOL vmlinux 0xde2b0381 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xde3c68a6 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde799296 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xde88f576 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xdec85ec0 alloc_fddidev +EXPORT_SYMBOL vmlinux 0xdecf5e55 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xded4a016 noop_llseek +EXPORT_SYMBOL vmlinux 0xdf07cbd2 bio_map_kern +EXPORT_SYMBOL vmlinux 0xdf154b9b phy_device_create +EXPORT_SYMBOL vmlinux 0xdf44af7f inet_listen +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf963ba5 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xdfb01a80 cpu_v7_dcache_clean_area +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xe02a4891 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xe06840b2 kthread_stop +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe0953cd7 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort +EXPORT_SYMBOL vmlinux 0xe0bef318 icst_hz_to_vco +EXPORT_SYMBOL vmlinux 0xe0ef94fa pci_release_region +EXPORT_SYMBOL vmlinux 0xe109465d netif_carrier_off +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0xe1442f37 prepare_creds +EXPORT_SYMBOL vmlinux 0xe158168b free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xe16b893b mutex_lock +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1c7cad5 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0xe1d02ed5 journal_dirty_data +EXPORT_SYMBOL vmlinux 0xe1de6655 tc_classify +EXPORT_SYMBOL vmlinux 0xe1e1705f proc_symlink +EXPORT_SYMBOL vmlinux 0xe20cfb23 close_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xe216dd45 bio_phys_segments +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe23cebfe blkdev_put +EXPORT_SYMBOL vmlinux 0xe2438fab tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe2531653 inet_frag_find +EXPORT_SYMBOL vmlinux 0xe279d0e0 input_unregister_handler +EXPORT_SYMBOL vmlinux 0xe28ae4b1 dev_mc_sync +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2d96d8e tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2f3d1f8 blk_register_region +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe31e1230 skb_copy_bits +EXPORT_SYMBOL vmlinux 0xe32a7595 generic_removexattr +EXPORT_SYMBOL vmlinux 0xe32cddb3 blk_remove_plug +EXPORT_SYMBOL vmlinux 0xe3690de7 dma_mmap_coherent +EXPORT_SYMBOL vmlinux 0xe36aa275 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xe397e453 unbind_con_driver +EXPORT_SYMBOL vmlinux 0xe3b500dd bio_unmap_user +EXPORT_SYMBOL vmlinux 0xe3d8e67d tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xe3eb1f37 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0xe426cf03 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xe427db68 inet6_release +EXPORT_SYMBOL vmlinux 0xe44d943a input_flush_device +EXPORT_SYMBOL vmlinux 0xe468384a jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0xe486693a iunique +EXPORT_SYMBOL vmlinux 0xe4c0bf60 get_sb_ns +EXPORT_SYMBOL vmlinux 0xe4c5fc9a blkdev_get +EXPORT_SYMBOL vmlinux 0xe4c723ff pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xe4c80097 cacheid +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 0xe5421108 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xe55e144a proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xe56c4e14 arp_send +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5985a0b lro_receive_skb +EXPORT_SYMBOL vmlinux 0xe5bcdd76 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5d6a400 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe60cfd9f fb_set_suspend +EXPORT_SYMBOL vmlinux 0xe60fd441 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0xe6172b54 kernel_accept +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 0xe664625d get_gendisk +EXPORT_SYMBOL vmlinux 0xe66b5498 poll_initwait +EXPORT_SYMBOL vmlinux 0xe68b803b dquot_disable +EXPORT_SYMBOL vmlinux 0xe690b8fd __ipv6_isatap_ifid +EXPORT_SYMBOL vmlinux 0xe697a4a4 set_user_nice +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6a10100 should_remove_suid +EXPORT_SYMBOL vmlinux 0xe6c3ebb0 __raw_writesw +EXPORT_SYMBOL vmlinux 0xe6d8b2a5 security_path_symlink +EXPORT_SYMBOL vmlinux 0xe6e063f1 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6f29fc2 xfrm_prepare_input +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 0xe723db74 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0xe73d0fde sleep_on +EXPORT_SYMBOL vmlinux 0xe76ca3aa vga_client_register +EXPORT_SYMBOL vmlinux 0xe77c54af tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xe7a551c3 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xe7c8eb63 inet_dgram_ops +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 0xe7ee246f inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xe80824f4 __invalidate_device +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe8100f5b lookup_hash +EXPORT_SYMBOL vmlinux 0xe82743f9 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xe82a5154 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xe847bf43 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xe8501550 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xe869d541 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe87ed1ce idr_replace +EXPORT_SYMBOL vmlinux 0xe896212d generic_write_end +EXPORT_SYMBOL vmlinux 0xe8a35ff6 seq_escape +EXPORT_SYMBOL vmlinux 0xe8a9f829 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xe8c7ab5b rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0xe907bd32 inode_set_bytes +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe91c9c7f kernel_read +EXPORT_SYMBOL vmlinux 0xe971be70 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0xe98a87f1 dcache_lock +EXPORT_SYMBOL vmlinux 0xe9940702 I_BDEV +EXPORT_SYMBOL vmlinux 0xe9b1f076 sk_filter +EXPORT_SYMBOL vmlinux 0xe9d91c36 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0xe9ef72ee stop_tty +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea1434a3 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xea147363 printk +EXPORT_SYMBOL vmlinux 0xea1d7578 ppp_dev_name +EXPORT_SYMBOL vmlinux 0xea2d33a2 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0xea7045e3 ps2_handle_response +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea8325de netlink_set_err +EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xea86d432 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0xea870694 simple_empty +EXPORT_SYMBOL vmlinux 0xeaa48e76 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeae769bf abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0xeaeeaff4 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xeaf8ae64 generic_file_llseek +EXPORT_SYMBOL vmlinux 0xeb2afdbd generic_setxattr +EXPORT_SYMBOL vmlinux 0xeb750698 tty_vhangup +EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n +EXPORT_SYMBOL vmlinux 0xeb93b0a0 skb_trim +EXPORT_SYMBOL vmlinux 0xeba26a37 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0xeba2a01d ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0xeba452d8 simple_rmdir +EXPORT_SYMBOL vmlinux 0xeba61ddd mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0xebc47cc6 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xebcc4ceb slab_buffer_size +EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull +EXPORT_SYMBOL vmlinux 0xebdbbace dm_dirty_log_type_unregister +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 0xec57ac0b tcf_hash_check +EXPORT_SYMBOL vmlinux 0xec646143 block_write_full_page_endio +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 0xecb1f38d key_revoke +EXPORT_SYMBOL vmlinux 0xecbe0bc0 netif_rx_ni +EXPORT_SYMBOL vmlinux 0xecbedbed ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xecbf4d7e max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xecc24bf4 starget_for_each_device +EXPORT_SYMBOL vmlinux 0xecc8bd84 __dquot_transfer +EXPORT_SYMBOL vmlinux 0xecca3d07 journal_get_write_access +EXPORT_SYMBOL vmlinux 0xecda0638 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0xed126219 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xed148f31 set_disk_ro +EXPORT_SYMBOL vmlinux 0xed4d611b dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xed57ba70 pci_find_bus +EXPORT_SYMBOL vmlinux 0xed6f1443 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xed885fe1 save_mount_options +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 0xeddf2822 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee39f246 kmem_cache_alloc_notrace +EXPORT_SYMBOL vmlinux 0xee9444e0 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeedfd5cf __seq_open_private +EXPORT_SYMBOL vmlinux 0xeee80b87 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0xeefab4b4 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xef17931c genphy_config_advert +EXPORT_SYMBOL vmlinux 0xef39b8a6 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0xef3abf60 disk_stack_limits +EXPORT_SYMBOL vmlinux 0xef455795 nf_reinject +EXPORT_SYMBOL vmlinux 0xef525d71 simple_getattr +EXPORT_SYMBOL vmlinux 0xef6eba41 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool +EXPORT_SYMBOL vmlinux 0xef745218 seq_read +EXPORT_SYMBOL vmlinux 0xef999a48 cont_write_begin +EXPORT_SYMBOL vmlinux 0xefc8cf69 scsi_prep_state_check +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 0xefdf9499 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0xeff4849e ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf00af19b icst_clk_set +EXPORT_SYMBOL vmlinux 0xf016d6d5 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xf05091b7 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0xf06917cb put_mnt_ns +EXPORT_SYMBOL vmlinux 0xf07cb7ff fb_get_mode +EXPORT_SYMBOL vmlinux 0xf0a47f96 lock_sock_nested +EXPORT_SYMBOL vmlinux 0xf0a701dc dst_alloc +EXPORT_SYMBOL vmlinux 0xf0be4184 send_sig +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 0xf10fe91a unregister_netdev +EXPORT_SYMBOL vmlinux 0xf11c9de3 journal_extend +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf12be693 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0xf136c279 add_timer +EXPORT_SYMBOL vmlinux 0xf13bbdc3 tty_pair_get_pty +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 0xf1a02814 d_lookup +EXPORT_SYMBOL vmlinux 0xf1a41e90 skb_make_writable +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1f1f9c7 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0xf1f3475b __bforget +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf2282920 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xf22a7a9e bdput +EXPORT_SYMBOL vmlinux 0xf2318108 mmc_detect_change +EXPORT_SYMBOL vmlinux 0xf26d0790 __netdev_alloc_page +EXPORT_SYMBOL vmlinux 0xf292652f generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xf29315a9 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xf29411fa jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2c57f43 bioset_free +EXPORT_SYMBOL vmlinux 0xf2f8e916 sb_set_blocksize +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 0xf3481758 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xf34c215b init_buffer +EXPORT_SYMBOL vmlinux 0xf351105c block_write_full_page +EXPORT_SYMBOL vmlinux 0xf361ee5b pci_select_bars +EXPORT_SYMBOL vmlinux 0xf367b99c dev_load +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 0xf3e70cb8 tcp_make_synack +EXPORT_SYMBOL vmlinux 0xf3eb34b7 abort_creds +EXPORT_SYMBOL vmlinux 0xf4016bf0 inet6_bind +EXPORT_SYMBOL vmlinux 0xf442460a skb_queue_head +EXPORT_SYMBOL vmlinux 0xf46620b6 llc_add_pack +EXPORT_SYMBOL vmlinux 0xf48a1218 vm_map_ram +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf49cc90e ndisc_mc_map +EXPORT_SYMBOL vmlinux 0xf49d4a71 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0xf4a451c7 blk_rq_init +EXPORT_SYMBOL vmlinux 0xf4bd84c4 fb_find_mode +EXPORT_SYMBOL vmlinux 0xf4c0cfea dev_mc_init +EXPORT_SYMBOL vmlinux 0xf4c86727 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf5164b60 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xf517260d tcp_poll +EXPORT_SYMBOL vmlinux 0xf5190e9c generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xf5308e53 input_register_device +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf53deaeb blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n +EXPORT_SYMBOL vmlinux 0xf5624092 posix_lock_file +EXPORT_SYMBOL vmlinux 0xf564412a __aeabi_ulcmp +EXPORT_SYMBOL vmlinux 0xf5722c59 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0xf583069c sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xf584b0d4 xfrm_policy_delete +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 0xf5c531a1 do_sync_write +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf60ac1ff dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xf614aa5d neigh_changeaddr +EXPORT_SYMBOL vmlinux 0xf6188e4c dm_dirty_log_destroy +EXPORT_SYMBOL vmlinux 0xf6288e02 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0xf639cef4 check_disk_change +EXPORT_SYMBOL vmlinux 0xf64ed108 set_blocksize +EXPORT_SYMBOL vmlinux 0xf660b722 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xf6960016 create_proc_entry +EXPORT_SYMBOL vmlinux 0xf69a8740 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xf6af40f6 cdrom_release +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf720a5b7 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf7596817 filp_open +EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xf77d4dc2 __secpath_destroy +EXPORT_SYMBOL vmlinux 0xf7802486 __aeabi_uidivmod +EXPORT_SYMBOL vmlinux 0xf7818c38 rfkill_unregister +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf795ddc1 clk_get_rate +EXPORT_SYMBOL vmlinux 0xf7ab9e1f generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xf7abf7bf napi_frags_finish +EXPORT_SYMBOL vmlinux 0xf7bdea32 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xf7c3e1cb udp_lib_unhash +EXPORT_SYMBOL vmlinux 0xf7ec49b7 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xf7f757f2 netif_rx +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf807c5c4 dqput +EXPORT_SYMBOL vmlinux 0xf80d3b42 blk_put_request +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +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 0xf83c6a18 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xf85afc77 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xf88c3301 sg_init_table +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf8acbdf5 generic_listxattr +EXPORT_SYMBOL vmlinux 0xf8b099c5 xfrm_lookup +EXPORT_SYMBOL vmlinux 0xf8b36b96 dm_table_get +EXPORT_SYMBOL vmlinux 0xf8bf1411 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xf8fbb4f0 __bad_xchg +EXPORT_SYMBOL vmlinux 0xf90c155d init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0xf92076f6 pneigh_lookup +EXPORT_SYMBOL vmlinux 0xf9226a55 console_stop +EXPORT_SYMBOL vmlinux 0xf96da9c8 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xf998dc57 ppp_channel_index +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9a74654 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xf9cc9c92 d_add_ci +EXPORT_SYMBOL vmlinux 0xf9d69b6a xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0xf9d74899 kunmap_atomic +EXPORT_SYMBOL vmlinux 0xf9dafe07 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xf9e336f0 __f_setown +EXPORT_SYMBOL vmlinux 0xfa0ba399 inet_recvmsg +EXPORT_SYMBOL vmlinux 0xfa4b818d abx500_register_ops +EXPORT_SYMBOL vmlinux 0xfa838d39 md_write_end +EXPORT_SYMBOL vmlinux 0xfa91c8a1 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xfac68eba arm_elf_read_implies_exec +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 0xfb37caf8 vfs_unlink +EXPORT_SYMBOL vmlinux 0xfb68f1a1 netdev_set_master +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7d9c45 __udivsi3 +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbdd6d03 misc_deregister +EXPORT_SYMBOL vmlinux 0xfbdd6f01 inet_ioctl +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 0xfc196ad5 dev_get_by_index +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc3fafd3 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xfc550e17 input_get_keycode +EXPORT_SYMBOL vmlinux 0xfc6d9e2d skb_pull +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcc09a19 dquot_acquire +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfccaf25a xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0xfccef13c netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd2bdd2c mnt_pin +EXPORT_SYMBOL vmlinux 0xfd305341 walk_stackframe +EXPORT_SYMBOL vmlinux 0xfd48b4a7 __blk_end_request +EXPORT_SYMBOL vmlinux 0xfd4b9c16 icst_clk_round +EXPORT_SYMBOL vmlinux 0xfd4f7e82 arp_broken_ops +EXPORT_SYMBOL vmlinux 0xfd5c9e95 inetdev_by_index +EXPORT_SYMBOL vmlinux 0xfd7ec291 pci_target_state +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 0xfda5b873 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfdb4bc76 tty_check_change +EXPORT_SYMBOL vmlinux 0xfdebb2d2 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe2397a1 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0xfe29bca1 scsi_remove_device +EXPORT_SYMBOL vmlinux 0xfe306b80 page_put_link +EXPORT_SYMBOL vmlinux 0xfe3d4b80 scsi_put_command +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe5dda3d dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xfe634f58 add_wait_queue +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfed59601 pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfee01955 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xfee3922a vfs_link +EXPORT_SYMBOL vmlinux 0xfeec44dd mfd_add_devices +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff0e2146 tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0xff0f5f37 revalidate_disk +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff261096 kobject_get +EXPORT_SYMBOL vmlinux 0xff67b37f __lshrdi3 +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff78dc15 scsi_remove_host +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 0xffb43e7d xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xffbc7dae __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xffc6833c __getblk +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 0x418c23d2 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xa3c2aaf1 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x17d81b0e async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x1b7ab25f 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 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 0x5d0b0c4f ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6c262687 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6f61221a ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6fdea446 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x887edf4a ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8c9790ee ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9b98338f ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9da8ded2 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xbcdc4b75 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc5fefb5f ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xda8bfe03 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe2b770cd ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe8017017 ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xfbd08f69 ahci_reset_controller +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 0x2651fec1 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x2df216a8 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x4b5cbb74 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xcb900816 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xf6a29773 sm501_modify_reg +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 0x06cd30b5 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x8dd5b45a sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x950f36ee sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x9fe83156 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf1f4a7bc sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf7d03da5 sdhci_alloc_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 0x270d069b macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x3c175b13 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x40a4cb0c macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x4b98dfba macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x91c562ae macvlan_common_setup +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 0x3c42f8da 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 0x11f16c7f rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x128db98b rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x13caa586 rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1b7eaedf rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x264b3365 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3832085f rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3a9535ef rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x41ceb131 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4a3db562 rt2800_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4e680064 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x66fbe637 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6bbd8458 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x883532c2 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x90ce14b8 rt2800_init_rfcsr +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xab40219c rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb421cc66 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb4ad7d8a rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc16312cc rt2800_init_bbp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcc022c25 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd761acd7 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xea02ad11 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xed577501 rt2800_mac80211_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf4effa26 rt2800_validate_eeprom +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 0x0e2dda04 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0fd69c51 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x12a146f6 rt2x00queue_get_entry +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 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 0x67eeef16 rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6b2ebb85 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x86acf2ba rt2x00lib_remove_dev +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 0xa8eddc42 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaf9e6cc8 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb1ef0a61 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb9619a1e rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc75db86a rt2x00lib_suspend +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 0x03ea6fc6 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x3b8eca3f rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x4a81cc47 rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x6c9ed3c1 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x7d683b66 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8a11f1aa rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xa8c4fbfd rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xecf16557 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x08a4a610 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1c29ac55 rt2x00usb_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 0x2012f3b0 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x264d595a rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2e0bba38 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x47cdad16 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5503d373 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6bbb7a0a rt2x00usb_vendor_request_large_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9327b136 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc7a9fda9 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd157efc7 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe6a2fce7 rt2x00usb_kill_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe83127e4 rt2x00usb_kick_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf6692352 rt2x00usb_write_tx_data +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 0x0524d7d9 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x06c1a1aa iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x08d1df1b iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0c399ebf iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1449900e iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1e7b31f9 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x248c70a2 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x27cd52c5 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2823a1e6 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2a71c33c iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2cc189fd iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3526be02 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x38adc875 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3c311532 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e4f9c2b iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x42128d14 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x46c164c4 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x48774841 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5180e6c0 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5840973d iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5d6277a3 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5e92d1cb iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x60ba6a81 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x60f6dfdf iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6eb69a1a iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x735b5dff iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x73d896a7 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x89f6e6a7 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8a593a2e iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8ddf1ae7 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x94d18c99 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9ea7c6fa iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa53ca4c0 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa61a2b0a iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc20b1161 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcf239231 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd2db366f iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdf90aa52 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe152ceeb iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe8e4aacd iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xefd70fa2 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf1ef55e1 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf7d2ea02 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2ae67547 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3bcfc379 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4012ae52 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5432738f iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x58873395 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5ddbe064 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x849ee745 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8935ce79 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9fc8f908 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc094abf4 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc2be2496 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc4be79de iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd70a2891 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xdbdc606d iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe828c638 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf30caaca iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x033a877b sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x06262667 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x31747739 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x400f3c14 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x46874150 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4aa25084 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x50e21cda sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5425fe68 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6823684c sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x759a86a9 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8bd289b1 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x99adc167 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa9d1a64c sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xab607971 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xae5ac3de sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb3e51400 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcf056888 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd6b71e4c sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe5754955 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xeeb03489 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf34d6585 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf8f28021 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfc2e889c sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x09a8073f srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x291511c6 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x38bce353 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x3e9999da srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xc936efd7 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xfd077b4e srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x04c4f733 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x483d4ceb scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5e0e8a8c scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6c995e79 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x94d5b308 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x955cf08d scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9d505452 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd3da86c6 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xfebef7bd scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x02dd07f9 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0542ebbf iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x10025bbd iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1f311ad8 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2008c107 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x44b55270 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x45f09591 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5ce94360 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5f27f0f4 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6d065af9 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x70a4bc4f iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x777d959d iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7c89e635 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x84e6beb8 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x901aaaf3 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x913d0fee iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa0cb3b6f iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xabc87a05 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb20fe293 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb24def1c iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcbefc02f iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe9eb5fd0 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x203aaba9 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x376f4fb1 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x5f38ee85 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x856be6ac sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x055ec987 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x37473022 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x3eb9207d srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x6ca1c80e srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x74b2e52a srp_release_transport +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x89da5bbc pciserial_suspend_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x8b998e04 pciserial_remove_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x8e1adc5c pciserial_init_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x992e8f8a 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 0x30042f4d st_register +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x02cae389 usbip_task_init +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x0ba99379 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x4b3940c0 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x4c5e5b26 usbip_stop_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x7186c503 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x7c766f0f usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x890d583b usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x98945542 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xab5ebe36 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xc16df9bf dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xc1dd3e1a usbip_start_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xc6e3a5cd usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd7d33496 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xdffd6279 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe27f2378 usbip_event_add +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 0x122f6073 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x12738d9a usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x26419a6d usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2e0977a6 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2f26d1be usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3152af5d usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3ba085b4 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x46763f25 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x46d5af6d usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6c6ce63c usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x70eabf09 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8249fe42 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x990e620c usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9ef54576 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9fea92b8 ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa0167f9e usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xcc68c2bd usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe7ef1dc6 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xec44a528 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0076c50f usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x09aeae3d usb_stor_transparent_scsi_command +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 0x1cd79358 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1fe996db usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x24ce316f usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x25a835ec usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4cdadeb3 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5795745e usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5a653f38 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x642e9b7a usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x778ec5a3 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x95c8f2cc usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x98c0f3ab usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9d98d7dd usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa1c86d70 usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa4a0b600 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa968a56f usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa9dacec5 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcbdc5cc6 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcbe68114 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xce3f90e2 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd713fb37 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe4f48304 usb_stor_bulk_transfer_buf +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 0x1c153ab0 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x3d7f9b90 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x4f5fb7d9 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0x5207db59 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x5cc85bda fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x62c678a6 fat_build_inode +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 0xb102dd83 fat_free_clusters +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 0x3bca0ec6 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7f709559 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 0xbfe39463 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xd1494b8c nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xff312e8f nlmsvc_ops +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 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 0x341daf36 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x460dbd27 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 0x7b2e8b72 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xaccb1d97 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbd45ae97 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xdb16912c 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 0xf44d0193 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x0f830e37 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x6955e791 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 0x871e541a dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xb441eabc dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc41417fb 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 0xdc053d07 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 0x5752b264 ax25_register_pid +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/dccp/dccp 0x01237ec3 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x032ca7fb dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x093118c0 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0be66089 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0d0a99d8 dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x171609f7 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1dd9e6d8 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x22175191 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x24c68d60 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x25c60716 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x275c4568 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2e993880 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3d1c9f2c dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4250c327 dccp_reqsk_send_ack +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 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5ece57e4 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x698fa005 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6f52ddc6 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x77ef9ca7 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7b8ee32a dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7d88e823 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x82bcf1c2 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8fb83676 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9a385ec7 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9c21af83 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9fd00f29 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbe877865 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc5320aa1 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdb2453a7 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdd9edd35 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe3ca5b5d dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xed274095 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf68435d6 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfbd5f281 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x2f7052fc dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x61aecaad dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6f075285 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x930588d8 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xb80cc76c dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xbe10e4c5 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xc77149cc arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x367e6681 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x673898d3 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 0x18323b94 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x27ad46c0 nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x505d0a86 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x828f8708 nf_nat_set_seq_adjust +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 0xc200394e nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xe384284d nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xfce61225 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xda953a5c ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1ca41d38 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3de31673 l2tp_xmit_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4562d750 l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x59948b46 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7d9abf13 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x839284e0 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x84a101db l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x929767c4 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa8ba7f51 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xabfd971b l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb3fd5d5f l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc55dd742 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd6c9d278 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xdcbca56d l2tp_udp_recv_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xdd8150d4 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xeec9c673 l2tp_tunnel_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf9ab1e7a l2tp_udp_encap_recv +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 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 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 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 0x97d27de8 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x99933e5b nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9a6421f3 nf_conntrack_l3proto_generic +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 0xa5e41f6a nf_conntrack_l4proto_udp6 +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 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 0xd4f24d47 nf_conntrack_l4proto_tcp4 +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 0xe6c42fc5 nf_conntrack_l4proto_tcp6 +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 0xbbc57737 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x67e7eabb nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0d67aa43 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x274879e2 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3325b8c2 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3eb51781 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x54f20e6c nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x804e7630 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x840f4247 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8a11e24c set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa9228781 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xcddad6eb nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xd08ea6cb nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x3abad9a1 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x4d8a5186 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x754bfdb9 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xaed1778f nf_nat_pptp_hook_inbound +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 0x143ebdb5 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1b28ba46 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3a7d810b ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4a95492a nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x5e49c054 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x719b3c57 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7a70dc17 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7aa66f31 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xaeabf0a9 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb6e9d3f5 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd461993b ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd6aebcfb nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe18002ce nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x07a1b67e nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xbbe30e52 nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xd6b70f47 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x0907b1bc nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3d7395ee nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x841c2947 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xaada47ef nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xefb2099a nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xf1e97d35 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x6706268b nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0469c510 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0cbf6d75 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x105c9f10 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1b634f9e xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x28c9e288 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x356ebdd1 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x370cc68c xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x37c9a688 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3fc56aaa xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x51253741 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9828135a xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9eccc90f xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc3779089 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd3a2c286 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 0x0778df72 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x0bab6d01 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x10f521a4 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x12a3e19c rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x12ef80ae rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x23f91fd4 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x279e6bc2 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x2fafc8eb rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3d9177be rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x4445b542 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x50fe6d31 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x56583680 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x58f7b74a rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x6027dc60 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x6f80d57c rds_inc_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x74a501a5 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x87a38ad3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x89654284 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xb2792a44 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0xb8173c62 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0xe96b5a42 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xf8fd62bd rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0xfb50e4a7 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0xfd26cc5b rds_inc_put +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x556ad6a1 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x82247b29 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 0x22a34628 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x341ccd5c gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x42adc649 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x42e6d79d gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x4c7f5b13 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x535d79cd gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x61cb0d77 svcauth_gss_flavor +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 0xd56e70d4 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf5ed1c42 gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xff6de5aa gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02abd8e2 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x031adf96 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0343000b rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03ff9aa4 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05718e7a 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 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x072fccff svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x09afe7fd svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a202a7f svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0af3ac41 cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0bd9e9a8 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c50a15f xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e1b478b __rpc_wait_for_completion_task +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 0x1183fd87 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11dbddd7 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1240ac7b rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14883b81 auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x154d559c rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15d2d066 auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16a34cd8 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1717eb45 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ae9e1b5 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1be4ca30 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x201fe558 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x207726e6 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2077ff97 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21aa4d1a rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21babd6c xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27e26ade svc_xprt_enqueue +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 0x2d6e181d svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2efad28a xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3209caa7 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32722eb6 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35fbe52e xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36fe968c xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ad9a254 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3bdbd5ed xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ca56968 rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3caf571b xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e5b0870 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e9ca3ee svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ec9e434 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x42566cc5 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44f6b91e xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4900a301 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4af9819c svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c1416df rpcauth_generic_bind_cred +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 0x4e70d6d4 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ee13c3e sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51f9829f xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5557e1e1 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x564c23d4 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x595b7128 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ad24473 svc_create_xprt +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 0x5da77796 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f553ce5 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fb6e25f svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61bf487f rpc_exit_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x647b1199 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x683f0e04 xprt_write_space +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 0x6cf0ba48 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d02db33 rpc_wake_up_next +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 0x6f8b811a rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70e3c4fc rpc_call_sync +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 0x72203818 rpcauth_init_credcache +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 0x7acae1fd rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7bc95d01 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c13d521 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c3d6fc0 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c56620f svc_sock_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e105bd0 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x825ceab2 write_bytes_to_xdr_buf +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 0x9295e549 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x930434e9 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96cd7dd5 auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x974da4cb xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x99be6ecb svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e542780 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa07d0287 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa18b24bf xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa1fa31be rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa41bdce5 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa46322ca rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6661f57 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa70ca3b4 cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9d067ae svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa6d3b6a xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xabc4a50b xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad020ecd rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae21e670 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb12e5348 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb198583a rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2272535 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4303438 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5faa68c rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb707a989 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc048750d rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc0aab7d8 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc1c2f886 svc_process +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 0xc599f461 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8b512cf rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccc2372e rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce2087eb rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2149846 svc_sock_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd221dce0 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd442a8ed rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4b024bf rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdcdb52c7 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdde98760 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0709cc2 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0cab4ed svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe38476d8 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4be52fa xdr_decode_word +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 0xe706e322 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb69413b rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedd50255 rpc_call_start +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 0xeefe50d0 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2e6dcb7 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3c8c658 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3efeed4 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf42b3565 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6fa5851 xprt_disconnect_done +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 0xfc6acc80 svc_proc_register +EXPORT_SYMBOL_GPL net/wimax/wimax 0x03126db8 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x1413fd8b wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2bb292b2 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x65039195 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x7e684c89 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x80ad76a9 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x974d06eb wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0xabe03d56 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb57f627d wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0xc9b8a9a6 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd0b41729 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0xebef05ba wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf9ed5c7a wimax_dev_init +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 0x1bc75052 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x77c4d5c7 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xc5f7403e ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xcbfbfe0b ipcomp_init_state +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 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x0056b68d wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00afb310 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x00b4f818 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x0102b52f dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x013b0c59 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x01456c26 dm_register_path_selector +EXPORT_SYMBOL_GPL vmlinux 0x015118fc ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x01536f61 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x0163d0b1 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x01647210 scsi_bus_type +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 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0276781e ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x0296e529 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x03970d33 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x03b7c7fe ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x03c71381 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x04305264 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x0436cf33 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x043b0815 ata_std_bios_param +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 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x0543c620 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x05443e75 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x0546e3c0 tty_prepare_flip_string +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 0x05a9b343 regulator_unregister_notifier +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 0x06291c18 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x065db206 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x06e69bd6 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x07221d72 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x0751b468 scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x07554273 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x0793fee7 ata_ehi_clear_desc +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 0x08977711 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x08fc0156 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x0948f748 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x096d164d dm_rh_dec +EXPORT_SYMBOL_GPL vmlinux 0x099b0a67 scsi_nl_add_driver +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 0x0a3915c3 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x0a5a3aac rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b23e350 pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0x0b4bfe9e show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x0b775b2f wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x0b7c9dc3 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x0b9dacf3 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x0bdc8ec9 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x0c12eddc deregister_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c2d6363 inotify_init +EXPORT_SYMBOL_GPL vmlinux 0x0c448050 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x0c62982a dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x0c70988f ata_pci_device_do_resume +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 0x0d025fc4 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x0d1795a1 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x0db841f2 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x0dbddc35 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x0e0f6b00 do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0x0e159ca1 xfrm_output +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 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0f0d02ee scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x0f1c9a98 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0f3eceff pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x0f699cdb wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x0f705cd9 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x0f8c39a4 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x0fc13b74 sock_prot_inuse_add +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 0x10b75c18 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x10ebc57f __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x10fc7614 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x110a093c klist_init +EXPORT_SYMBOL_GPL vmlinux 0x11a5f8f5 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x122ae0ac ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x1230916a blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x1242b7ac crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x1257a25f get_dcookie +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 0x12b44c6f dm_rh_delay +EXPORT_SYMBOL_GPL vmlinux 0x12d0cab7 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x12fe9b49 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x133dab1e dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x138b3dc2 fib_rules_cleanup_ops +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13b53479 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x14017915 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x143b10fb skb_morph +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 0x1545f4de register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x15839a64 udp4_lib_lookup +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 0x15dd8005 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x1610e5e1 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x161fe795 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x164bb596 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x1652be01 skb_pull_rcsum +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 0x17ceb3c8 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x17df1db2 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x1834c8ae filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x18b46d10 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL vmlinux 0x1918afc2 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x1938089d dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x196462e7 disk_get_part +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 0x1a64cf79 disk_part_iter_init +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 0x1b52b685 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x1b6ff294 pm_generic_suspend +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 0x1c3ed87f each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x1c703c8d ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x1c729700 pm_generic_poweroff +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 0x1d0b0e0f sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x1d1f6719 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x1da4e2de rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x1dd053e5 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1e048488 bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e9666a8 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1f6268f9 dm_rh_update_states +EXPORT_SYMBOL_GPL vmlinux 0x1f6fded2 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x1f7d93f4 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x1f86a85f scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fe9acec cfi_cmdset_0001 +EXPORT_SYMBOL_GPL vmlinux 0x203bbe0e tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x20405777 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x20931c3b crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x20a20f39 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x20a28b8d tcp_reno_cong_avoid +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 0x20f90d6d ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x212a281d sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x214a4afd inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x2158efea dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x216d8b4c __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x2219bb6c dm_noflush_suspending +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 0x229f991f unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x22a2524d ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x22c07da4 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x2340b624 sata_link_resume +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 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 0x2404ed41 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x241e968f scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x244e82a5 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x245d2580 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x24bf4aab mnt_drop_write +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 0x25bb4466 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x25c5ed01 __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x25d80e78 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x25f61d52 dev_change_net_namespace +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 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 0x27e8c2ea ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range +EXPORT_SYMBOL_GPL vmlinux 0x28879ed0 scsi_eh_ready_devs +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 0x292bc087 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x293c5779 disk_map_sector_rcu +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 0x2a17e13a fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x2a29f7e1 inode_add_to_lists +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 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2badaebb eventfd_ctx_fileget +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 0x2cf1ba32 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x2d4c8987 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x2d972b6c crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x2dcb8777 dm_rh_flush +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 0x2e5fe189 sysfs_rename_link +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 0x2f6952da __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x2f7dc992 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x3011df91 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x302a9887 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x30451938 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x304b7b87 add_to_page_cache_lru +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 0x31072679 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x314c5fa8 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x31de6218 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x3227139c kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x327d10a8 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x327eaacd __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32dbff68 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x32fe8d99 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL vmlinux 0x330d8276 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x332ed4b8 ipv6_dup_options +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 0x33a17fb7 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x33c6a1ce ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x34019b98 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x34107a47 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x34132523 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +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 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 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 0x37c0409f ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x37f1e328 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x380d2684 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x383fb71a usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x384e917c wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x38571ce4 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3860799b usb_find_interface +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 0x395c1712 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL vmlinux 0x3969af2e regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x399b358c bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x39e78c23 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x39ec5813 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x3a03f05d shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3b112f54 dm_unregister_path_selector +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 0x3c57ae66 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x3c6aabd4 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c9440ca vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x3ca3b87e skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x3cbb526b dm_region_hash_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d1e2f3d dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x3d26fc27 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d7d843f ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x3d83f494 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x3da597ae crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x3db81ed1 generic_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0x3db91586 scatterwalk_done +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 0x3e46683b part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x3e59faf4 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x3ea37738 ata_host_alloc +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 0x3efd977f fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x3f210e75 thread_notify_head +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f5b0762 scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x405f485e sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x40814cce tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x40aaf6c8 ata_sas_port_start +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 0x4116a049 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x41411bd7 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x418f4754 dm_rh_recovery_in_flight +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 0x421b6396 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x42815b1b nf_unregister_queue_handlers +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 0x43b6d918 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x43cf3927 securityfs_remove +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 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 0x44d42c54 ata_pci_bmdma_clear_simplex +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 0x4594441c __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45e37f68 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x45fd0426 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x461f56df ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x46210e45 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x46211bf0 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x467210f8 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x468ef2a8 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0x46b0dfbb del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0x47153fea bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x472e09c8 use_mm +EXPORT_SYMBOL_GPL vmlinux 0x476adb4e sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x479461cb ip6_dst_blackhole +EXPORT_SYMBOL_GPL vmlinux 0x47ab1eff tty_prepare_flip_string_flags +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 0x480052f9 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x482e8693 ata_slave_link_init +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 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 0x4a6b8b1f eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x4aa73876 macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x4ac22351 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x4acf3bd7 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x4b059382 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4b16e02a get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x4bb94b49 register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x4be62033 mtd_erase_callback +EXPORT_SYMBOL_GPL vmlinux 0x4c4680ef ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x4c62fcea ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c83a8bb skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x4c848371 tcp_orphan_count +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 0x4d883b26 deregister_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0x4dac3e64 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x4dd4db86 ref_module +EXPORT_SYMBOL_GPL vmlinux 0x4e0df257 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x4e23c010 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x4e256936 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x4eb11e97 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f7290f1 seq_release_net +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 0x507fe9e8 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x508f824c ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x5099a22b ata_link_abort +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 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 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 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 0x54168fd9 find_module +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 0x54da745f sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x553faf3c eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x5542b913 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x55cc3aa7 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x55d6d5eb tc35892_block_write +EXPORT_SYMBOL_GPL vmlinux 0x55f77fd3 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x5606cc91 inet_csk_listen_stop +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 0x5648e6f0 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +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 0x56745879 blk_rq_err_bytes +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 0x574a5694 sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57bd2005 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL vmlinux 0x58112195 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x58143ca5 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x581954ea ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x582241ba led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x584dfef9 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x5894a2fe ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x589d6aee crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x58bd24af ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x58d355a7 clockevents_register_device +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 0x59c9c848 br_handle_frame_hook +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 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a90582c __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x5af12564 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x5af6feb5 tc35892_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x5afd0ade ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x5b2d7377 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x5b2fb094 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x5b374ef0 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x5b442a0f ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x5b62e6c8 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x5b7ae9af regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x5bb96585 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x5beffddc debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c0b84d8 alloc_page_buffers +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 0x5cc6028d ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x5cd173ae debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x5cdbe5fe pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x5ce6a51d crypto_tfm_in_queue +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 0x5d4a4572 ktime_sub_ns +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e06f003 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x5e38260e find_symbol +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 0x5f254f25 ata_host_alloc_pinfo +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 0x5fe9c506 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x5ff8db2c usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x60228894 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x602a2ec3 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x6039f2fc inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60ce8c35 class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x60fd6b0b mmput +EXPORT_SYMBOL_GPL vmlinux 0x61cd67e0 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x61d60a56 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x61d747d8 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x620e8194 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x622ea7e8 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +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 0x633e1e77 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x63596a0d crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x6367e13f scsi_target_block +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 0x65439d7a usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x654d00d5 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x656eaee8 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x65758ef8 tasklet_hrtimer_init +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 0x65d5e12e add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x65eeab6a queue_delayed_work +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 0x66ccebe1 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66f23dfe set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x671023cf tty_ldisc_ref_wait +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 0x681f2e1f ata_cable_80wire +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 0x688275de tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x688b61c1 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x68902592 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68bc0aa6 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x68ddb2a0 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x69744f5e free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x69c13ebb rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x69c48cd2 ata_sas_port_stop +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 0x6ae74842 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x6b1611ae pm_runtime_allow +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 0x6b58f9a5 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x6b730df5 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6bcdb9d8 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x6be73dad devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x6c11dd27 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c787844 inet6_csk_reqsk_queue_hash_add +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 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 0x6e81bd99 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x6e997442 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x6ea38a8c usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x6ecedfe5 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x6eef0616 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x6f03b448 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x6f0ebbde unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f4c82ad fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x6f55927c usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x6fc19918 put_inotify_watch +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 0x701327c5 ata_host_suspend +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 0x7104ac54 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x71174fb1 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x715c24d7 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x7177856e netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x7188ebde scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x71e0f230 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x71f29592 dma_run_dependencies +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 0x728d2815 ata_host_register +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 0x737e6466 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x73831190 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73b9a237 fuse_request_send +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 0x748c3d00 __lock_page_killable +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 0x758fad4a pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75ce655c sched_setscheduler +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 0x766c8d6b skb_to_sgvec +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 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 0x788bbf12 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x78abaa24 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x78ac4dc9 register_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0x78be3e9d tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x78c5a0f7 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x78e619e2 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x7908ace1 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x79313ceb pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x793153c8 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x7948c57a rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x79a30ff4 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x79a41cc5 armpmu_get_pmu_id +EXPORT_SYMBOL_GPL vmlinux 0x7a65a956 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7ad5b671 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x7b364006 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x7b5f1f04 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x7b7b982f ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x7b8b50cd mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x7baba7d3 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x7bbb3dbb dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x7c0e608d dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x7c265597 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x7c57ed1c ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x7c6784ef ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x7cd8793b vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x7cf2024f mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x7d11febb usb_register_device_driver +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 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 0x7e6b9960 dm_rh_get_state +EXPORT_SYMBOL_GPL vmlinux 0x7e855846 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x7f0a7ec5 inet_hash_connect +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 0x7fef5f93 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x800bb1d6 sata_scr_write_flush +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 0x80541d54 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc +EXPORT_SYMBOL_GPL vmlinux 0x8112d901 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x813a301d ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x81a5ba29 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +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 0x82cde376 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x83722c3f inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x841ad346 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request +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 0x852aeae3 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x85376925 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x8563b4e2 dm_rh_inc_pending +EXPORT_SYMBOL_GPL vmlinux 0x85871a55 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x85bc7dbc tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85d26086 dm_rh_region_context +EXPORT_SYMBOL_GPL vmlinux 0x85d2d950 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x85f54107 sata_scr_valid +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 0x86e3f09b __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x86e53fd5 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x86e8fd91 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x873335ae init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x8756dabc __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x87656e8f del_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x87a56677 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x87f4513f security_inode_setattr +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 0x88b3f061 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x88c2daeb inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x8918af68 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x8974ce2b __class_create +EXPORT_SYMBOL_GPL vmlinux 0x8a45635b ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x8a4b0688 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x8a692bff dm_rh_start_recovery +EXPORT_SYMBOL_GPL vmlinux 0x8a8988e5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x8ab94e9e nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x8afed182 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x8b1ddd35 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x8b206fd4 n_tty_inherit_ops +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 0x8b8319fa disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x8b99fb9b usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x8c0d9bcf usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x8c21e521 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x8c25389c fsnotify +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 0x8d09ef4d inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x8d340d06 user_match +EXPORT_SYMBOL_GPL vmlinux 0x8d7156ca ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x8db459bf blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x8db799f4 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x8de1ffb8 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x8e0c625b inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x8e2e878c bus_register +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 0x907a3d3d dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x90903c32 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90b04244 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x90ba0108 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x90eaf626 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x9122a9da uart_console_write +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 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 0x920eda42 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x920f835a platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x925713f0 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x9263fd48 ata_host_start +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 0x9306cf4e ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x930a0355 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x933740ca cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x9349db4b ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x9369d394 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x93c8b097 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x9424ebe3 scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x9427e742 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x944849be regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x945ba83d device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x946cb101 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x948b218c ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x94a0ef7f relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x956f21ea register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x958207cf klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x95ceab14 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x9601f87e rt_mutex_destroy +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 0x966e70b5 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x96bc27b3 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x97da1dc5 unregister_pernet_device +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 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 0x9997d155 dm_rh_recovery_start +EXPORT_SYMBOL_GPL vmlinux 0x99cbeb2b sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x99d958ec usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x99fcdc58 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x9a0dc5e2 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a445940 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x9a4dd1da anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x9a547cb0 ip_build_and_send_pkt +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 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 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9ccad2dd wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x9cda7a6e blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x9cee29d7 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x9d0b821e crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x9d948795 inet6_lookup_listener +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 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 0x9f0e9b9b d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x9f28aeb8 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x9f2ca021 find_pid_ns +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 0x9fdf68b0 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa02921a1 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0xa058621c pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xa06087f5 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xa06e3455 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0xa0774e3e led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xa0898dfc crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa12a96aa pci_dev_run_wake +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 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 0xa31f444e rtnl_kill_links +EXPORT_SYMBOL_GPL vmlinux 0xa321e0e6 ata_ehi_push_desc +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 0xa46a3cf6 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4e12067 fib_rules_register +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 0xa5dd6fae arm_pm_restart +EXPORT_SYMBOL_GPL vmlinux 0xa5e390ca sk_setup_caps +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 0xa6d43ff4 generic_drop_inode +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 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 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa905e385 tty_find_polling_driver +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 0xaac4a17e crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xab11a043 inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0xab4e61f5 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab909920 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xabc8fc53 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0xac316798 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xac7be6d3 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xace1d8bb device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xad148f1c lookup_create +EXPORT_SYMBOL_GPL vmlinux 0xad22317b add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xad25b0d4 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xad43b4da ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad7d4418 __rtnl_link_unregister +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 0xadc8d7b1 sdev_evt_send +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 0xae7850cb dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0xaea27f29 dm_kill_unmapped_request +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 0xaf612f51 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xafeddfd5 input_class +EXPORT_SYMBOL_GPL vmlinux 0xb02b0ab0 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xb0498c24 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xb076eb9a blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xb08bfd81 platform_device_register_data +EXPORT_SYMBOL_GPL vmlinux 0xb0932c8b vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb0ab9f8c flush_work +EXPORT_SYMBOL_GPL vmlinux 0xb0d6ed4c devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb0ee3695 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0xb0fdbf14 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb10fa078 queue_work +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 0xb1be44ce tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xb1eefbf2 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xb1f7c086 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xb2176053 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xb254ca2d ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xb262ea23 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xb268f2d3 dm_rh_stop_recovery +EXPORT_SYMBOL_GPL vmlinux 0xb28f6107 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0xb2ad22e0 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xb2e2e5b5 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xb2efbb07 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0xb31b4b4e rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0xb328d693 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0xb3310541 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0xb3c47f65 css_id +EXPORT_SYMBOL_GPL vmlinux 0xb40b36b1 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0xb492d363 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xb49ff6fb inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0xb4b42803 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0xb4d47ea0 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb52f0854 dm_rh_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb5369197 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xb53796ea __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0xb54dfb3e sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xb56d9c15 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xb583d591 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0xb5863cdf page_cache_async_readahead +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 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 0xb847bfca bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0xb88fbe3a usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xb90a0ddb ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0xb917b6d7 return_address +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 0xb9e2aa09 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +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 0xbb7059cf blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xbb89356a __sock_recv_timestamp +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 0xbc5380be user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xbcb506d1 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xbd25d185 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbd267dc0 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xbd4dbdba sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0xbd7df267 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xbdb5e191 usb_find_alt_setting +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 0xbdd32e2c tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xbde37846 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xbde57017 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0xbdeffe45 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbe0435cb blk_end_request_err +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 0xbeb5100e __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xbecabda6 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xbedc62da schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0xbf2696ec usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xbf27cce3 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0xbf40abb4 dequeue_signal +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 0xbffc95fd perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0xc04a304b srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc04e5160 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xc0922fc4 find_get_pid +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 0xc0eb3eb9 sk_detach_filter +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 0xc14b8d0c skb_cow_data +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 0xc1af0998 md_new_event +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 0xc2a5eb72 blk_queue_rq_timeout +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 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 0xc4025cad rtnl_link_register +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 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 0xc578ac00 devres_release_group +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 0xc5ff37e3 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0xc60a730b klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc685129f fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc685eb03 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0xc6e0402b __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xc6f3701c blkdev_ioctl +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 0xc76d05f7 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xc7779589 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xc79f008e ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0xc7a3ff55 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xc7afd88f sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0xc7e1565e usb_autopm_put_interface +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 0xc8892a4f cred_to_ucred +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 0xc9b449a2 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc9b85be9 put_pid +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9fa1ea6 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xca3f9bed driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xca41d0cb sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xcab134f9 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcb04a770 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xcb0e4f24 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0xcb7403ab xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0xcb9a761f __pneigh_lookup +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 0xcc5e4a8d scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0xcc7906c2 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xcccad300 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccdc0c36 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0xcce48365 blk_trace_startstop +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 0xcd2ae595 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xcd9bbd74 add_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0xcdab0d67 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xce3047e8 cpuidle_unregister_device +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 0xcecc1af5 kobject_uevent_env +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 0xcf58c6e5 trace_event_raw_init +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 0xd0b69119 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd1116424 __inet_lookup_listener +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 0xd1ab7f24 dm_device_name +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 0xd309ca3a scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd33c4fca __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0xd3ed44fb release_pmu +EXPORT_SYMBOL_GPL vmlinux 0xd40098eb cfi_cmdset_0003 +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 0xd4431adf sync_filesystem +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 0xd562d0dd ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xd5a98e48 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0xd5e97bb6 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0xd655284f ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0xd66316cc ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd66397f0 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xd67ae8a4 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0xd70ae5e9 blk_rq_check_limits +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 0xd7b78969 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xd7d029f8 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xd807c7c0 pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xd82044c4 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0xd84cce93 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0xd906193c ata_sas_queuecmd +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 0xdadd3ac0 dm_rh_get_region_key +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 0xdb6400a7 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xdb9f46bf ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0xdba1f43d enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xdba8e946 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xdbfbb5b6 put_driver +EXPORT_SYMBOL_GPL vmlinux 0xdc00e31c dm_region_hash_create +EXPORT_SYMBOL_GPL vmlinux 0xdc619e50 ata_do_dev_read_id +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 0xdcff553e sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xdd556525 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xde21a133 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0xde22d2a7 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xde239902 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xdf04196b disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xdf434f0c ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xdf99c7ca relay_switch_subbuf +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 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 0xe1370eb7 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xe1867f5f init_pid_ns +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 0xe1fe572a elv_unregister +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 0xe2450732 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xe24909e1 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0xe275dc90 relay_close +EXPORT_SYMBOL_GPL vmlinux 0xe29569bf __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0xe2a12dee usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0xe2f8762f noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xe357a3d9 inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0xe37f9db0 pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xe3e96cf4 dm_rh_recovery_end +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 0xe48d4cd0 sysfs_create_link +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 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 0xe6a68179 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xe6d6d542 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +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 0xe78afd52 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xe78ecdbd cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xe7aebda7 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0xe7d8239b proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xe84d1e96 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xe8561f42 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe8c7928b dm_rh_get_region_size +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 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea20fa81 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xea3109c1 inet_csk_search_req +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 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb17f8a7 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0xeb22351b debugfs_create_u8 +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 0xebba79b8 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xecc8272b blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xeccb1d24 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0xecd882bd scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0xed0a84c5 register_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0xed14f1b1 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0xed64ae63 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xeda3319f pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xeda63db3 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0xedc1557b inet_csk_get_port +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 0xee8fcaf3 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xeed8191d __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xef00246f security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xef27868a skb_segment +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 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 0xf0835536 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xf098c2b6 scsi_get_vpd_page +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 0xf21609e9 __module_address +EXPORT_SYMBOL_GPL vmlinux 0xf244edcf sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0xf2851820 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf3086edb sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xf30e8ffe bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf3731755 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0xf37984bd unregister_kprobe +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 0xf4316b90 __create_workqueue_key +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 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 0xf5778525 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xf5909ba8 scsi_target_unblock +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 0xf6788c17 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xf698673f ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xf6d5fc34 nf_unregister_afinfo +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 0xf78a1249 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xf79883e4 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xf7d84afc i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xf7db9954 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf7dbc2d5 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xf807d334 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf844c333 ata_pci_device_do_suspend +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 0xfaab7339 ata_sff_data_xfer32 +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 0xfb1df3d9 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xfb2866ea tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb47d3f4 rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0xfb5b062f crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0xfb893a06 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0xfbafe7a8 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xfbb652d6 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xfbb9af64 blk_lld_busy +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 0xfbfe26a8 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0xfc174d3e bus_for_each_drv +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 0xfce00ace crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xfcfbffc6 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xfd238fc4 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xfd27eb74 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0xfd614f5d inet6_csk_bind_conflict +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 0xfdf5d631 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0xfe459e00 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfea8a431 queue_delayed_work_on +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 0xff501964 locks_release_private +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-28.49/amd64/server +++ linux-2.6.35/debian.master/abi/2.6.35-28.49/amd64/server @@ -0,0 +1,11161 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0x9842e7e7 kvm_cpu_has_pending_timer +EXPORT_SYMBOL arch/x86/kvm/kvm 0xa12f9438 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 0x6aabe8ef 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 0xbd73d0e4 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0xc86b31e6 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 0x0e5b6ad4 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x3f56a9ae pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x603d9aa7 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x66214220 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x692b3c9b pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x7dc35315 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x7ee1191b pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xbe7fb3ec pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0xd20521c1 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xf0fdef3a pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0xf70ddf2d pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xfecefb5c pi_do_claimed +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 0x103b3247 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x115fa4a4 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1bdeee4d ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x27adabca ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3ea9a87e ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3f46748c ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x43ba912f ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x58704478 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x63f27891 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x68f3ea61 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6b6d3c4a ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6d295d42 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7cb1a1f5 ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x87aa86b1 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x88560f2f ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x93e3bbc5 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9832dc39 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9cb3c32a ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xbad329e7 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc2d5ad50 ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc4feaaf8 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd5df0005 ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe837d407 ipmi_smi_watchdog_pretimeout +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 0x7300ef67 edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/edac/edac_core 0xc09700fb edac_mc_find +EXPORT_SYMBOL drivers/edac/edac_core 0xf8d4e55c edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0cbf6223 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x119128f0 fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x11e9a3d9 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x15cd087d fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1604d030 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1d066ba6 fw_core_initiate_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2d803d75 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3fb4632a 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 0x4e86dd83 fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5364f2ae fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x62aaa58c fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6365b586 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x67e13b1a fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6a4337d8 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6ffd8aa3 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7d29a35d fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9be46711 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb5322647 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb7797649 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb7c421b7 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xddf74a6f fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0xea376481 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xefff8697 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf754f59b fw_core_remove_card +EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/gpu/drm/drm 0x060af38b drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x07afad71 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0db18335 drm_get_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e231689 drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ee8d588 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f5c274d drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x105dd57e drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0x10b13e55 drm_poll +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 0x132aebba drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1457929f drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1511f0aa drm_get_resource_start +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1518e0d9 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a1f5969 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c8e7b0c drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e8bdd9f drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f15afb0 drm_sysfs_connector_remove +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 0x233b67a1 drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x23c6a34f drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x242ed8e3 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2491b354 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x287903eb drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28fdb1a2 drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x29edc5d0 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a32ea4d drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c3775f4 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2df636f5 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e6388a7 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30a0d353 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30c77037 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37bd8def drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3fdeb430 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x403e87f1 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x40fd0427 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x434a6f48 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43c71612 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x461df4cf drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47828d03 drm_open +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 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ec4997b drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f2956ac drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5399412b drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53f3c3af drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55fb2619 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57545721 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5bf4f536 drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c8da222 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d487c5b drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x634955b5 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x63a0ae56 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66361463 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x68875419 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a24bc41 drm_irq_uninstall +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 0x71159bde drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7170f762 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7394eea3 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74410929 drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x755e2f93 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x76132a92 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x779afa74 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77a131be drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x787b5262 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a32358f drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7aae8537 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b413ad7 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f9fcd5c drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82989c39 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x83417949 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8364b976 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8815501d drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ae0807f drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c7cb418 drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d9efdfc drm_lock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8fb655ab drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92af66e7 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96cab1b0 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x97299a9d drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x973e0e73 drm_i_have_hw_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0x97cd9de7 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x980027c6 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9cceaa91 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1d88e6c drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3caa816 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa482613a drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6324b60 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6b18a19 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa769cfe8 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa812d504 drm_lock_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa97a376e drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa206473 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa39b2f0 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb108f598 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb1f01892 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2a3aa95 drm_get_resource_len +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5905844 drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8270dfd drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9c6a6c7 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbb0354a drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbfca9a24 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc1132d05 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc359c0bf drm_get_drawable_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc3b395fd drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5ff23bc drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc696c1e7 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc9633f58 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca28dd5a drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca611b32 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd1ad45c drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xceb2ce8b drm_sg_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf65e976 drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd285d91e drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2aca89f drm_free_agp +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 0xd46ff6ce drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4e1f0e2 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd63d6819 drm_core_get_map_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd707cf05 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8be9d82 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8f4ca44 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc9f2f5f drm_agp_chipset_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd676c96 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd97345b drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdff91e17 drm_master_get +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 0xe513875c drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe63a9d2d drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe87ae3fc drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8b246f8 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8bd5025 drm_connector_init +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 0xf2ea8b37 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf45288e1 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf552a740 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf7b2a88c drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf7cfb82c drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfaa535ec drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x088d189c drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x13c8a1bc drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x15710d44 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2bde5527 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x35887f76 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x388482e2 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3e9d5c2b drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x474d2914 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4795a8d8 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7310e5eb drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8b1c38c3 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8c812975 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8d7c4e6b drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8e86072f drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9be68241 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa6c6972b drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb154e41c drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb38b75c6 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbd36b64c drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbea30c67 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc10d2ad2 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc53acb9e drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd0b35f75 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd897d1a8 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe665aa8f i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf5fddc01 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfba2175a drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfff0bcf7 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x01e8fb5e ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x08c9141c ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1125b178 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x13824e29 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x19a8b284 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x19db9d0f ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1c17a9d4 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1eb443ba ttm_bo_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x225a10f3 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x29201c89 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x293c8cd9 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x31cac905 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x31ef9974 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x32192374 ttm_bo_init +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 0x38b9922b ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38ea477e ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3aa061a8 ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x44409a13 ttm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x444ed756 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4e03ee9f ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x55c51dea ttm_bo_wait_cpu +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5ab24179 ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5ca5cb47 ttm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5e469fcb ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6f96f231 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6fb364cb ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7141dccc ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78957fbc ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7c0d14e3 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x857554c2 ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x88a17a51 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x88e4ab0e ttm_object_device_release +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 0x9cda1204 ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa0ac6fe4 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xaad12704 ttm_bo_wait_unreserved +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 0xad3b4680 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb8f22231 ttm_bo_validate +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 0xc8c05391 ttm_bo_move_accel_cleanup +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 0xdc1b3b0a ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdd7920f6 ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdf2ffea1 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe1ea9da0 ttm_bo_unreserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe6652d73 ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe66d6f2e ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xec92e68b ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf8b71a23 ttm_agp_backend_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf9672c57 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfa696d55 ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfcce372b ttm_bo_global_release +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x1225f501 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xa39d3d9f i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x574d82a5 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x832c230c i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0xf3bf9ff9 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x5bfdaffc amd756_smbus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0160205c hpsb_iso_recv_flush +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0355ea88 hpsb_unregister_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x07aa527c hpsb_destroy_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0860286f hpsb_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0b234c4e dma_prog_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0d63cb12 hpsb_make_writepacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0de6d3ac hpsb_resume_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1058ea6e hpsb_make_streampacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x11353293 hpsb_iso_recv_release_packets +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 0x193d4b3e csr1212_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x19f1f97b csr1212_parse_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1d329cb1 hpsb_update_config_rom_image +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2254f6f4 hpsb_selfid_complete +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2d61f76f hpsb_update_config_rom +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2e099182 hpsb_set_packet_complete_task +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2ebf6e5a dma_prog_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3340a6dc hpsb_iso_xmit_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x34a9eaa8 hpsb_get_hostinfo_bykey +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3b3e0c0b hpsb_iso_recv_listen_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x449489ce hpsb_iso_recv_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4593d18f hpsb_remove_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4780f4d4 hpsb_read_cycle_timer +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x518d4100 csr1212_get_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x54f3531b hpsb_alloc_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x64bcc007 hpsb_bus_reset +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x654bacd6 hpsb_iso_n_ready +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x658ad1f3 hpsb_get_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x67a36d21 hpsb_allocate_and_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x71293912 hpsb_add_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7310dca5 hpsb_get_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7a455b94 hpsb_set_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7f37f791 __hpsb_register_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x81aaa4aa hpsb_make_lockpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x841cb300 hpsb_iso_recv_unlisten_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x84b07a10 hpsb_node_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x857de082 hpsb_create_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8d5e8aac hpsb_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9b1d54fc hpsb_set_hostinfo_key +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9dab5b50 dma_region_mmap +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa1858e8e hpsb_alloc_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa320e20e hpsb_iso_xmit_sync +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa5b70d28 hpsb_iso_xmit_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa8cd8031 hpsb_packet_success +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xae9ba284 hpsb_protocol_class +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb3058406 hpsb_iso_recv_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb8dca58b hpsb_selfid_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbae54587 hpsb_unregister_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbe790153 hpsb_iso_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbeb45634 hpsb_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc59316e3 hpsb_lock +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 0xd1b5fba9 hpsb_iso_shutdown +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd4a1dc7a hpsb_send_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd5a3357c hpsb_iso_stop +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd740446c hpsb_iso_wake +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe2ef9af2 hpsb_make_phypacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe40eb69f hpsb_reset_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe5f8073e hpsb_unregister_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe8244a6f hpsb_free_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xed61e0d5 hpsb_register_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf1c853d2 hpsb_iso_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf213dd56 hpsb_make_readpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf356dee1 hpsb_node_fill_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf4bc7fbf hpsb_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf59b2694 hpsb_iso_xmit_queue_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf6a161fc hpsb_make_lock64packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfb30b55b hpsb_free_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfbea5899 hpsb_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfcb9165c hpsb_iso_recv_set_channel_mask +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x090b88da ohci1394_register_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x7d1276e4 ohci1394_unregister_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x938cb637 ohci1394_stop_context +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x09cde079 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 0x12344a98 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1c93d9ae ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x26dbdf41 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x34cd1a94 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3554ffb4 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x48af2570 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7023d10d ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7959e0b7 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7a077246 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7d5e9b57 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x82583b35 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8556e8ab ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa24c8e1c ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa99e3210 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbfa528e8 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xdbf18214 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe502d4c8 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x01426c4d ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x01b450f4 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0265c36c ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x074fb33d ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0b82d189 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x10cf54fb ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x12cc24ed ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x180defb4 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1a8c1fb5 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1f93a60d ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x21c8927e ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x284a4ee4 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2c60744c ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2c8bc87c ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b1dcd6 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x38360f38 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a9b92b4 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3b890b00 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x44cda3b1 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4621219c ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x46b1f1d1 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4a247efe ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4a57a482 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4b4a42e0 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4cb20bd8 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x502876d1 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x518e3849 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x58b2cbec ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5b1ab40c ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5c753a38 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x60883d56 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x60cdc484 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x61b80ad0 ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e624c86 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7165d620 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7230555a ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x749fc2d6 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x828255a2 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x84ff3ef1 ib_umem_page_count +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 0x8b3b12a7 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8dc04692 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e845e52 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x92948b8d ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x930fdd0e ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x970142d2 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x981b90a9 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9acd100a ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9b9238f7 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa2ff64ca ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaca6f123 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb05fa5a1 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1cdedf2 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb33bbabb ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbcdc27c4 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbdc9fbd1 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc0a139ad ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc45bd317 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcc8d7ea0 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd1448181 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd453a784 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd9742a6b ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe2ec054c ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xea0fad56 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeb0a5bf7 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf08f8d3a ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf3fd5811 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfe4c2aa9 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x07cb8236 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x52c7e885 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5aa87180 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5e145250 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x66c38632 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x762b77bd ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x85ba02e1 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x887811ae ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x97c85628 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa8052b92 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb9eee4c2 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xfd22850d ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0143a9ed ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0d81ffd1 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x1e86c25b ib_sa_join_multicast +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 0x97455329 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa0bbc063 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe8a8d2ad ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xefb5e469 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xfc5eb044 ib_init_ah_from_mcmember +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 0x51138535 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x852adb13 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x9d6ca91c iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xc34d818a iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xdd8112f7 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf55b306b iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf7397e13 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xfdcef1d6 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x08b0c177 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x16311492 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1d465766 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1ed1ce7e rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2588b12e rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x284a5024 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5438b05b rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5bfc3e56 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x60eb222a rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x61962cbd rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x62f91a45 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6bde9e78 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x719ef615 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x89000626 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8be11681 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x91564039 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa41abd64 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc8beee12 rdma_resolve_addr +EXPORT_SYMBOL drivers/input/gameport/gameport 0x0e59a814 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x1f05720b __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x9cc374d3 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa306903f gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xae1ddaee gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd9780e60 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xdcbfcf0b gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe1a79df5 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf44aef61 gameport_open +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 0x42c09111 capifs_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x570ea33a capifs_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x02c039ad capi_ctr_suspend_output +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 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 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x737e2f04 capi20_register +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 0x86db30f5 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f5af2af detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9e2825c8 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xad6e6397 capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaf1bdbf2 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe9f62f29 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xefcbbe09 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf0c529a0 capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xfe39219e capi20_put_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x0bd009c3 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1c92ea4e b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1f40294c avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2cb219bb b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x33c3ffdd b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36b188d8 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x3ae35370 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x74e88f46 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8a64c834 avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa5953475 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb2354a6e b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdf161c69 b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe19212f3 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe528f87e b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe5c2b7b9 b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xefaae135 b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x233ca0dc b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x552e30d1 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x678ed83c b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x74948587 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x9871bc0b b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xc504cfab b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd9cdd095 b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xe4cb0b67 b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xe637bdb9 b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xf7243863 b1dma_reset +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 0x3f725b0f proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x55736d97 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x7f7e8f72 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x98588f75 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xd666bb59 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x11625e7b mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xf8c853f8 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 0x394158ed hisax_init_pcmcia +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/hisax/hisax_isac 0x3b60f2c8 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x7528fbde isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xaa17718f isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xcf5332b4 isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xdc25cdd0 isac_init +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x1f198771 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x5a9b7b77 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x6c2064d9 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 0x1778fa40 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1bc46ff8 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1cf118bd mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x27fac2da mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b6385aa mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2be2e7f7 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x37eee51a mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x39ee7d2a mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3b07356c mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ef163b9 mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x492de208 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4f2dc50c mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x58713bc8 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x69a8333f dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x752750a1 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7c9c9ef8 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8c85f6c3 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9767ddde get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb2befd93 confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc641535f recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc8b0b85f recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd4aa16f0 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd6cb3e0b mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe7102256 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xeff85b75 mISDN_freedchannel +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 0xca59418b ir_raw_handler_register +EXPORT_SYMBOL drivers/media/IR/ir-core 0xf35da481 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x1020dc12 lirc_get_pdata +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x23bab046 lirc_register_driver +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x2df06ce5 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x4a3e0d16 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0x8da781f2 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xd827dac6 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xd888e331 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/IR/lirc_dev 0xdab0001f lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/common/tuners/max2165 0xb848f4bc max2165_attach +EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0xf9284904 mc44s803_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x965e3363 mt2060_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x26e6f9fa mt2131_attach +EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x131180e1 mt2266_attach +EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0x1fe7a8c8 mxl5005s_attach +EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0xb1a6a146 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 0x30e82222 xc2028_attach +EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x8288050a xc5000_attach +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x009ceb7e flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x07adc5db flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0a7f3faf flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3d18880d flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x458e49ef flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4ec0cf0d flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x50a85a6f flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x53e8776d flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x568f6005 flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x65918ae0 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x67c1716a flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7ffac7e4 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x833e7f7c flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8ca5db2c flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8ec1c6ac flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb7ea3494 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbe2cfae5 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd931e4a0 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe312aef6 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe756cef3 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x04169215 bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x1d8e919a bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x7e0b23d2 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xa83d8c6a bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x69cc706d read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x6d49f5da dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x6d662337 dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x7c3010e2 dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x89c763bb rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xb0511d9b write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xd88dc5e0 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf0a35253 dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xfc488094 dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0xc4db2fad dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x05b8f4ba dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x05e9651c dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0617cf2f dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x06c541c3 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x14d2f803 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1ef7da58 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1fd37000 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x25be4871 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 0x35b8f98e dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x373b1b77 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3a3aab99 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x66960b21 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6cb4f6fc dvb_unregister_device +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 0x76627e35 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x777a2753 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x866a71e3 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x86b7cc95 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8a6d914d dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x96a62863 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9d1322fc dvb_dmxdev_init +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 0xb947e4c9 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xca4feed5 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd2237330 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd504eea1 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdcb91667 dvb_generic_open +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 0xe7e419cc dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe9cb4ddc dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xeb417a8e dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf220a605 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf3bcfae5 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x5fce8f51 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x87ce33af dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x8b733e5a dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xb08a047b usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xb9553d0b dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xe3da6798 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xf4ad0880 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 0xa0790741 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 0x0520b6bd dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x07900160 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x27a81f96 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x495df06f dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x8976b1bd dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x9906316d dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa3d94834 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb185a8ad dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fcf6b8 ir_codes_dibusb_table +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xbafe0360 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe29c436d dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe99cebfb dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0x084719dc af9013_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0xe0cec22b atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x1965a98c au8522_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xfd0a7abd bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x4becf6f9 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0xd112845e cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0xa08656aa cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x25201e98 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x6c9b69bf cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0xc20087ad cx24116_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x8b8db69b cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0xac452d4b cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x08ad80c4 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x2e7bf218 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x72d0457e dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xa0188a6d dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xae60a4fd dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x162db4ab dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x4ac26e92 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x7c8d3392 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x8d5442f1 dib0090_register +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x94b3ecf0 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x9f0dd1e2 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xd1cfc945 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xf622e17c dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x2725ac66 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x31c50fc3 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x413ae3ca dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x4525bd35 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x534a9342 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x8723c9d7 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xaaf6bff6 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x271146ab dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xeadfc60d dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x4b3241d0 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x7e335a09 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x99d5fe76 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xad722b4b dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xdf9ca073 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xe987b873 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xf5f30b03 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xf735541d dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x02609f36 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x1c7cc9cf dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x25695165 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x2fa9451a dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x30e09417 dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x36258f89 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x4208b133 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x934374f1 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd0964140 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd7085b8a dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xe2c6770e dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x22fa5f4f dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x90b91325 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xd8846508 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xde9045b3 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0xbadad4f6 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xe0b3d507 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0x17e2abb9 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x35d8ea26 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0xd216ef7b isl6423_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0xd6ba3085 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x40c8cb51 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x7f184cf5 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xff908238 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0xd681d3c7 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x3ce97211 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xbc129678 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x1d41c14e mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xcbfe8b9e mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x23d07881 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x0c0d94db nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x65da12d4 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x6c7bed39 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x4dc9ba16 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0xfb5d03e9 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x2e7b2077 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x8d3ebf2f s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xead2cffb s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x1d3caa97 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x7046080d sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x42ce6467 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0xd06c40c8 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x5f8f0657 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0xd461cdd5 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0xf7af4c36 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x87b5f4ec stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xdae82f89 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0xcd798bfb stv0900_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0xdc6655a4 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x85af9ed5 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0x4bfeca75 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x2e9a3701 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x91021c15 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x60e36bb5 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x93f7457f tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xfae664c3 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x8a28bd2c tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0x953462dd tda665x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x62b8f985 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0x58b749aa tda8261_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0xe41552a6 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0xf3cc0c41 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0xa714df8e ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x8925a3ff ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0xf2a9208a zl10036_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x99892330 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x3eb7f98c zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xd64ead9f ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x5ed1e77d ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x7516e6b7 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x3ef49d15 bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x7dd0b435 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 0xcf56488d bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x1e7a66d3 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 0xdebc080f btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/cpia 0x38ae6efb cpia_register_camera +EXPORT_SYMBOL drivers/media/video/cpia 0xd8daeb14 cpia_unregister_camera +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x07364253 cx18_release_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x27d77d41 cx18_ext_init +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2f4949c6 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x367a53f9 cx18_claim_stream +EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x61fd084f cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x20921542 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xcf2ee870 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 0x188c0e75 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x79a80cd7 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x255cced4 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x567d08f7 cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x5ea6d1f8 cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xa2daaadc cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xb2786d10 cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xecfd76a3 cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x0a1d2af3 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x20e9da3d cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xa7614918 cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xcad86f98 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xfd6ea658 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xff71b010 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1747d930 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x19482af8 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x23a48044 cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x28234acf cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x31541198 cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3bd94848 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x416438f3 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x57f980f7 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x58addb1b cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5ee23f18 cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7ab8e5fc cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x85a361bc cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x869da2bb cx88_vdev_init +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 0x9fc0f991 cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa14d823f cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xaec1d39b cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xba53458d cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xbe518e7b cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd1908e59 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe3ecfe14 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe6704842 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe6c2385b cx88_core_get +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x07abb5be em28xx_register_extension +EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x4856b98c em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x174d2ddb gspca_disconnect +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x47f925a7 gspca_dev_probe +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x6f3dc021 gspca_get_i_frame +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x72a0fde9 gspca_frame_add +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xa90e12b4 gspca_suspend +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xf25a7069 gspca_auto_gain_n_exposure +EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xf2993533 gspca_resume +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x44648e39 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x47624aad ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x589cd984 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x5a374480 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x7073ca5b ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x70877163 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x9917adc9 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xab81dda7 ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xda341c50 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe4850539 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xf1e701bd ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x0d86f2ec saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x0e564fb3 saa7134_ts_register +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 0x15434306 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1cba4d2f saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x265c0725 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x49c6dc35 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x5e9928be saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xb4286248 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xc4885166 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xd3426368 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xf7abaca4 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xfb54d079 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/soc_camera 0x26715be2 soc_camera_host_register +EXPORT_SYMBOL drivers/media/video/soc_camera 0x6c8ecbdc soc_camera_apply_sensor_flags +EXPORT_SYMBOL drivers/media/video/soc_camera 0x9360b9f9 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/video/soc_camera 0xea03aab9 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 0x0606d194 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/tveeprom 0x794690b7 tveeprom_read +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x03d06848 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 0x7daaa94e usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x8f89fd32 usbvideo_TestPattern +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xc30a0d40 usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xd64d1b8a RingQueue_Enqueue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xe951ac5b usbvideo_Deregister +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xef6a2a19 RingQueue_Flush +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xfea93300 usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0xa56ce831 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 0x2eff1816 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 0x68f7569d 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 0x3ef3dfac v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xe9840d6f v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xfc63d3f5 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xfd99a042 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x1ca2b21d videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x3764dd4d videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xc4b0a83b videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xc8e53a16 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xcbd399b8 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xed92e952 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/videodev 0x446c15b5 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x4b22fdfb video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x4bced313 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x55d5ec28 video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0x5e8007d4 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/videodev 0xa6b824bc video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0xb43bf9d3 video_register_device_no_warn +EXPORT_SYMBOL drivers/media/video/videodev 0xb61d079e video_device_release_empty +EXPORT_SYMBOL drivers/media/video/videodev 0xc9f60d8d video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/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 0x019e3d7f mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x02815146 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x031b0ada mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x04ed95d3 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2d417daf mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x367bf513 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3b0f9ff4 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x45b6db4c mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x520e94bd mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x59f1a218 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5dc3a5f4 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x808622f3 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x898c7e60 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8b98ffdf mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x90a1fda2 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9447f039 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x97847f60 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa29272fc mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa34901c6 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa3b31fd9 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa8147dfb mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb05aa7f2 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb65d6552 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbc847a5f mpt_findImVolumes +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 0xd5e33b83 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xda40e1cc mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xeba15fa2 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf0accca1 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf892cad5 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x003eddbd mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x016c8562 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x02b21603 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1ffd5ec5 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2631d03f mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x324cda87 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x33e63e1f mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3c2bc3d5 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4013f792 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4436e956 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x45a9e312 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7698e498 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7e40d2e0 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8e3255b8 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x903f13ec mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x90879d6c mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa4d3f830 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xacbe07b3 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xaed57282 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xaf0887fe mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb8b4470f mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcf37658a mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdae16b59 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe159d814 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe7356f57 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xeff08249 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x029c85f5 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x07d17477 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0d07cfc8 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0ebcfa49 i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0febb83f i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x33558982 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3a5f98d7 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x469602af i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x577b69aa i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x612237ef i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x631a11f1 i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7e1d83dc i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8af8b2cb i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8dbd7728 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9702b110 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9973174f i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa8680912 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc60c684d i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe0978c68 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe7c5d912 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf1cbd198 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xffd463ef i2o_cntxt_list_get_ptr +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 0x662dd5aa c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0x70c9e2da c2port_device_unregister +EXPORT_SYMBOL drivers/misc/ioc4 0x225690a7 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x69c9dfa0 ioc4_register_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 0x8857c4d6 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x4cd14d33 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x522a51b9 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xfb7dac5b cfi_read_pri +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 0xa3877cce mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x8eb39422 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 0x5617f63b mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtdconcat 0xa88762ad mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/nand 0xb03222b5 nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xdf940703 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x571dfbdb nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xab25a4bc 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 0x0e19450c onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xb8cb0e4d onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xbaa7965c onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xceeb572d flexonenand_region +EXPORT_SYMBOL drivers/net/8390 0x0387fc9e ei_tx_timeout +EXPORT_SYMBOL drivers/net/8390 0x1f7541bb ei_get_stats +EXPORT_SYMBOL drivers/net/8390 0x54b6ce10 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/8390 0x57d071aa ei_open +EXPORT_SYMBOL drivers/net/8390 0x9b6150a8 ei_close +EXPORT_SYMBOL drivers/net/8390 0xbc9df7e5 ei_start_xmit +EXPORT_SYMBOL drivers/net/8390 0xbe53a1c2 ei_netdev_ops +EXPORT_SYMBOL drivers/net/8390 0xd1e34209 ei_poll +EXPORT_SYMBOL drivers/net/8390 0xd7a3fd8e NS8390_init +EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0xfe434627 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x0c2038a0 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1961d3c8 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4d85995f arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5c40ada4 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6895de19 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x8c3311bd arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x90f319da arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa4e4c715 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xc133c625 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xcd149b58 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x16f8bc5e com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x294756c5 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xbdfa9e57 com20020_check +EXPORT_SYMBOL drivers/net/bnx2 0xb060cd7a bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x 0x86f75247 bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x563893e1 cnic_register_driver +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3038c873 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x449c2838 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x58651bef cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x647e9bdf t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x746d5794 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7c849fea t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8661b895 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8b097a30 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8c2059fe dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa0976d54 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa558d66e t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbaccc03e cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc0141481 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc40d5f06 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xcc959c24 cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd8153b9f cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x08a63345 cxgb4_create_server +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x106c3862 cxgb4_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x114052c4 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x168b0e38 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x2de2af8e cxgb4_port_viid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x2f47bb94 cxgb4_netdev_by_hwid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x331daa97 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x381ab28c cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x50dab53e cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x5b8772b0 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x63e26d5f cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6634d25d cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6963d55c cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8ab9a974 cxgb4_pktgl_to_skb +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 0xb01c0c43 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xc5e09456 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xdd0eb412 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xf27022be cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x0c5de836 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x0ca508e6 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x1b09b97e hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x4d9de8c5 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xaa3eb803 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x02f8a43e sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x197690f8 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x5ea6a31b sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x684c3da3 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x7f18eb14 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8f512b1c sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa2cd4867 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xafa19377 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xbdf6db0a sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xf100e3e4 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 0x132fef84 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0x2cc64844 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0x3d491094 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x408952e5 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0x44a8167d mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0x50bfe4e2 mii_check_link +EXPORT_SYMBOL drivers/net/mii 0xb0a522ba mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0xba8f341f mii_check_media +EXPORT_SYMBOL drivers/net/pppox 0xa1ea9444 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0xb1ab3d92 pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xed2b60ed register_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0x34f24d4e mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x5b870fe4 tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xc7d7a37a tms380tr_netdev_ops +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd1c9c5d0 tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xf0a7a63c tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xfe2e17e1 tmsdev_term +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 0x021097de attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x21c36b11 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x2bded317 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x50d9fdbf register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x51470a38 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x6c35587f unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x8680b87a hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa79700b2 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xc3eed15e unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd3c7b4a0 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xfca43081 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xefe12e01 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x035b9ad9 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x790ce17b init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xb87c3286 stop_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 0x3a26ebd4 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7963257c ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xee7c86e7 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xfe6f5522 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x3f826966 ath9k_cmn_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x4ae346ab ath9k_cmn_rx_skb_postprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x6e524e1a ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x761c3cc2 ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x83868144 ath9k_cmn_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x8c6b3e52 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd22d79e8 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 0x00225825 ath9k_hw_extend_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x002b9cfe ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x01ae0da4 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b16da13 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0e19ad93 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f09a796 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x12f9a1d9 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x17167574 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x192ac06a ath9k_hw_setcapability +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1af839fd ath9k_hw_gettxintrtxqs +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2195a0a3 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x28ea1cc9 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2ae71d23 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2c5b72d8 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x38cafa11 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3c0505ba ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3d4441ea ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4ed12e3e ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4ff7c7f2 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x53eb0353 ath9k_hw_stoppcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x55992c01 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x591b84de ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ae6fbf3 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b99b815 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e7fd492 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x60558b0c ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x61cbcdb7 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x62e1584d ath9k_hw_htc_resetinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x64e5fa17 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6a676f5e ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x747d93ff ath9k_hw_getdefantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x74c4c5c4 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x78f56ade ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7958b191 ath9k_hw_keysetmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e6941c7 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x88135e57 ath9k_hw_stoptxdma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x891a1122 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8933d245 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x89dc5c3a ath9k_hw_cleartxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8cac70f6 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8de74d77 ath9k_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8ebb550e ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x903c10f4 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x90f28067 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x918d9c2f ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x91a90b91 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x91bb05bd ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x98943ba3 ath9k_hw_procmibevent +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9aba9ddd ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9cb1eaeb ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa15dc3a3 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa469e805 ath9k_hw_setmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaeb386b1 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaedefc1b ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb033cad6 ath9k_hw_keyisvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1690cea ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb2284eb2 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb41cb8bd ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb85cf246 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8e49fbd ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb355a05 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb5bc1ef ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbfb14bbe ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc3894cdf ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc54bdb0d ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc54cb4ea ath9k_hw_getcapability +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc655deb8 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xca766e57 ath9k_hw_set_keycache_entry +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd242247b ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdb1d471b ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdc82eded ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1000c50 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xead626d8 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeca0869d ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xee24970c ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf12c5a12 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf4c007e2 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7b039bb ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf834b97d ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9f99431 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfb0a6546 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc584e8a ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/atmel 0x888a24c1 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x9a79ec13 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xa1249a8b atmel_open +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x213dd3a2 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x21b8d540 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x24fd240b hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x29cafd0c hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4304efcf hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x47453d38 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4917de91 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5b4ba9a3 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7228ffd0 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x74acedf7 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7f0fe6f6 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x83a09c69 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x85c95af1 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8ad2746a hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9971226a hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa5700e8b 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 0xbe626ec0 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc28df117 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc9900265 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcdc736d6 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd11bbfcf hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe9f076a0 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xed7d8a54 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf64e5faf hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf71314e2 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1252928b libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x13a0418c free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3593de7e libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x38247497 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3b113e5d libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3b1e39ef alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3b6bd6ab libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3c0a10c6 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3e3288ba libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4b105c9f libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x596cd9ef libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6256dfb1 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x76e46db1 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x822e045d libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8e05e318 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x96db9057 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa14b539f libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb4af156c libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xecff44a2 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf02b5601 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfa8ff403 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x009fd9b2 iwl_tt_exit_ct_kill +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x017c701b iwl_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x01889ca3 iwl_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x046f5eee iwl_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x04846be1 iwl_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x058abb3f iwl_tt_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x060e69e8 iwl_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0881962c iwl_rf_kill_ct_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x094d3670 iwl_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x09bdd9b9 iwl_set_rxon_chain +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0ad968f2 iwl_setup_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0b619de4 iwl_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0d244090 iwl_sta_rx_agg_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0d3dd8f4 iwl_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0da23749 iwl_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0e1d7fb9 iwl_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0e302a7f iwl_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0e7c9c57 iwl_bg_start_internal_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0ed0f461 iwl_free_tfds_in_queue +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0fa012b8 iwl_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x12701e3d iwl_rx_csa +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1384cf56 iwl_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1779b597 iwl_send_statistics_request +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1a024313 iwl_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1b2884c0 iwl_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1ebc473d iwl_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x20cc9d17 iwl_reply_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x21737948 iwl_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x22157d75 iwl_rx_reply_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x22215ac5 iwl_remove_dynamic_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2234d594 iwl_add_bssid_station +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2442cd7c iwl_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x26ff6637 iwl_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2a290ccd iwl_dump_fh +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2aae3782 iwl_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2d9c25a0 iwlcore_eeprom_verify_signature +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2e61d09a iwl_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2f3a9a08 iwl_rx_missed_beacon_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x31f7defa iwl_sta_tx_modify_enable_tid +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x322b69fd iwl_init_sensitivity +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3340cdfd iwl_sta_modify_sleep_tx_count +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3481d482 iwl_chain_noise_calibration +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x377a5df4 iwl_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x38eb98e8 iwl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3ab013dd iwl_set_default_wep_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3c112791 iwl_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3f22358d iwl_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x41dc7efb iwl_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x41f4b753 iwl_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4368d6c6 iwl_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x45bcf6a3 iwl_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x462f692c iwl_eeprom_check_version +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4748ce33 iwl_recover_from_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4e6b8028 iwl_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x509e8c02 iwl_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x511d881f iwl_rx_pm_debug_statistics_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5286b820 iwl_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5557682a iwl_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5a4ecfe0 iwl_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5a7fea51 iwl_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5e1ca048 iwl_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5ee443b6 iwl_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5fb22af1 iwlcore_eeprom_enhanced_txpower +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62a8ee82 iwl_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62cd3e62 iwl_send_calib_results +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62fee94d iwl_verify_ucode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6493b5d6 iwl_eeprom_get_mac +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x66bf1174 iwl_tt_enter_ct_kill +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6a7196f9 iwl_tt_exit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x71db00d0 iwl_bg_abort_scan +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x757d5497 iwl_reset_run_time_calib +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x76419a2c iwl_rate_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7bb6607a iwl_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7c44c2b0 iwl_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8035462c iwl_update_tkip_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8446eb02 iwlcore_rts_tx_cmd_flag +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8670273d iwl_hwrate_to_plcp_idx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x89b51c5d iwl_restore_default_wep_keys +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8a574158 iwl_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8c66374d iwl_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9468b5bb iwl_led_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x98bd3be3 iwl_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9d42a720 iwl_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9e5cdc56 iwl_alloc_all +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9f7d771d iwl_toggle_tx_ant +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9faced57 iwl_calib_set +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa11c66a5 iwl_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa3854f28 iwlcore_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa5ec0c38 iwl_mac_beacon_update +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa64b4c59 iwl_dump_csr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xab1bb0e3 iwl_get_free_ucode_key_index +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xadd056ef iwl_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xae5ee4f7 iwl_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb424ae41 iwl_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb86a0fa3 iwl_bg_scan_completed +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xba887ffc iwl_calib_free_results +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbac2fc59 iwl_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbd3d9566 iwl_leds_background +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbdef2ff7 iwl_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc180e4c2 iwl_tx_ant_restriction +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc2f42be8 iwl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc3dbec5c iwl_sta_rx_agg_start +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc445ae11 iwlcore_eeprom_acquire_semaphore +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc4db5be7 iwl_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc4e42a75 iwl_sta_modify_ps_wake +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc81f028b iwl_set_dynamic_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xca22ebfc iwl_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xca4d935a iwl_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xccee71f3 iwl_set_hw_params +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd1af6459 iwl_remove_default_wep_key +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd7827036 iwlcore_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd9fefcaf iwl_rx_spectrum_measure_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde1a5f37 iwl_bg_monitor_recover +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdfdd7f03 iwl_rx_pm_sleep_notif +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe026315f iwl_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe07ad173 iwl_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe0b90318 iwl_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe267f21d iwl_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe5de415c iwlcore_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe67257a2 iwl_bg_scan_check +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ce5d70 iwl_rates +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ff0b86 iwl_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xee46acd5 iwl_rx_statistics +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xeeb0806c iwl_hw_detect +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xef82dc90 iwl_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf034b149 iwl_tt_handler +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf0c9c6a2 iwl_good_plcp_health +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf102f418 iwl_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf23b8dba iwl_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf97d8477 iwl_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf9a87136 iwl_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfb019b76 iwlcore_eeprom_release_semaphore +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfb528e14 iwl_ht_enabled +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbd9dde7 iwl_sensitivity_calibration +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0d1fe895 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0d4cb295 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1e5687e7 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x33713fc7 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4ff5c52e orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x508649c1 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x68950de3 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x77360898 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x916f08bc hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9a98f4be orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9c4e4ad2 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9f6308d0 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb9912f40 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc3b9d52e __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd9a60e6b orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe8b1b334 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xed260cfd orinoco_set_multicast_list +EXPORT_SYMBOL drivers/parport/parport 0x1536e7ec parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x209ded62 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x2ed10422 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x30013cd9 parport_release +EXPORT_SYMBOL drivers/parport/parport 0x34c72d3e parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x47c1ed56 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x5621b9ec parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x56ba0265 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x57579f11 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x680239e3 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x6e17d6de parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x772e7e3f parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x8a4187b9 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x965f668a parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x9a742408 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0xa2cc2096 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xb0b71b25 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xb1f3faf0 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xb2e90aaf parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0xc59020a2 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xca85f4fe parport_read +EXPORT_SYMBOL drivers/parport/parport 0xd011a798 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xd23ac721 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0xd9f60bce parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xda5d1fb4 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xeb1c5bce parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0xefdbe9f4 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xf0e1bb88 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xf42bee11 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xfb311d55 parport_register_device +EXPORT_SYMBOL drivers/parport/parport_pc 0x045a397f parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xf5c42987 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00730057 pcmcia_request_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x27e4db22 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x28585f37 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x51fde07d pcmcia_access_configuration_register +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x72a1b43a pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7ed9145d pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8d9966e7 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x91e37169 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9c5d1c50 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9ede0e1d __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa7b2fb8c pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb9127147 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc02ef2c8 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc635cec4 pcmcia_modify_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcea290c2 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcea5cc28 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe411aadf pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xef5d2ace pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0dfb92e9 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1526a643 pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1e254249 pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x2a7a7979 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa81d2f7b pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb46d1416 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb554ccd7 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xceaf7b06 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcee22311 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd299116d pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe9221630 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x817d819b pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x969fe59f 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 0x4ac3facf pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x422fd548 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x55847797 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x64f283bf fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x878ef38c fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x934593c5 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9d025a4f fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xababc738 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00ac7dab fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00c848fa fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x05e096ea fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x16a8caa5 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x21a86645 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x24ede91d fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2f6722d1 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x350ca179 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x364c04a8 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x39d2f48b fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x406df31d fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x40f522ab fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4c316fa1 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x505e88e9 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5352dd3c fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x53ec557b fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x547648ba fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5bd7551b fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5c93b823 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6951625b fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7167e7d4 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x73a26b93 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x875b0499 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x956a264a fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9f1e3a78 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa22482dc fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaa452552 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb26647fd fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb382ebae fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xba017b17 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbf6b85ce fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xce922dfa fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd07f3991 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd4c44f75 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd5e17393 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd5e34d91 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe3492237 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xeb4d42b4 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xec94eabd _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xed9a65b6 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf5ad3fac fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfa6b6ddf fc_fabric_login +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 0x83f35cfe mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0a439e70 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0f1a2b12 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1289e2bc osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1be6b891 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1cd5b6d4 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1e6233a3 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2ed68508 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x346baf56 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x359b5ae4 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x44060fd1 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x47d8f0bd osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4be5e033 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4e3cf929 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5ad407a7 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5b5e4978 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5df19a65 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6fc0bfd2 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8f6e02de osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xac317137 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xae031096 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xafdef27d osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xaffa1a81 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb84aef41 osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb96a668f osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc01f58a9 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc9beb4fa osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xca92be03 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd1a0a749 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd2f4cce9 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xea793d9a osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf72f2a30 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfeff46d1 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/osd 0x104b11ca osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x77f615de osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x8a862fc9 osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x8dbd1b1f osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0xb9e2920e osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xc6531fbc osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3424e828 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x6c8e07b4 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xb87e1b47 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xd9a0cc67 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xde9f3688 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xef3f618d qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x5bab1273 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0x7c2f8cd9 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x94f3064b raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x09aae7f1 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0ebf7480 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1108f5bf fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x15ebb781 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2e53e913 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3a5a4bb6 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x401cfe02 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8a082868 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa3cd361d fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa56da410 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb3429723 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb3c816fb fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf5e491af fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0ac773d3 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0bd23902 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x18548a85 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x204828d8 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x33833c48 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x33b0b7be sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x428d3df8 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4c16319a sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4ea164f0 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5f59ffc6 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5fd07f0f sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x75b61cd2 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x85b9d1aa sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8f61a966 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x947bb05c scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9ec24c43 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa625e7d3 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa922f90a sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc88eaa25 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc9b93714 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd5e6d01b sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xda261b71 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe29b94ff sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe38269b8 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe7919591 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf381599e sas_phy_add +EXPORT_SYMBOL drivers/ssb/ssb 0x0a9c32e7 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x1eda76b6 ssb_dma_alloc_consistent +EXPORT_SYMBOL drivers/ssb/ssb 0x228ef4ea ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x2459cbbe ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x34bd985b ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x357868ce ssb_dma_free_consistent +EXPORT_SYMBOL drivers/ssb/ssb 0x3c0afbdb ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x418e3609 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x446d5b88 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x45cac5bd ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x58444a19 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x73b655b5 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x7aaf6fb2 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x7c29f1a0 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x90ed51c4 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x92c45e79 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x946a3e5a ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xae81a48d ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xb074608b ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xcd7ac446 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0xd34ad5d4 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xd86f2e0a ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0xf29f80fc ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x00296220 comedi_check_chanlist +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x05bfe4ec comedi_buf_memcpy_from +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x153a45c7 comedi_error +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x1c25694b comedi_event +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x438943b9 comedi_buf_read_n_available +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x7bb0a04c comedi_buf_read_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x7d4789f0 comedi_buf_write_alloc +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x81e9d4e2 comedi_driver_register +EXPORT_SYMBOL drivers/staging/comedi/comedi 0x97a16bb6 comedi_driver_unregister +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xaf0d05dd comedi_buf_read_free +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xd941bfc5 comedi_buf_get +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdab42c7b comedi_buf_memcpy_to +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb00b78e comedi_buf_put +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xe7302436 comedi_get_subdevice_runflags +EXPORT_SYMBOL drivers/staging/comedi/comedi 0xfcdf680d comedi_buf_write_free +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 0x308baca7 mite_bytes_read_from_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x30d9e4fa mite_sync_output_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x32ab86a4 mite_request_channel_in_range +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3313b132 mite_dma_tcr +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3e3fa17e mite_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x595585a2 mite_get_status +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x6733a61d mite_done +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x71011670 mite_bytes_written_to_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x7f9d008b mite_buf_change +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x86dd1686 mite_sync_input_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xa0543cdb mite_unsetup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xa4766cf2 mite_setup2 +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xb2adcbfe mite_bytes_read_from_memory_lb +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc5ffee31 mite_dma_disarm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xd337557e mite_bytes_in_transit +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xe6522081 mite_prep_dma +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xf3277129 mite_bytes_written_to_memory_ub +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xf5310386 mite_setup +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xf85265af mite_release_channel +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfa4f47c0 mite_dma_arm +EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb3ba025 mite_list_devices +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x5845cab4 subdev_700_init_irq +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x6566857e subdev_700_cleanup +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x82fdd6c1 subdev_700_init +EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xc3d809d2 subdev_700_interrupt +EXPORT_SYMBOL drivers/staging/comedi/drivers/pcm_common 0xff01ac8c comedi_pcm_cmdtest +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x362427ea comedi_get_n_channels +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x404cc361 comedi_find_subdevice_by_type +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x4fe2e2de comedi_dio_config +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xb37c1ab2 comedi_dio_bitfield +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xf65d315a comedi_open +EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xfe2818fb comedi_close +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x04437c80 cx25821_sram_channel_dump +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x471e1cfb cx25821_devlist +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x4ab75dc8 cx25821_sram_channel_setup_audio +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 0xa590e9f6 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xae9c7fab cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xb0cb3788 cx25821_sram_channel_setup +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xcba354d9 cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xf3431f81 cx25821_dev_unregister +EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xfb38cf25 cx25821_dev_get +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x040a27b3 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x7743b5c3 go7007_snd_init +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x8173b0fb go7007_read_addr +EXPORT_SYMBOL drivers/staging/go7007/go7007 0x933727ed go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xbe7f0ad4 go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xdca47a79 go7007_alloc +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xe6f70bca go7007_remove +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xec7468f7 go7007_snd_remove +EXPORT_SYMBOL drivers/staging/go7007/go7007 0xfa58d5a1 go7007_read_interrupt +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 0x0ab3f4d2 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 0x23e2149d iio_read_ring_bps +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x23f43b73 iio_trigger_read_name +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x287e8d11 iio_remove_event_from_list +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 0x35dcfbe5 iio_push_ring_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x386c482a iio_read_const_attr +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 0x4bf906f7 iio_device_unregister +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 0x8c89d90a iio_free_device +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x95466ace iio_unregister_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x985fff58 iio_show_ring_enable +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x998d75ae iio_register_interrupt_line +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9ae0676f iio_add_event_to_list +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9ce372db iio_ring_buffer_init +EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9f4414a2 iio_device_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa1076e05 iio_scan_el_show +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa23a4223 iio_allocate_device +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 0xa4613fb1 __iio_push_event +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa7f5dafd iio_trigger_unregister +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 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 0xdc740988 iio_trigger_register +EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf1dfcd40 iio_bus_type +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 0x2d6988d0 variax_create_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0x34511723 pod_remove_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0x7cc372a7 variax_remove_files +EXPORT_SYMBOL drivers/staging/line6/line6usb 0x9e1b1260 pod_create_files +EXPORT_SYMBOL drivers/staging/memrar/memrar 0x11452eff rar_reserve +EXPORT_SYMBOL drivers/staging/memrar/memrar 0x785e5269 rar_release +EXPORT_SYMBOL drivers/staging/memrar/memrar 0xd0382ff3 rar_handle_to_bus +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x0072de2f rar_get_address +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x795dda28 rar_lock +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xd0430f9f unregister_rar +EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xdc043a43 register_rar +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x023813aa notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x08a7b629 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0a21fb03 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0dabb5d0 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0fade828 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x113ddebe ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x124ecd2d ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x18006db3 ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2344b5b6 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2d68edb7 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2e902c2c DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3f57b08b ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4cbb7218 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4ebd2fe0 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x55e57c5a ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x577427c9 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5a19b0e5 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5a3c0640 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5de7b56f ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5e042be3 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x61a7b3db ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6f402cac ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x75ae1aee ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x86cf6824 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x88dcfe9b ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9458f195 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x949ce4b6 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x969ab94e ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x96dd6e66 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x970d2b72 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x97d6b99f ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9926d0f6 ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9a3c78e2 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9c7728c3 Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9d1a1111 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9e0c91c4 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaa3a4d84 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaae4b9ed ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb573ca24 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb69ee302 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc1f4bf47 ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcc4bd4cd ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd23d3e8d ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd4f90961 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdc2450df ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdd5011c1 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xde862753 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe34ddb5a ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe7178c68 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe7b4a07c ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe80da76b ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe8dd1cdf ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xeadb4127 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf1d9f12d ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf7a0bcd7 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf890853b ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x292ae368 tm6000_unregister_extension +EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0xec62f77b tm6000_register_extension +EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/staging/vme/vme 0x0aa741e0 vme_irq_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 0x2335090a vme_dma_list_exec +EXPORT_SYMBOL drivers/staging/vme/vme 0x29995d8c vme_dma_list_add +EXPORT_SYMBOL drivers/staging/vme/vme 0x29bffb01 vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf vme_lm_set +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 0x57ac3e34 vme_register_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x641a9557 vme_lm_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x65390645 vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f vme_dma_pci_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x6a89df75 vme_irq_free +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 0x77a6a449 vme_irq_handler +EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x86facd9c vme_register_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x8907db48 vme_slave_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x8bc44117 vme_bus_type +EXPORT_SYMBOL drivers/staging/vme/vme 0x9066f82d vme_slot_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x9111c9d2 vme_irq_generate +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 0x9d279035 vme_master_write +EXPORT_SYMBOL drivers/staging/vme/vme 0x9daf2a1e vme_dma_list_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xa09d045f vme_get_size +EXPORT_SYMBOL drivers/staging/vme/vme 0xaaf64dc4 vme_master_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xb331825a vme_dma_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 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xe5962567 vme_unregister_driver +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 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 0x1442fe39 ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x29c81fa0 phone_register_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xee215d20 phone_unregister_device +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x452d9a02 usb_gadget_register_driver +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x45b80975 net2280_set_fifo_mode +EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0xaa3cb05c usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xa70dfeab 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 0x029e9078 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1d89c79d usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3141a706 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x363ac5cc usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3a30ea17 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x404d55ed usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4ebbf030 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x51b0ec28 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x76a50f2a usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8a1a3221 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8e800d54 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb2dd72ed usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc777545c usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe65c9c43 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x2f43a202 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xe78e2c82 usb_serial_suspend +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x05a19e84 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xde8a3ccb lcd_device_register +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x152a9a82 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x1876b7b3 cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/cyber2000fb 0x54404a87 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x8874df85 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 0x17459106 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x4e3098d8 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xbe6f4860 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xd27f1de2 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x1afce212 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x5190aa68 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x9d272d95 matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xe3f52ba5 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x1a35914c matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x6f82cbba matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x14ac2ea5 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x8de4ae47 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x9bc1c36d matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xc6909b12 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x2848948f matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xa66999d0 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x2afe9a1c matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x517bc8d7 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x5585dc63 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x949a57e2 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xa39aa654 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0xa39a13f4 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 0x11569610 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x4679f40a svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0x56211308 svga_tilecopy +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 0x9a5f4de3 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x9fa9bbe2 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xbb36314b svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xdf7b3edb svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/syscopyarea 0x3f4eca1a sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x765511e9 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0xef70ff1e 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 0x07a66ba4 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x0adff54b w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0x119a1e52 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x42e7a495 w1_remove_master_device +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop +EXPORT_SYMBOL fs/configfs/configfs 0x0ebdb6c4 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x0f69e26f config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x0fb0b3c3 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x44cd54ad config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x5bb17d99 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x92fc864a config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xaa02c70f config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xb15302ed config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xd2462a53 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xd27d9492 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xd3a4c9f8 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xfa43359d config_group_find_item +EXPORT_SYMBOL fs/fscache/fscache 0x030a90c9 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible +EXPORT_SYMBOL fs/fscache/fscache 0x109a3e73 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x12c0e47f fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0x157a06b7 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x175d697c fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x1c2288de __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x1d1b7d3c fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x1fa07163 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x3d37b9bf __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit +EXPORT_SYMBOL fs/fscache/fscache 0x400b6574 fscache_object_slow_work_ops +EXPORT_SYMBOL fs/fscache/fscache 0x45d5b975 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x4972c620 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x4fc98bd2 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x506c3c10 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x50a7a6be fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x51b56482 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x51f82325 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x5b4e9554 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x7dd50c20 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x7ebb8baf fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x81fd949c fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states +EXPORT_SYMBOL fs/fscache/fscache 0x8d39985b __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x9737d798 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0xa1afead2 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xa2fa04e2 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0xb1729a27 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0xfcab7b46 __fscache_maybe_release_page +EXPORT_SYMBOL fs/nfsd/nfsd 0x23f0a2c8 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x46ffdc39 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x96ce9bb4 nfs4_acl_new +EXPORT_SYMBOL fs/quota/quota_tree 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 0x5a37a253 destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0x70a1ba67 make_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x07d75f18 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x0b3ac49a p9pdu_dump +EXPORT_SYMBOL net/9p/9pnet 0x0fe634b9 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x1d17bd71 p9_client_version +EXPORT_SYMBOL net/9p/9pnet 0x1d33b21f p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x25858d8d p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0x3183028b p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x36a337ee p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x370524cc p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x4177eeb5 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x41e6bc51 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x43e72b5e p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x4e58cc63 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x5db2ce8a p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0x6f6d72e3 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x716efaeb p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x7d9551dc p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0x839618ca p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x86db5063 p9_client_walk +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 0xaf4a2470 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xbc9d2e6c p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xc046e11f v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0xc3e6fa83 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xc5a1ab3b p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0xcb4ceea3 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0xcee2db4a p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xd381fc9c p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0xd9508167 p9_client_destroy +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 0xf23d5eae p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xf4e380b6 p9_client_attach +EXPORT_SYMBOL net/appletalk/appletalk 0x37bf34db atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x6e7c7535 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xba2f612b alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xc1d0ebd3 atrtr_get_dev +EXPORT_SYMBOL net/atm/atm 0x035c41f5 atm_charge +EXPORT_SYMBOL net/atm/atm 0x1a6a43f0 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x226d3f7e atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x306338c7 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x4bb005d6 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x547984bb deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x74286eb2 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x83fb6966 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 0xab161939 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xb99a9543 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0xe201f843 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xebc37c90 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/ax25/ax25 0x0479d44f ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x2721f517 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x3242cda9 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x4dd709ca ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x50065baf ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x706e36c0 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x87905c2e ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x8bb7aaa0 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xd8b23e87 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xe98825dd ax25_header_ops +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0185e101 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x063b0486 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x098dce81 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2a256136 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2bd37b09 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2e8be38d hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2f922825 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3cb6fc06 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3d0f9986 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x57615aa2 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x592a5f25 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5d0bffa8 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5f2204ff hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5fa78452 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6922edc8 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x698db2cd hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7bace149 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0x88308410 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8c610ca9 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa379b8a8 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa794f6c2 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xab9a9051 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaf072cc4 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb8422ef8 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xba670cef hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc8689339 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcba5e2fa hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe254b59b hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe9d2371f hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xee509e12 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf73d1957 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfc649ea3 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0xd301da61 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x5a4e75b3 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x6897afd9 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x87579ef6 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 0x0aeaf0d7 can_send +EXPORT_SYMBOL net/can/can 0x46c570dc can_rx_register +EXPORT_SYMBOL net/can/can 0x5b75ef92 can_proto_unregister +EXPORT_SYMBOL net/can/can 0xc4b291d1 can_rx_unregister +EXPORT_SYMBOL net/can/can 0xfbbb3679 can_proto_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x13eec727 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x1a161d5d wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3da3f6a0 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4158e7eb wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x49d2d6cd ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x764ec098 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x7e5b0a2b ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x8cd98083 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x92cea49e wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0xdb2e5466 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xdc428858 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe8e4443f wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0xfb619dda wpan_phy_for_each +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x59be7e37 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x7a04bca2 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x8c935ef1 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x67d15726 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xeeaaaf54 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xf0205840 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x21ae8bfa nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x24d7d056 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x87acca71 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x8ed49ca3 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x990ea969 nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xddb01174 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xea09d7dc nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/tunnel4 0x37e5e9b9 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xe3a10ec5 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x14e84b2d ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x309bf837 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x3d350b0a ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xcb82d581 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x8796d01a xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x887338a2 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x13871e82 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x3b8a164d xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x48663e39 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x30bc332c ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x478ecb52 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4e7c05e8 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5619a9a4 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x61046c02 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x87beaadb ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9cb2c587 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xc09d2919 ircomm_control_request +EXPORT_SYMBOL net/irda/irda 0x038a0ccd hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x06d077a1 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x083de2f5 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x0b482c17 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x0bba4125 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x0db79717 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x10aef03d async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x186a81dd 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 0x29c016a2 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x41350b33 irias_new_object +EXPORT_SYMBOL net/irda/irda 0x423109a6 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x47fccd04 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x485227fa irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x546e9e71 iriap_open +EXPORT_SYMBOL net/irda/irda 0x56ccbfbd irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x5a8b2bb2 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x62e074f2 hashbin_new +EXPORT_SYMBOL net/irda/irda 0x68a4e347 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x784ebb52 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7d057405 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x828feea1 proc_irda +EXPORT_SYMBOL net/irda/irda 0x86e736e2 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x95f2efa4 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x9621f1eb irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9a078a82 hashbin_find +EXPORT_SYMBOL net/irda/irda 0x9ddcfa69 irlap_close +EXPORT_SYMBOL net/irda/irda 0x9fd473a7 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0xa193df92 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0xabe55b66 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xb8a1d46e 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 0xc2e842c9 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0xc46ecccf hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xcd0e8446 irlap_open +EXPORT_SYMBOL net/irda/irda 0xce5be94a alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0xd3c3dbc5 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xd729fe77 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0xd7b92c8d irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xeab3dcec hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xeafceb8e hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xed782421 irttp_dup +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xfb15d467 iriap_close +EXPORT_SYMBOL net/l2tp/l2tp_core 0x02292fed l2tp_recv_common +EXPORT_SYMBOL net/l2tp/l2tp_core 0x5739bc8c l2tp_tunnel_destruct +EXPORT_SYMBOL net/lapb/lapb 0x09d63a42 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x633455ea lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0xa88b00d6 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xc03dd44f lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xc7392d93 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xf0f5698c lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0xf9741b97 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0xfcfc408c lapb_data_received +EXPORT_SYMBOL net/mac80211/mac80211 0x08ed4f41 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x0f3b0b28 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x148874b3 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x337cb606 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x356baf18 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x39cb5232 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x3a469a88 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x410a0110 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x4bba47c6 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x4c840b99 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x4ebbef1c ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x55d91784 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x58c3bc55 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x6110a232 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x63c9cf88 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb +EXPORT_SYMBOL net/mac80211/mac80211 0x65c971d6 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x67dab8dc ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x70e008f4 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x73dac8f7 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x74b4db8e ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x8706bc54 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x91b123cf ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x9a89a0de ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x9a97a915 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x9dbf7fa9 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb +EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xbb2e1c96 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0xbfaec457 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xc321ee8f wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xc43563cc ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0xc78f684c ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xc9f79c88 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xd5f2e661 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xd859bfca ieee80211_get_tkip_key +EXPORT_SYMBOL net/mac80211/mac80211 0xeeadc08e __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xef5987e6 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0xf656f6ad ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xf66c9cc4 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0cc53352 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4ab465b0 ip_vs_skb_replace +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6bb1477f unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7e72c87d register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8ec08635 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8fdc8282 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x97538505 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa30db14d ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xac0ceaa3 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd8a993cb ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf70912aa register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x1acf0aeb __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x21df672e __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xf93eb675 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x14d2801a xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x1f3173b9 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x31d6f1ef xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x48962f4a xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x6252c433 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x7256a94e xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x85642da8 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x9a749162 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xc1dca901 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xd0ef9213 xt_register_target +EXPORT_SYMBOL net/phonet/phonet 0x01cba3d6 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x065aa5a2 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x13a6dd8b pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x39f3592f phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x493fbad9 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x9302151c pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0xa86d2e0b phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0xf9f880ba pn_sock_unhash +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x06e174bb rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0d8a739c rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x28ac37d0 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3ae7af08 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x491ef152 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5872dd87 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5a3b3955 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x614fee16 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8e0b15ba rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa4a1dd54 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc1287d34 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc3998118 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe28cda83 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe380d7fc rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf932e48c rxrpc_get_server_data_key +EXPORT_SYMBOL net/sunrpc/sunrpc 0x83cc9659 svc_pool_stats_open +EXPORT_SYMBOL net/tipc/tipc 0x00a3e242 tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0x06e3e540 tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x0b074a7b tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x23daecbd tipc_send +EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x36e304d2 tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x3de384f3 tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x419b02fc tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x528a9f0a tipc_send_buf_fast +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 0x88b73627 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x8d0263bb tipc_send_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xa1b42d32 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0xb1f8eacc tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xbb34757d tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0xc47321ad tipc_forward_buf2port +EXPORT_SYMBOL net/tipc/tipc 0xc63a48b8 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 0xdaf729ad tipc_send_buf +EXPORT_SYMBOL net/tipc/tipc 0xdf21ed65 tipc_createport +EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xedea2505 tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0xfce68064 register_wan_device +EXPORT_SYMBOL net/wimax/wimax 0x044b287f wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0x117ce912 wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x07485b34 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0d16a357 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x1e0a73ab wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x2431a15a cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x296ec2fa cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x2cc5c823 cfg80211_get_mesh +EXPORT_SYMBOL net/wireless/cfg80211 0x30a0a009 cfg80211_send_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x3943da9f cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x3ae91266 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x3d1e4788 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x47ca6721 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x4a226c41 __cfg80211_auth_canceled +EXPORT_SYMBOL net/wireless/cfg80211 0x50ebed2d wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x5e927609 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x5fb4983e wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6e7f5921 cfg80211_rx_action +EXPORT_SYMBOL net/wireless/cfg80211 0x6f007f72 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x764409cb wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x7722d0fe ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x8401a4b5 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x84aa4872 cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0x8519455f wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x9064725f regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x93048d0f freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x978593ca ieee80211_data_from_8023 +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 0x9b75202e cfg80211_send_rx_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0xa0ca84f6 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0xaca4036c __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xae85be4a cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xb09ec130 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xbf8e5dae cfg80211_send_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xc396d553 __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc88629ed ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xcb14501e cfg80211_send_rx_auth +EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xce3b57ac cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0xe17273fa cfg80211_action_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0xe4722f81 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xe827f76e cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xf236a61c cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xf245e540 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0xf46ad790 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xf84eba4e cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xfdd29a1d cfg80211_ibss_joined +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 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x244ca787 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 0x497088b4 snd_seq_kernel_client_enqueue_blocking +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 0xde34d083 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0xf9eba6be snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x0cc99243 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 0xb3a93def snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x017f4a67 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x949c9ac8 snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x951ea30c snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb00606b7 snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb30510f7 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbeaecf8c snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xddc220c4 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xf5eb237e snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0xc5c7d2d0 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x019d046a snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x05dd5e53 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x07250a51 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x08b4fa11 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x093da85e snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x11111b61 snd_device_new +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x190af8b0 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x1d4e8af1 snd_power_wait +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 0x356f9ff2 snd_component_add +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3b3b9345 snd_card_create +EXPORT_SYMBOL sound/core/snd 0x3ff9ed20 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x41a7f2bf snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4a914d12 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x5137e27b snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x518bb7f8 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0x5c8f4cb5 snd_device_register +EXPORT_SYMBOL sound/core/snd 0x5cc45f94 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x5f6aa1b5 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x61735db1 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x7439647f snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x763175b3 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x77a4a664 snd_ctl_register_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0x7c0771a2 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x7e68eaee snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x814f5959 snd_info_register +EXPORT_SYMBOL sound/core/snd 0x86c8db25 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x88b45a94 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x908d23c5 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x93bdc511 snd_cards +EXPORT_SYMBOL sound/core/snd 0x9c24a574 snd_card_free +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa02bec74 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xbedd8f34 snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0xc0a922e0 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0xc65ba493 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0xc6a866e4 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0xca8fd720 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xcba6e07b snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0xceb340ce _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0xd374c2f3 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0xd52b52d7 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0xd614b11d snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0xd77a050f snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0xdc1436c0 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0xe243dde3 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0xe5502def snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xede9f961 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0xf818594f snd_card_register +EXPORT_SYMBOL sound/core/snd-hwdep 0x1d696d31 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x12a4abfd snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0x19cc2ce3 snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3637dde1 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x8b9acea8 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xb4992db8 snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xc6829020 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xf6b90289 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x037bfd3a snd_pcm_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x16382203 snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x1c264d48 snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x218d1e92 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x2700f9c4 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x27c674b1 snd_pcm_lib_mmap_noncached +EXPORT_SYMBOL sound/core/snd-pcm 0x2c53de0c snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x2ef08191 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x3173b49a snd_pcm_lib_writev +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 0x3ec158ab snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x40b33224 snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x45d3b415 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x490dc887 snd_pcm_notify +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 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 0x72efb0fa snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x7403d0a4 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x76edd391 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x7909f74d snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x7fc77979 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x8459fc3d snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x845eeef3 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x880053a7 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x8e3a1013 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x92952a4a snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0x97f1f434 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x99d17ea3 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x9e3ed967 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x9fae4d27 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0xa0be27e2 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0xa2474129 snd_pcm_set_ops +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 0xaa233352 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0xaf98d47d snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xb5f93334 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xb8cdb325 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xc415e212 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0xcea27000 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd3efd4e2 snd_pcm_hw_constraint_integer +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 0xe6990532 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xe780fbcd snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0xe7a25c99 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0xeff78fb0 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0xf35e86f3 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xf367fc53 snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf7641d2f snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-rawmidi 0x058bf136 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0a8c8ce3 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x15c18292 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1f9c3e38 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x24fd1e7a snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5b209ba2 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5e93298e snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x749a4d4b snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7c6bc995 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x83387279 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x92e1b5c7 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xac8f4faa snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xcf24ac2d snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd6c43b4c snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd940f852 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xdd5ea84f snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0xfc13e99c snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-timer 0x0a53719e snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x0ac503c0 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x1f6e3c2d snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x22d33263 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x33103eb5 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x34054bbd snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x44c35e14 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x57d2137a snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x5efed09a snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x67c71ce2 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x7011b392 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x93fe0b82 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0xdbbff8b1 snd_timer_continue +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x6a1c386d 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 0x6e443af3 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x799cba49 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x815d7ccc snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x8b850dfa snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xab1f4b06 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xb12754b9 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xb9c8fdd5 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xbf27816e snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xf93c1736 snd_opl3_new +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x204d8cec snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6b1c0189 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7970a214 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7ef43707 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x8eb8ba86 snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xafdcdd44 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc934c348 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc986da74 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xd2b681c3 snd_vx_free_firmware +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x14fbd13c snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x5369e8f9 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x9a944871 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xaf6657ff snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xc01baeab snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xfece0da6 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x1bee207f snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x26ddf43a snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x4fed77ad snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xcd262952 snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xd2e8efb2 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xd903aba1 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x198150e3 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x1feee385 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xc2b5e3a8 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xcc7fa0c6 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x01d0a2f8 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x8d9465dc snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x9e3619b9 snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x9f1d4b03 snd_tea575x_init +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x0f3cafe9 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x1719dd36 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x21a918ed snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x8188555a snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xdb534fc2 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-i2c 0x12d39b45 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x19ce2878 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x7d72c812 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x8b30e6d5 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xacf34e14 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xc65e74c5 snd_i2c_readbytes +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x026b4279 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x2782e3b3 snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x281a1ab4 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x317672b5 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x3aef15d1 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x5e144217 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x5f6517ad snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x90c6c945 snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x9eed2d45 snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xf467eca5 snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x26dc72f0 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x753c7c71 snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xfedcba89 snd_sb16dsp_configure +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x090a60bc snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x101e8276 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3ab4235b snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x553cb44a snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x61d9654a snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x67f71b98 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x73cb58f3 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8283c61e snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8c3e7f19 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9d312db8 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xafd0e7b5 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbd18bb3f snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc90d93c0 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd19c7960 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe9100f06 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xeee33920 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf533eb6d snd_ac97_write +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0xff339a04 hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x147c9117 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x2e8b70e8 snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x6708dbbf snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x701978bf snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x738a09d6 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x862800f9 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x9b7c07cb snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xaf0d7bf5 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xbb962860 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0x4388db89 snd_hda_parse_generic_codec +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x0beb64db snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x1e7a77f5 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x9b1430ff snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x000a7972 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00bebdbd oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0f5aea89 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1757c034 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x29133a19 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2932c38f oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2d4c4724 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x4eb7f934 oxygen_pci_suspend +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x750ff86a oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x883b68bb oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8a1b3f5d oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8bd8e1a9 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8c382ffd oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x94059208 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xae466288 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbb136b23 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbc815f63 oxygen_pci_resume +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc5e8d55b oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd66bd193 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xda1e8a2c oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xef66fe6d oxygen_default_i2s_mclk +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf4beda56 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x67cd4dfd snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x7e5cab82 snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x8ddf6418 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xbe1ce68c snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xc2a201fb snd_trident_write_voice_regs +EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0xd9da50c1 uda134x_dai +EXPORT_SYMBOL sound/soundcore 0xcc1c7a76 sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x124053b4 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x254c9d05 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x3277bbe3 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 0x8b48bd78 snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xce98263b snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xed45fb72 snd_emux_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x3e1d8338 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x774de715 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x8eae1680 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xd17e78c1 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf1229f84 __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf12cddb6 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf73167ac __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf99eb987 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 0x8d0f5037 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x1eaba916 dm_mem_cache_client_destroy +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x6729df71 dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x68551f3a dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x7a68a22d dm_mem_cache_free +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x8fd5e746 dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xebeb7e97 dm_mem_cache_grow +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x0018ce75 mpage_readpage +EXPORT_SYMBOL vmlinux 0x002c41d1 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x005fb340 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x00749adc read_cache_page +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00bd9d31 add_timer +EXPORT_SYMBOL vmlinux 0x00cdf70b tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x00df4366 eth_header +EXPORT_SYMBOL vmlinux 0x00e2129d blk_init_tags +EXPORT_SYMBOL vmlinux 0x00f22124 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x010a7ac2 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x0151fc63 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x016df7aa uart_update_timeout +EXPORT_SYMBOL vmlinux 0x0179882c pci_pme_capable +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01a9ea56 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x01b70ef5 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x01c2e5f0 check_disk_change +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x01efc712 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x024a3059 compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x02526aba find_inode_number +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x02856398 processors +EXPORT_SYMBOL vmlinux 0x0293f903 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a2ca75 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02aff2f4 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02df4371 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x02e9e80e pcim_iomap +EXPORT_SYMBOL vmlinux 0x02fa74a3 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x031372c6 scsi_get_command +EXPORT_SYMBOL vmlinux 0x03168f5d init_timer_key +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x0340d0e1 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0x0349dd29 ida_pre_get +EXPORT_SYMBOL vmlinux 0x03558229 kill_litter_super +EXPORT_SYMBOL vmlinux 0x035ec878 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x0361f320 ppp_unit_number +EXPORT_SYMBOL vmlinux 0x036455b2 elv_register_queue +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x038c4741 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x03af9d1d get_user_pages +EXPORT_SYMBOL vmlinux 0x03ba8c5f get_super +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03c5a8dc netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x03d8138e alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x03eaec7d kmem_cache_name +EXPORT_SYMBOL vmlinux 0x03ec22d2 request_key +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x03fd3191 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x045f6c8c ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04927208 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x0529cf06 security_path_rename +EXPORT_SYMBOL vmlinux 0x05489af1 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x05880875 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x0588d52c truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x05acb2d7 sock_no_accept +EXPORT_SYMBOL vmlinux 0x05c5f622 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x05cfd814 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0x05df1219 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x05ef7224 ip6_frag_match +EXPORT_SYMBOL vmlinux 0x05f3b042 fsnotify_obtain_group +EXPORT_SYMBOL vmlinux 0x06095f44 tty_shutdown +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x06181c61 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x062e90d2 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x0640a15b dquot_file_open +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x0692f80a alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x069b1999 blk_free_tags +EXPORT_SYMBOL vmlinux 0x06a485f2 __krealloc +EXPORT_SYMBOL vmlinux 0x06a97f7d generic_getxattr +EXPORT_SYMBOL vmlinux 0x06ab60c0 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x06c5f78d bdi_destroy +EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x06f9fdea agp_flush_chipset +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x07163374 module_put +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x075ac082 set_create_files_as +EXPORT_SYMBOL vmlinux 0x0762ac9c __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x076917df bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x0771e2ef wake_up_process +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong +EXPORT_SYMBOL vmlinux 0x07a1e435 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x07a3820f inet_stream_ops +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07ab7617 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x07b91439 inet_getname +EXPORT_SYMBOL vmlinux 0x07c629f7 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x07c771d7 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07dff636 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x0816b3a5 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x081b90b4 thaw_bdev +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x082ec031 __napi_schedule +EXPORT_SYMBOL vmlinux 0x083ccaa2 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x083fd8ed may_umount_tree +EXPORT_SYMBOL vmlinux 0x0844ffb0 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x08635eed __page_cache_alloc +EXPORT_SYMBOL vmlinux 0x089d43a9 migrate_page +EXPORT_SYMBOL vmlinux 0x08a7585f ppp_input +EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x08daa489 sg_miter_next +EXPORT_SYMBOL vmlinux 0x0906e833 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x09531058 release_sock +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098431ba acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09bf1e6e _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0x09c0a07f qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x0a13b3d9 sock_init_data +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a269cfd file_update_time +EXPORT_SYMBOL vmlinux 0x0a2a4441 mmc_detect_change +EXPORT_SYMBOL vmlinux 0x0a360f3a fb_set_var +EXPORT_SYMBOL vmlinux 0x0a5e9d56 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x0a66e6d8 fd_install +EXPORT_SYMBOL vmlinux 0x0a833df1 agp_generic_enable +EXPORT_SYMBOL vmlinux 0x0a9e18f1 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x0aaa5882 pid_task +EXPORT_SYMBOL vmlinux 0x0ac57ee1 path_is_under +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ad13693 f_setown +EXPORT_SYMBOL vmlinux 0x0aff3f5f phy_driver_register +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b1ca006 dma_pool_create +EXPORT_SYMBOL vmlinux 0x0b20fce1 inet_frag_find +EXPORT_SYMBOL vmlinux 0x0b2fd669 lock_may_read +EXPORT_SYMBOL vmlinux 0x0b4c4f88 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b759e98 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x0b97c5f2 ps2_command +EXPORT_SYMBOL vmlinux 0x0bbba1e8 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x0bbf5adb irq_stat +EXPORT_SYMBOL vmlinux 0x0bc0fe48 page_put_link +EXPORT_SYMBOL vmlinux 0x0bc1b1ce __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x0bce60a4 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x0bedef6b agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x0c098b07 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x0c0a3217 rfkill_unregister +EXPORT_SYMBOL vmlinux 0x0c21dbf6 sock_wake_async +EXPORT_SYMBOL vmlinux 0x0c449466 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x0c590d61 dev_uc_sync +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c9c2417 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cc0c3a6 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x0cc7f956 edac_mce_register +EXPORT_SYMBOL vmlinux 0x0ccd54ca inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x0ce1c95c dm_get_device +EXPORT_SYMBOL vmlinux 0x0ce70fe2 skb_pull +EXPORT_SYMBOL vmlinux 0x0cee84e7 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x0d004979 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x0d226dc4 dentry_open +EXPORT_SYMBOL vmlinux 0x0d29038e tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d499da6 lookup_bdev +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d652bb4 unregister_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x0d6ac019 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x0d7553a9 netdev_state_change +EXPORT_SYMBOL vmlinux 0x0d844d91 pci_select_bars +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0da36f2b netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x0dbc0dbb km_state_expired +EXPORT_SYMBOL vmlinux 0x0dd59b08 posix_test_lock +EXPORT_SYMBOL vmlinux 0x0e114096 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x0e174aa7 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x0e193b04 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x0e19c19b simple_release_fs +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e5e6719 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x0e6a4b19 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x0e75663a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x0ebebe14 groups_free +EXPORT_SYMBOL vmlinux 0x0ed8cc7b acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x0ef4098a blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x0efcd079 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x0f50b1e0 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x0f5763fa netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x0f788b52 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x0f88d9b7 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x0f98a8c0 xrlim_allow +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fc5e8eb radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x0fc671c3 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x0fcbeefd nf_log_register +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0fe7d5ef slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x0feaaa95 spi_dv_device +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x100f3913 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x103aa9dc unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x1076f1e5 compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0x1081b64f balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint +EXPORT_SYMBOL vmlinux 0x109b6a3b netpoll_poll +EXPORT_SYMBOL vmlinux 0x10c757f7 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x10d77be8 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11197e86 do_splice_to +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x1141b753 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x11499256 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x1159ca6b write_one_page +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x1190b1f2 seq_putc +EXPORT_SYMBOL vmlinux 0x11ab89a5 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x11e8fa98 kill_anon_super +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x12281cf0 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x12360b79 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x123939af pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x1241d36f tty_write_room +EXPORT_SYMBOL vmlinux 0x12445e76 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x124d6644 tty_port_open +EXPORT_SYMBOL vmlinux 0x124dff8e inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x125b113a i2c_master_recv +EXPORT_SYMBOL vmlinux 0x126d247d genphy_config_advert +EXPORT_SYMBOL vmlinux 0x12925afe agp_free_page_array +EXPORT_SYMBOL vmlinux 0x129de341 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x12a6c6da xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x12b9c64d mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x12c32c30 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x12f34b16 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x1316ed0b ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x1317e747 dm_io +EXPORT_SYMBOL vmlinux 0x133a1b5c generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x133cade5 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x136408a1 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x1368f807 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x1378e714 acpi_video_display_switch_support +EXPORT_SYMBOL vmlinux 0x1389d039 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x138c3bf9 nla_append +EXPORT_SYMBOL vmlinux 0x13a615f1 rtc_dev_update_irq_enable_emul +EXPORT_SYMBOL vmlinux 0x13ad1066 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x13b134b1 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x13b1b14b __getblk +EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0x13bb15e3 set_trace_device +EXPORT_SYMBOL vmlinux 0x13c31b91 elv_abort_queue +EXPORT_SYMBOL vmlinux 0x13e3e260 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x13f44710 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x142ce6f3 bio_integrity_split +EXPORT_SYMBOL vmlinux 0x142d62d8 simple_link +EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x1436917d down_write +EXPORT_SYMBOL vmlinux 0x143dbd47 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x147f2b26 bitmap_unplug +EXPORT_SYMBOL vmlinux 0x1487b3de dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x148f7e5d dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x149c533d skb_checksum +EXPORT_SYMBOL vmlinux 0x14ce0ed4 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x15211748 dw_spi_remove_host +EXPORT_SYMBOL vmlinux 0x154c5c0c dev_mc_init +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x156cb1e0 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x157d6124 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x15d1a330 journal_ack_err +EXPORT_SYMBOL vmlinux 0x15d8c8aa edac_mce_unregister +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x16480fea i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x16592094 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x16c3ff1f xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x16c7b082 generic_writepages +EXPORT_SYMBOL vmlinux 0x16d1b809 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x1701d00b xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x17175757 commit_creds +EXPORT_SYMBOL vmlinux 0x171d8b05 posix_acl_permission +EXPORT_SYMBOL vmlinux 0x17237e56 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x17501b3d dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x1763f015 ida_remove +EXPORT_SYMBOL vmlinux 0x17652cd9 __serio_register_port +EXPORT_SYMBOL vmlinux 0x176acb87 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x176e8775 generic_write_checks +EXPORT_SYMBOL vmlinux 0x1776ed63 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x179259f0 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x17c2aa99 kill_pgrp +EXPORT_SYMBOL vmlinux 0x17c85a66 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x180356f9 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x180963d5 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x18159031 get_sb_ns +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x18702662 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x187a19cb set_disk_ro +EXPORT_SYMBOL vmlinux 0x187a7107 compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x18820bc5 cont_write_begin +EXPORT_SYMBOL vmlinux 0x18917bec unbind_con_driver +EXPORT_SYMBOL vmlinux 0x18919792 user_path_at +EXPORT_SYMBOL vmlinux 0x189b6bac memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x18abbb1d mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x18ac49d6 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x18b72573 register_kmmio_probe +EXPORT_SYMBOL vmlinux 0x18bb177f bio_alloc +EXPORT_SYMBOL vmlinux 0x18edfe9b xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x18f50fcb inode_change_ok +EXPORT_SYMBOL vmlinux 0x18f9f806 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x1901b4ae dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x1917bf94 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x193b0785 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x194813ed nf_reinject +EXPORT_SYMBOL vmlinux 0x194d60eb serio_close +EXPORT_SYMBOL vmlinux 0x198da8a5 sock_create +EXPORT_SYMBOL vmlinux 0x19936e33 mmc_host_enable +EXPORT_SYMBOL vmlinux 0x19997840 dev_load +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x199fd4eb rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x19bb451e xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x19eb72ef pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x19f2e299 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x1a04d922 dm_put_device +EXPORT_SYMBOL vmlinux 0x1a134e04 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x1a36a829 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x1a37f35a phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a603724 unregister_key_type +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a657872 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x1a6a40ec con_is_bound +EXPORT_SYMBOL vmlinux 0x1a8a845e idle_nomwait +EXPORT_SYMBOL vmlinux 0x1a8c5ef1 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x1a925a66 down +EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in +EXPORT_SYMBOL vmlinux 0x1aa21b9b pci_restore_state +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1acf2c55 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x1ad6018c tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x1afcc7e8 mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b0f5a02 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x1b5ab808 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b6c897b prepare_creds +EXPORT_SYMBOL vmlinux 0x1b88b3ce bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bcf6757 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x1c16e9fe gen_new_estimator +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c1dc771 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x1c269091 security_file_mmap +EXPORT_SYMBOL vmlinux 0x1c6b60ec tty_register_device +EXPORT_SYMBOL vmlinux 0x1c845747 do_splice_from +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cd607c4 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x1cf897e7 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x1d000e48 ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x1d02d959 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x1d1ef220 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d30e2f7 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x1d437e22 bio_put +EXPORT_SYMBOL vmlinux 0x1d5febfe ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x1d7c1e35 vm_map_ram +EXPORT_SYMBOL vmlinux 0x1d8f2599 elevator_exit +EXPORT_SYMBOL vmlinux 0x1d949324 sock_update_classid +EXPORT_SYMBOL vmlinux 0x1d959e78 compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0x1d9b8784 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x1db7706b __copy_user_nocache +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd14d80 sget +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1ddb5cff vfs_fsync +EXPORT_SYMBOL vmlinux 0x1dea505e ps2_begin_command +EXPORT_SYMBOL vmlinux 0x1e036c98 acpi_set_gpe +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e38b296 md_error +EXPORT_SYMBOL vmlinux 0x1e3d9b11 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x1e5ae461 free_buffer_head +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e6d42c2 write_inode_now +EXPORT_SYMBOL vmlinux 0x1e7875d8 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x1e7ce996 noop_qdisc +EXPORT_SYMBOL vmlinux 0x1e8eacc1 inet_shutdown +EXPORT_SYMBOL vmlinux 0x1e91f159 tty_name +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ec4a3c2 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x1ed4169e rtnl_notify +EXPORT_SYMBOL vmlinux 0x1ed8f95f deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1eff590c inet_add_protocol +EXPORT_SYMBOL vmlinux 0x1f0d5a9f kthread_stop +EXPORT_SYMBOL vmlinux 0x1f2d63c5 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x1f3dd09b cap_file_mmap +EXPORT_SYMBOL vmlinux 0x1f575a24 journal_get_write_access +EXPORT_SYMBOL vmlinux 0x1f6b387f sock_i_ino +EXPORT_SYMBOL vmlinux 0x1f8c5b93 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x1fbf3f12 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fddf8d2 tty_check_change +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 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x2075e308 blk_get_request +EXPORT_SYMBOL vmlinux 0x207c0024 blkdev_get +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x20abc15b acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0x20ade030 dquot_initialize +EXPORT_SYMBOL vmlinux 0x20c9300e scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x20ca6856 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x20cbd1e2 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x20cc1f11 audit_log_end +EXPORT_SYMBOL vmlinux 0x20dee933 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum +EXPORT_SYMBOL vmlinux 0x20ee959e acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0x2127ea6e udp_poll +EXPORT_SYMBOL vmlinux 0x2128f538 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x2149695b pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x2167174e prepare_binprm +EXPORT_SYMBOL vmlinux 0x216c2ffc find_get_page +EXPORT_SYMBOL vmlinux 0x21c35763 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21fa79ad spi_attach_transport +EXPORT_SYMBOL vmlinux 0x21fdb29b mpage_writepage +EXPORT_SYMBOL vmlinux 0x220bd2b7 pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x22358e27 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x2247d3e9 agp_copy_info +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x22780182 input_open_device +EXPORT_SYMBOL vmlinux 0x22876482 udp_prot +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x229bb4e4 cdev_index +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22e109f6 generic_fillattr +EXPORT_SYMBOL vmlinux 0x22f01c8e give_up_console +EXPORT_SYMBOL vmlinux 0x22fae37b bio_kmalloc +EXPORT_SYMBOL vmlinux 0x22fde63f start_tty +EXPORT_SYMBOL vmlinux 0x23078b35 x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul +EXPORT_SYMBOL vmlinux 0x234509f3 strncat +EXPORT_SYMBOL vmlinux 0x234f85f4 abort_creds +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x23678e23 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x236c8c64 memcpy +EXPORT_SYMBOL vmlinux 0x2384757b dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x23a3046a xfrm_register_type +EXPORT_SYMBOL vmlinux 0x23b0d517 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x23b99e92 node_states +EXPORT_SYMBOL vmlinux 0x23c59b95 bdget_disk +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23d0fed8 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x23db70de jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x23e76900 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x23ff2f7e file_fsync +EXPORT_SYMBOL vmlinux 0x24372689 fsnotify_destroy_mark_by_entry +EXPORT_SYMBOL vmlinux 0x243b7f3a arp_xmit +EXPORT_SYMBOL vmlinux 0x24424b94 request_firmware +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2449c81f inet_release +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x24847ba3 set_pages_array_uc +EXPORT_SYMBOL vmlinux 0x24899e89 blk_end_request_all +EXPORT_SYMBOL vmlinux 0x24ae60c1 key_task_permission +EXPORT_SYMBOL vmlinux 0x24ddd89a __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x24fa29a2 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x2511771d x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x251bd238 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x2534cd6c mmc_request_done +EXPORT_SYMBOL vmlinux 0x254e157c pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x258dd859 d_alloc +EXPORT_SYMBOL vmlinux 0x25ec1b28 strlen +EXPORT_SYMBOL vmlinux 0x2614c72c md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x261ad215 proc_mkdir +EXPORT_SYMBOL vmlinux 0x2637d513 __seq_open_private +EXPORT_SYMBOL vmlinux 0x2643539a poll_initwait +EXPORT_SYMBOL vmlinux 0x26467b22 iget_failed +EXPORT_SYMBOL vmlinux 0x266699ae remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x267b6a15 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x267d2128 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x268e6ca3 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x26b1d492 simple_empty +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 0x272afc9f journal_start +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x273453fa single_release +EXPORT_SYMBOL vmlinux 0x2738d876 __destroy_inode +EXPORT_SYMBOL vmlinux 0x274e1e92 register_nls +EXPORT_SYMBOL vmlinux 0x276daaad dev_uc_add +EXPORT_SYMBOL vmlinux 0x276daec0 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x27758ae9 bio_copy_user +EXPORT_SYMBOL vmlinux 0x2775b018 phy_device_register +EXPORT_SYMBOL vmlinux 0x277b90ff rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x277f508d fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x279f386a submit_bio +EXPORT_SYMBOL vmlinux 0x27b49439 skb_copy_datagram_iovec +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 0x27f3f92d cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x280da6d4 qdisc_list_del +EXPORT_SYMBOL vmlinux 0x281dc9e6 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x281eef90 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x282f76f8 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll +EXPORT_SYMBOL vmlinux 0x285bdb8c llc_set_station_handler +EXPORT_SYMBOL vmlinux 0x286ad03f kill_pid +EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28ac4c54 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x28dc698b simple_getattr +EXPORT_SYMBOL vmlinux 0x2911ea4c kobject_add +EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x29245595 lro_flush_all +EXPORT_SYMBOL vmlinux 0x292b2d45 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x2938a5ee scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x29518254 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x2959d1a1 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x2969ac51 send_sig_info +EXPORT_SYMBOL vmlinux 0x29745fe2 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x2995c3c8 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x299e0c22 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29c2981c blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x2a0922de blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x2a093f35 names_cachep +EXPORT_SYMBOL vmlinux 0x2a2285ec _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x2a272d27 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a5dfe62 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x2a78ba02 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x2a96d432 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x2aa09126 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0x2aa23854 bio_unmap_user +EXPORT_SYMBOL vmlinux 0x2aaf24bf blk_put_request +EXPORT_SYMBOL vmlinux 0x2ac316c6 dm_table_get +EXPORT_SYMBOL vmlinux 0x2ac80eb2 get_gendisk +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b143777 rfkill_register +EXPORT_SYMBOL vmlinux 0x2b2e8c0c pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x2b2f1657 elv_rb_add +EXPORT_SYMBOL vmlinux 0x2b4b84e4 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x2b6a3bf6 acpi_processor_notify_smm +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 0x2bcd3aa5 block_sync_page +EXPORT_SYMBOL vmlinux 0x2bd3ba31 key_unlink +EXPORT_SYMBOL vmlinux 0x2bef4fdb dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c020b64 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x2c0b553e install_exec_creds +EXPORT_SYMBOL vmlinux 0x2c2601b1 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x2c4031bb dev_driver_string +EXPORT_SYMBOL vmlinux 0x2c66de69 compat_ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x2c6e152f __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x2c86b261 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x2cc03846 agp_backend_release +EXPORT_SYMBOL vmlinux 0x2cc92161 devm_free_irq +EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d2fcb97 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x2d377091 register_netdev +EXPORT_SYMBOL vmlinux 0x2d3b575f panic_notifier_list +EXPORT_SYMBOL vmlinux 0x2d3d0190 journal_get_create_access +EXPORT_SYMBOL vmlinux 0x2d3df969 padata_start +EXPORT_SYMBOL vmlinux 0x2d4a6057 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x2d5528c9 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d984772 skb_split +EXPORT_SYMBOL vmlinux 0x2dc67d9d __scm_send +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def3198 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2dfc0e41 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x2e20da88 journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x2e2a0a92 mmc_card_awake +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e35c848 kthread_bind +EXPORT_SYMBOL vmlinux 0x2e4042b1 force_sig +EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x2e4bc1fa agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x2e92999d dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x2eafbf01 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x2eb88062 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x2ebb45fb generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x2ed798fe inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x2eedd4e0 agp_free_memory +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f3e36bb security_path_unlink +EXPORT_SYMBOL vmlinux 0x2f7dca09 generic_setxattr +EXPORT_SYMBOL vmlinux 0x2f7ecdce abx500_register_ops +EXPORT_SYMBOL vmlinux 0x2f86d6f8 eth_header_parse +EXPORT_SYMBOL vmlinux 0x2fa4574d unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x2fa5a500 memcmp +EXPORT_SYMBOL vmlinux 0x2fc432e6 kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x2fddb1d2 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0x2fe615f3 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x2fefb5dd qdisc_destroy +EXPORT_SYMBOL vmlinux 0x2ff063b5 acpi_get_name +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x3023c0a6 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x302dc217 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x303c5ac6 genphy_resume +EXPORT_SYMBOL vmlinux 0x3042e309 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x3088e427 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x309a94a2 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x30c75199 downgrade_write +EXPORT_SYMBOL vmlinux 0x30cd4802 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x30e35365 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x311003cf pv_cpu_ops +EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x311f9780 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x31391026 dm_exception_store_create +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147150b save_mount_options +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3157c147 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0x316f32b4 blk_rq_init +EXPORT_SYMBOL vmlinux 0x3196f8e6 udplite_prot +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31c9c548 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x31ce0f8e km_query +EXPORT_SYMBOL vmlinux 0x31d4e183 sk_alloc +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31ebadcd in_group_p +EXPORT_SYMBOL vmlinux 0x31ec560e groups_alloc +EXPORT_SYMBOL vmlinux 0x31ecbc39 register_qdisc +EXPORT_SYMBOL vmlinux 0x320476a8 register_con_driver +EXPORT_SYMBOL vmlinux 0x322557a9 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x32450ef3 thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0x32530c06 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc +EXPORT_SYMBOL vmlinux 0x327020d7 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x327dfef8 idr_replace +EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint +EXPORT_SYMBOL vmlinux 0x329ab1dc read_cache_page_async +EXPORT_SYMBOL vmlinux 0x329ff4cf put_disk +EXPORT_SYMBOL vmlinux 0x32a4efa8 dput +EXPORT_SYMBOL vmlinux 0x32debb16 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x32df25a1 security_file_permission +EXPORT_SYMBOL vmlinux 0x32e2ec35 bio_init +EXPORT_SYMBOL vmlinux 0x32e7b40c rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x32f3a337 dev_addr_init +EXPORT_SYMBOL vmlinux 0x32f5fb1c kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x32ffdbb4 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x332edbb0 agp_create_memory +EXPORT_SYMBOL vmlinux 0x332f33a4 journal_check_available_features +EXPORT_SYMBOL vmlinux 0x33433784 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x338bbb12 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x3398bb9d page_follow_link_light +EXPORT_SYMBOL vmlinux 0x339a582c udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33c350dc fifo_set_limit +EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x3411142f tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x3412a86b vfs_follow_link +EXPORT_SYMBOL vmlinux 0x341cbed2 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x3434048f pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x34410a29 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long +EXPORT_SYMBOL vmlinux 0x345d7ff1 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x3469cf42 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x347b64be xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34a71c81 pci_get_slot +EXPORT_SYMBOL vmlinux 0x34ae4949 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x34b58c3f block_write_begin +EXPORT_SYMBOL vmlinux 0x34f2b5a2 filemap_flush +EXPORT_SYMBOL vmlinux 0x3527066a bio_map_user +EXPORT_SYMBOL vmlinux 0x352f95f8 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x353ca2b3 acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x35449ba7 tty_vhangup +EXPORT_SYMBOL vmlinux 0x35590c04 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x3582ed17 vfs_stat +EXPORT_SYMBOL vmlinux 0x35853252 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x35863ae3 skb_recycle_check +EXPORT_SYMBOL vmlinux 0x3587a483 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x35b0650f vsnprintf +EXPORT_SYMBOL vmlinux 0x35b9bb19 cont_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35c80dd8 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x35d47ec1 close_bdev_exclusive +EXPORT_SYMBOL vmlinux 0x35df371d neigh_create +EXPORT_SYMBOL vmlinux 0x35df7cb6 netif_device_detach +EXPORT_SYMBOL vmlinux 0x35e42a10 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x3657ff32 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x3661287b drop_super +EXPORT_SYMBOL vmlinux 0x36729594 flush_signals +EXPORT_SYMBOL vmlinux 0x3672ecbb iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x36914844 take_over_console +EXPORT_SYMBOL vmlinux 0x36a70062 phy_enable_interrupts +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36ef8514 mmc_remove_host +EXPORT_SYMBOL vmlinux 0x36f02b66 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x3701a196 csum_partial_copy_to_user +EXPORT_SYMBOL vmlinux 0x372db1f6 seq_lseek +EXPORT_SYMBOL vmlinux 0x373b4415 sk_stream_error +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x375465a7 radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x376260d3 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37e4275e x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0x37efa2f5 generic_show_options +EXPORT_SYMBOL vmlinux 0x380d117a serio_open +EXPORT_SYMBOL vmlinux 0x380f3db1 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x3823e396 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x38296140 phy_start +EXPORT_SYMBOL vmlinux 0x383aeafc page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x3850f697 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x386b73c4 pci_get_class +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38af4d69 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38eb6bd3 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x38f33bed dump_fpu +EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x38f5e553 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x39060d05 pnp_device_detach +EXPORT_SYMBOL vmlinux 0x391738e2 neigh_for_each +EXPORT_SYMBOL vmlinux 0x391a9b61 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x3928efe9 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39842332 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x3998f8b1 phy_attach +EXPORT_SYMBOL vmlinux 0x399e923b blk_make_request +EXPORT_SYMBOL vmlinux 0x39a181b7 d_lookup +EXPORT_SYMBOL vmlinux 0x39b7b1a4 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x39be8456 scsi_device_put +EXPORT_SYMBOL vmlinux 0x39df09fd max8925_reg_write +EXPORT_SYMBOL vmlinux 0x39f7fe6d dm_unregister_target +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a7173ac complete_all +EXPORT_SYMBOL vmlinux 0x3a757e1d skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3ab120c0 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x3ac68158 mmc_resume_host +EXPORT_SYMBOL vmlinux 0x3af9cae9 idr_remove +EXPORT_SYMBOL vmlinux 0x3b09e7b9 phy_disable_interrupts +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b5227b8 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x3b5f1a76 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x3b84f3cf phy_device_free +EXPORT_SYMBOL vmlinux 0x3b8c0841 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x3ba8bd17 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x3bb3c3fb inet_frag_kill +EXPORT_SYMBOL vmlinux 0x3bbd4ace pnp_device_attach +EXPORT_SYMBOL vmlinux 0x3bcfdd46 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bda7750 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c31ec58 neigh_lookup +EXPORT_SYMBOL vmlinux 0x3c493455 __lru_cache_add +EXPORT_SYMBOL vmlinux 0x3c5945f4 deny_write_access +EXPORT_SYMBOL vmlinux 0x3c5d4a48 napi_get_frags +EXPORT_SYMBOL vmlinux 0x3c5d9475 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x3c7332a5 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3c9f6a89 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x3cd09917 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d0bc375 fput +EXPORT_SYMBOL vmlinux 0x3d2aafd1 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x3d31e111 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x3d3668eb bioset_free +EXPORT_SYMBOL vmlinux 0x3d39172b jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x3d3ebd14 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x3d431b74 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d8728bb memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x3d8766e8 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x3d90b80d bd_claim +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 0x3dfbad6a rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e0410b4 noop_fsync +EXPORT_SYMBOL vmlinux 0x3e0d9bd7 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x3e276250 module_layout +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e395368 __invalidate_device +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e60e984 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x3e63e99b set_device_ro +EXPORT_SYMBOL vmlinux 0x3e647d71 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x3e77c856 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3e9f56ec journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x3eb70c9f dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x3eba3f91 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x3ebd8251 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x3ec948bc dmam_pool_create +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3edad3a7 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x3eed0a3f bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x3eed6ef7 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x3eedef66 __scm_destroy +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f25b075 compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x3f440f01 vmap +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f622645 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x3f667f5f unlock_buffer +EXPORT_SYMBOL vmlinux 0x3f76c806 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x3f80add7 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x3f80f1f6 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x3f83d288 scsi_print_command +EXPORT_SYMBOL vmlinux 0x3f9cce13 __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0x3fa913da strspn +EXPORT_SYMBOL vmlinux 0x3fbfdec7 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x40143080 unregister_con_driver +EXPORT_SYMBOL vmlinux 0x402b45f8 input_register_handle +EXPORT_SYMBOL vmlinux 0x40467d13 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +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 0x40a3a6d0 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x40bd12b9 scsi_unregister +EXPORT_SYMBOL vmlinux 0x40c74e3d serio_interrupt +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40eee532 neigh_destroy +EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring +EXPORT_SYMBOL vmlinux 0x41055acc serio_unregister_port +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x4124dfc2 key_put +EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp +EXPORT_SYMBOL vmlinux 0x413e1f82 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x41408088 kobject_put +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414eadc0 qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x4193d79b skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x419f1801 skb_unlink +EXPORT_SYMBOL vmlinux 0x41cc4e8b tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x41f1b43b i8253_lock +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 0x4280ee6d inode_permission +EXPORT_SYMBOL vmlinux 0x428a54c8 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a4bdf2 in_egroup_p +EXPORT_SYMBOL vmlinux 0x42b687c7 input_set_keycode_big +EXPORT_SYMBOL vmlinux 0x42b970d9 __nla_reserve +EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache +EXPORT_SYMBOL vmlinux 0x42de7d92 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x42e9941e md_unregister_thread +EXPORT_SYMBOL vmlinux 0x42ef4122 kthread_create +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x430fe40f generic_write_end +EXPORT_SYMBOL vmlinux 0x431dc473 tty_port_free_xmit_buf +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 0x435bed95 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x436ee7c2 slow_work_unregister_user +EXPORT_SYMBOL vmlinux 0x43738b48 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x43786753 may_umount +EXPORT_SYMBOL vmlinux 0x437cd5f5 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x4380b380 vfs_write +EXPORT_SYMBOL vmlinux 0x4397fd82 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x43a20214 kmem_cache_alloc_node_notrace +EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get +EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg +EXPORT_SYMBOL vmlinux 0x43fc1331 __find_get_block +EXPORT_SYMBOL vmlinux 0x4426086d tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x4486215c vfs_unlink +EXPORT_SYMBOL vmlinux 0x44981840 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x44a81d5f acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44c5819a request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x44dff8a6 __register_binfmt +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x452be5f3 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x454edf2a tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x4557bf86 dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x455bf8c1 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x45653a6c skb_put +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 0x45a82412 dquot_alloc +EXPORT_SYMBOL vmlinux 0x45ccdf37 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x46197a44 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x4633a297 compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0x46391aaa blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x467db3f0 filp_open +EXPORT_SYMBOL vmlinux 0x468f007e phy_device_create +EXPORT_SYMBOL vmlinux 0x4693fd29 blk_run_queue +EXPORT_SYMBOL vmlinux 0x46aeacee dev_addr_flush +EXPORT_SYMBOL vmlinux 0x46c47fb6 __node_distance +EXPORT_SYMBOL vmlinux 0x471246db bdi_init +EXPORT_SYMBOL vmlinux 0x4717d1b8 dma_find_channel +EXPORT_SYMBOL vmlinux 0x473facae dm_exception_store_type_unregister +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 0x47b67625 acpi_is_video_device +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47c41333 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x47c7a241 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x47c7b0d2 cpu_number +EXPORT_SYMBOL vmlinux 0x47dc69a8 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x4824691e put_tty_driver +EXPORT_SYMBOL vmlinux 0x482c9b88 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x4857372c filemap_fault +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x485c5c9a mmc_host_disable +EXPORT_SYMBOL vmlinux 0x48654cdb free_task +EXPORT_SYMBOL vmlinux 0x4886ebc2 spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0x488b815b generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x489b4e86 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x48a75075 netdev_features_change +EXPORT_SYMBOL vmlinux 0x48b1abc8 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x48d84d5a set_bdi_congested +EXPORT_SYMBOL vmlinux 0x48dd7716 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x49206a20 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x493578ac scsi_dma_map +EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x494e3393 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x49521b64 tcp_child_process +EXPORT_SYMBOL vmlinux 0x49551bab dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x4956bbed eth_type_trans +EXPORT_SYMBOL vmlinux 0x495c5339 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x4965952b security_path_chmod +EXPORT_SYMBOL vmlinux 0x497fc764 compat_mc_getsockopt +EXPORT_SYMBOL vmlinux 0x49966e11 tcp4_gro_receive +EXPORT_SYMBOL vmlinux 0x499afae5 bdi_register_dev +EXPORT_SYMBOL vmlinux 0x49acdb1f dev_mc_flush +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49be4641 tty_throttle +EXPORT_SYMBOL vmlinux 0x49d58b96 single_open +EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string +EXPORT_SYMBOL vmlinux 0x49e632e0 replace_mount_options +EXPORT_SYMBOL vmlinux 0x49f15dd2 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x49fabde3 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x4a010ae9 __rta_fill +EXPORT_SYMBOL vmlinux 0x4a0f4630 locks_init_lock +EXPORT_SYMBOL vmlinux 0x4a155071 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a45559f generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x4a4940b9 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x4a5293e7 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x4a928944 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4af093fe md_check_recovery +EXPORT_SYMBOL vmlinux 0x4af9acb9 arp_tbl +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b1d84c0 posix_lock_file +EXPORT_SYMBOL vmlinux 0x4b1fc711 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x4b2ff1db thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0x4b35f644 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x4b4240d4 console_stop +EXPORT_SYMBOL vmlinux 0x4b8184da ether_setup +EXPORT_SYMBOL vmlinux 0x4b8ce898 block_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x4b9a5ab9 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c27680d inet6_getname +EXPORT_SYMBOL vmlinux 0x4c3478b4 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x4c3fdfa6 clear_inode +EXPORT_SYMBOL vmlinux 0x4c4bf7a1 block_read_full_page +EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp +EXPORT_SYMBOL vmlinux 0x4c4fef19 kernel_stack +EXPORT_SYMBOL vmlinux 0x4c759ef4 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x4cb45afe secpath_dup +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cd269a0 mutex_unlock +EXPORT_SYMBOL vmlinux 0x4d03a020 inode_init_owner +EXPORT_SYMBOL vmlinux 0x4d11778a del_gendisk +EXPORT_SYMBOL vmlinux 0x4d37a73d scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x4d483492 padata_free +EXPORT_SYMBOL vmlinux 0x4d66d101 kill_fasync +EXPORT_SYMBOL vmlinux 0x4d85e29e poll_freewait +EXPORT_SYMBOL vmlinux 0x4d899590 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x4da144d4 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x4db7ee51 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x4dba2aac agp_bind_memory +EXPORT_SYMBOL vmlinux 0x4dc364cf mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dda726b match_strlcpy +EXPORT_SYMBOL vmlinux 0x4de3d62a xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e040e80 unlock_page +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e10d789 swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x4e162054 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child +EXPORT_SYMBOL vmlinux 0x4e27339a bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e367ab9 init_special_inode +EXPORT_SYMBOL vmlinux 0x4e60ec20 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4ed8e3a5 mpage_readpages +EXPORT_SYMBOL vmlinux 0x4eda0374 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4ee3d60a freeze_super +EXPORT_SYMBOL vmlinux 0x4ee427ee pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f4b2953 send_sig +EXPORT_SYMBOL vmlinux 0x4f5438c1 idle_halt +EXPORT_SYMBOL vmlinux 0x4f5839ff vfs_statfs +EXPORT_SYMBOL vmlinux 0x4f6708eb scsi_device_resume +EXPORT_SYMBOL vmlinux 0x4f6b400b _copy_from_user +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4f7a6197 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x4f8b5ddb _copy_to_user +EXPORT_SYMBOL vmlinux 0x4f9dc1f5 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x4fb59ecb make_bad_inode +EXPORT_SYMBOL vmlinux 0x4fc667a6 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x4fdd9e8b request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fefb8da vga_get +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x4ffdc42b journal_set_features +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x506e6f2f _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x5079f3fa bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x508d7920 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x50903bf2 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x509c799d max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x50a45cba blk_fetch_request +EXPORT_SYMBOL vmlinux 0x50a94498 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x50b36856 ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0x50ba81d7 netif_napi_add +EXPORT_SYMBOL vmlinux 0x50cf1581 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x50d391e7 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x50f14af1 uart_resume_port +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x512677ea read_cache_pages +EXPORT_SYMBOL vmlinux 0x513d4d1e read_dev_sector +EXPORT_SYMBOL vmlinux 0x5162adf6 skb_store_bits +EXPORT_SYMBOL vmlinux 0x51852ab3 ht_create_irq +EXPORT_SYMBOL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL vmlinux 0x51a16472 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x51b50f82 bio_free +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51fa2f07 journal_release_buffer +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x521eb71e dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x52361824 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x52373b22 bit_waitqueue +EXPORT_SYMBOL vmlinux 0x5244fa42 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x5294aaeb otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52e95b16 sg_miter_start +EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort +EXPORT_SYMBOL vmlinux 0x52f420cd mdiobus_write +EXPORT_SYMBOL vmlinux 0x52f6ec59 security_inode_readlink +EXPORT_SYMBOL vmlinux 0x53055655 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x53185b8a sock_map_fd +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x5329763a uart_register_driver +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x533e0ec0 kstat +EXPORT_SYMBOL vmlinux 0x53469e1a __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x538883a8 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x53b79554 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53cd80ae pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x53eeab4c simple_statfs +EXPORT_SYMBOL vmlinux 0x53f6c008 __inet6_hash +EXPORT_SYMBOL vmlinux 0x5404ef18 __bforget +EXPORT_SYMBOL vmlinux 0x5410bb71 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x542ce6b7 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x5446b795 llc_sap_open +EXPORT_SYMBOL vmlinux 0x5454aa73 d_alloc_name +EXPORT_SYMBOL vmlinux 0x54568b75 register_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x5456eecf i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x5473005b alloc_fddidev +EXPORT_SYMBOL vmlinux 0x547831ab i8042_install_filter +EXPORT_SYMBOL vmlinux 0x548100b4 register_8022_client +EXPORT_SYMBOL vmlinux 0x54a1eaff blk_insert_request +EXPORT_SYMBOL vmlinux 0x54bcdc00 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54fd9a56 inet_ioctl +EXPORT_SYMBOL vmlinux 0x550bdc74 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x5536e6b6 md_register_thread +EXPORT_SYMBOL vmlinux 0x554fface dm_io_client_resize +EXPORT_SYMBOL vmlinux 0x55524fd8 dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x555fe515 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x5562454b cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x556bea44 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x557bd901 key_negate_and_link +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x55a09c1c filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x55fa92f0 agp_put_bridge +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 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x563f8f9d inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x5658179e idr_get_new +EXPORT_SYMBOL vmlinux 0x5678efd1 tcf_em_register +EXPORT_SYMBOL vmlinux 0x567a49da set_pages_array_wb +EXPORT_SYMBOL vmlinux 0x56a1b2ac rt6_lookup +EXPORT_SYMBOL vmlinux 0x56c3e893 hippi_mac_addr +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56df5a59 mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0x56f494e0 smp_call_function +EXPORT_SYMBOL vmlinux 0x57270223 delayed_slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x572fd79e pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x5741a25b set_pages_nx +EXPORT_SYMBOL vmlinux 0x5749d15c skb_tx_hash +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x576b4264 path_lookup +EXPORT_SYMBOL vmlinux 0x576ba11a sleep_on +EXPORT_SYMBOL vmlinux 0x576f8c6f nf_ct_attach +EXPORT_SYMBOL vmlinux 0x5776433f ip_dev_find +EXPORT_SYMBOL vmlinux 0x577a0906 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x577f9c8e __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x578d18d1 remove_inode_hash +EXPORT_SYMBOL vmlinux 0x5795a4e9 tty_devnum +EXPORT_SYMBOL vmlinux 0x579b0905 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x57b09822 up +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57c4d5bc cdev_init +EXPORT_SYMBOL vmlinux 0x57d8f02e cdev_add +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57e19707 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x57f644a7 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x57f8c7c4 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x582c1ef0 skb_pad +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x5863df20 d_genocide +EXPORT_SYMBOL vmlinux 0x587c70d8 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x588d6007 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x5891bd49 __dst_free +EXPORT_SYMBOL vmlinux 0x5894ace1 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x58a730c3 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x58c30abe sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x58c41bc5 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x58ce594b I_BDEV +EXPORT_SYMBOL vmlinux 0x58d5fb0d pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x58f7d6ba thaw_process +EXPORT_SYMBOL vmlinux 0x58fee38d dev_get_stats +EXPORT_SYMBOL vmlinux 0x591b6d2e kfree_skb +EXPORT_SYMBOL vmlinux 0x59247839 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x592b9cd7 down_read +EXPORT_SYMBOL vmlinux 0x593290e3 seq_escape +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x5971a850 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x59a03078 skb_set_dev +EXPORT_SYMBOL vmlinux 0x59b3cb6b vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0x59b676dc blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59d544ba inet_accept +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x5a2bda12 udplite_table +EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a48bca1 alloc_disk +EXPORT_SYMBOL vmlinux 0x5a54561d blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x5a5cac55 bio_add_page +EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x5a73cc36 alloc_trdev +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5aad29d2 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5ad12840 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x5ad6473b neigh_seq_start +EXPORT_SYMBOL vmlinux 0x5af55f28 security_path_chown +EXPORT_SYMBOL vmlinux 0x5afb8f20 input_unregister_device +EXPORT_SYMBOL vmlinux 0x5b19a9ca skb_clone +EXPORT_SYMBOL vmlinux 0x5b2d6107 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x5b465f4c ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x5b4c6297 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x5b4f911f try_to_release_page +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b5794e3 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x5b7a81fd clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x5b81e2c6 i2c_use_client +EXPORT_SYMBOL vmlinux 0x5b8b4aaf register_sysrq_key +EXPORT_SYMBOL vmlinux 0x5b916d7c vfs_create +EXPORT_SYMBOL vmlinux 0x5bb45a03 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x5bb92029 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x5bd922fa pci_get_subsys +EXPORT_SYMBOL vmlinux 0x5c38458c scsi_target_resume +EXPORT_SYMBOL vmlinux 0x5c46041e elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x5c468d5b xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x5c4f4b38 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x5c64f768 dev_txq_stats_fold +EXPORT_SYMBOL vmlinux 0x5c9a1629 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x5ca02231 acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5cd56e5e mmc_card_sleep +EXPORT_SYMBOL vmlinux 0x5cf39ab3 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x5d036879 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x5d04aa88 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x5d113035 vm_stat +EXPORT_SYMBOL vmlinux 0x5d272eee tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x5d2cc66d lock_sock_fast +EXPORT_SYMBOL vmlinux 0x5d32759f phy_stop +EXPORT_SYMBOL vmlinux 0x5d6ad92b dm_dirty_log_create +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x5d8bb259 simple_rename +EXPORT_SYMBOL vmlinux 0x5da6114d wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x5dab6585 dev_base_lock +EXPORT_SYMBOL vmlinux 0x5dc43223 idr_pre_get +EXPORT_SYMBOL vmlinux 0x5dcdc8f2 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x5dce4859 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x5ddfa094 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x5e09ca75 complete +EXPORT_SYMBOL vmlinux 0x5e4bf82d skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x5e50d5d5 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x5e6da3f5 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x5e8fd681 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5ea7abae napi_frags_skb +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5ed05237 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x5ed0f41d mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5ee63e47 kernel_listen +EXPORT_SYMBOL vmlinux 0x5ef592c4 rfkill_destroy +EXPORT_SYMBOL vmlinux 0x5f21ba5b _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x5f26f84f pci_release_region +EXPORT_SYMBOL vmlinux 0x5f6621ef tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5facfa17 __blk_end_request +EXPORT_SYMBOL vmlinux 0x5faffa9b cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x5fc2f3d0 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x5fd2298e strnstr +EXPORT_SYMBOL vmlinux 0x5fd8e8ad vm_insert_page +EXPORT_SYMBOL vmlinux 0x5ff0924d mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601a17a5 dqstats +EXPORT_SYMBOL vmlinux 0x602cb934 genphy_update_link +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x603f0f5e hippi_type_trans +EXPORT_SYMBOL vmlinux 0x604f9aa0 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x605c8bde radix_tree_delete +EXPORT_SYMBOL vmlinux 0x606936f5 datagram_poll +EXPORT_SYMBOL vmlinux 0x60720bed udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x60795836 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x607f3a33 journal_revoke +EXPORT_SYMBOL vmlinux 0x6080c015 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x6088eaf0 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60c002ff bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x60ee4d54 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x60f0cd60 key_link +EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n +EXPORT_SYMBOL vmlinux 0x610fb61e journal_start_commit +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x61240ece dev_alloc_name +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x61445330 seq_read +EXPORT_SYMBOL vmlinux 0x615a3dcb mod_timer +EXPORT_SYMBOL vmlinux 0x618911fc numa_node +EXPORT_SYMBOL vmlinux 0x618c93a0 ip_route_input_common +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61c0c82f __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x61c59a06 blk_peek_request +EXPORT_SYMBOL vmlinux 0x61e28901 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x61f491a9 vfs_symlink +EXPORT_SYMBOL vmlinux 0x61fceafb default_llseek +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x6208fd91 kill_block_super +EXPORT_SYMBOL vmlinux 0x6223cafb _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x6230437d xfrm_register_km +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x62649d9e dst_discard +EXPORT_SYMBOL vmlinux 0x6268573f __blk_run_queue +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62748e70 acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0x6276e866 seq_puts +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x62844924 __brelse +EXPORT_SYMBOL vmlinux 0x628cc4fd lookup_hash +EXPORT_SYMBOL vmlinux 0x6292274e blk_plug_device +EXPORT_SYMBOL vmlinux 0x62bc1ac1 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x62d88297 llc_sap_close +EXPORT_SYMBOL vmlinux 0x6366e0b2 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x637e92df tcp_parse_options +EXPORT_SYMBOL vmlinux 0x63803b25 generic_readlink +EXPORT_SYMBOL vmlinux 0x63dc8ef0 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x63e7f976 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x6443d74d _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x6449fd41 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x64689d86 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64b14fd2 seq_release_private +EXPORT_SYMBOL vmlinux 0x64bef55a redraw_screen +EXPORT_SYMBOL vmlinux 0x64c8bd81 dev_mc_add +EXPORT_SYMBOL vmlinux 0x64e0e6ba jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x64e90ef0 del_timer +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x65022a24 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x65034ea3 iterate_mounts +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x6523919b pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x653b55d4 scsi_execute_req +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x654a3106 fb_get_mode +EXPORT_SYMBOL vmlinux 0x654ff89b tc_classify +EXPORT_SYMBOL vmlinux 0x655cd4f4 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x6563ac5a journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x6571ca99 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x6584f52f tty_unregister_device +EXPORT_SYMBOL vmlinux 0x65ad8990 swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0x65b30c2c inet_frags_init +EXPORT_SYMBOL vmlinux 0x65c45a28 phy_connect +EXPORT_SYMBOL vmlinux 0x65e80146 bh_submit_read +EXPORT_SYMBOL vmlinux 0x65f2295e lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x6627640d iget_locked +EXPORT_SYMBOL vmlinux 0x664584de scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x66466be9 get_io_context +EXPORT_SYMBOL vmlinux 0x664ab645 netif_device_attach +EXPORT_SYMBOL vmlinux 0x6656f0f4 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x6671007c mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x668efb40 mb_cache_create +EXPORT_SYMBOL vmlinux 0x6695f40c skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x66a62699 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x66b143dc acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0x66da5382 vfs_readdir +EXPORT_SYMBOL vmlinux 0x66e432df elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x66eff931 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0x6700afc8 path_get +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x670c0597 down_interruptible +EXPORT_SYMBOL vmlinux 0x67169789 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x67183f87 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x672144bd strlcpy +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x67300723 phy_disconnect +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x674b0c57 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x67637124 kobject_get +EXPORT_SYMBOL vmlinux 0x679af962 end_page_writeback +EXPORT_SYMBOL vmlinux 0x67a88f7a serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67cea85a ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x680c730e i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x6848342d phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x68ccd081 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x68e69f60 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x68f2d134 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x68f68a80 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x690acdd7 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x691001b5 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0x6947429c bdevname +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6974dac3 xfrm_policy_destroy +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 0x699a4e1f set_pages_wb +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69a39508 follow_down +EXPORT_SYMBOL vmlinux 0x69b08e68 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x69b75d26 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x69bffe14 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69cbe2a6 pci_bus_set_ops +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 0x69e6c62a journal_update_format +EXPORT_SYMBOL vmlinux 0x69eb03c3 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x69ee4cb3 llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a0f80f7 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x6a1131db unload_nls +EXPORT_SYMBOL vmlinux 0x6a19206f tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x6a3ba975 idr_find +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a80e9c5 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x6a96d72f bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x6ab3d205 mmc_free_host +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6acd396d misc_register +EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6af49133 module_refcount +EXPORT_SYMBOL vmlinux 0x6afbaf4c tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x6aff4297 __lock_buffer +EXPORT_SYMBOL vmlinux 0x6b0d876c kset_register +EXPORT_SYMBOL vmlinux 0x6b148150 __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b3b219a inode_add_bytes +EXPORT_SYMBOL vmlinux 0x6b4e5a52 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x6b5d2bee sk_common_release +EXPORT_SYMBOL vmlinux 0x6b6dc165 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x6b7575bb dqget +EXPORT_SYMBOL vmlinux 0x6b76e7ae pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x6ba6b716 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bc56c67 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6bd3ca41 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x6bdc6204 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bdebc4c lock_may_write +EXPORT_SYMBOL vmlinux 0x6be3f10f dump_trace +EXPORT_SYMBOL vmlinux 0x6befc7e5 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x6bf42636 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x6bf8d133 down_trylock +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 0x6c621490 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c7c788f register_md_personality +EXPORT_SYMBOL vmlinux 0x6cbe7632 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x6cd6c9f7 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x6cd9495e aio_put_req +EXPORT_SYMBOL vmlinux 0x6d046299 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x6d04668f pci_iomap +EXPORT_SYMBOL vmlinux 0x6d053f9e pci_set_mwi +EXPORT_SYMBOL vmlinux 0x6d0e3039 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x6d146178 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0x6d159000 security_inode_permission +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d29b85e sock_no_connect +EXPORT_SYMBOL vmlinux 0x6d334118 __get_user_8 +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d3c4846 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d6f06c7 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x6d70f3e0 load_nls +EXPORT_SYMBOL vmlinux 0x6d7ab8ec __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x6da7d2d4 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x6de6bf83 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6dfb2f3b dma_ops +EXPORT_SYMBOL vmlinux 0x6dff1605 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x6e38160b blk_stack_limits +EXPORT_SYMBOL vmlinux 0x6e62f1a3 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x6e6c70bf padata_alloc +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e73a4eb nf_log_unregister +EXPORT_SYMBOL vmlinux 0x6e802324 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ea3733c neigh_update +EXPORT_SYMBOL vmlinux 0x6ea6b86e simple_rmdir +EXPORT_SYMBOL vmlinux 0x6eb084be sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x6ecceb69 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x6edae92c dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x6ee2911e pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x6ef50493 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x6f170724 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x6f36242b gen_pool_create +EXPORT_SYMBOL vmlinux 0x6f374eaa napi_skb_finish +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6fa1fca8 dm_table_put +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fd575b1 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x6fe9d0d7 acpi_bus_add +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x70122a57 kdb_current_task +EXPORT_SYMBOL vmlinux 0x70470589 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x70528d25 elv_rb_del +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x70765d1c vfs_lstat +EXPORT_SYMBOL vmlinux 0x708a4c59 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x70a80b18 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x70b8607a fail_migrate_page +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70ca854f page_readlink +EXPORT_SYMBOL vmlinux 0x70d3fa4b agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70e510d0 register_gifconf +EXPORT_SYMBOL vmlinux 0x70fc7c82 pnp_register_driver +EXPORT_SYMBOL vmlinux 0x7108e76b udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x711c858b inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x71578ec6 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x715c7513 file_remove_suid +EXPORT_SYMBOL vmlinux 0x71677ab5 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x718b6dd7 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x719eacd1 sync_inode +EXPORT_SYMBOL vmlinux 0x71a1b62a tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a9331b dentry_unhash +EXPORT_SYMBOL vmlinux 0x71d0343e genphy_read_status +EXPORT_SYMBOL vmlinux 0x71df7e93 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x71f54c49 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x71f6eb38 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x71fd6ed9 __lock_page +EXPORT_SYMBOL vmlinux 0x720a5bb6 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x721cc855 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x72208e1c vfs_readlink +EXPORT_SYMBOL vmlinux 0x72373b65 inode_init_once +EXPORT_SYMBOL vmlinux 0x7242e96d strnchr +EXPORT_SYMBOL vmlinux 0x724fd3d5 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x72655fa2 blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0x72801a95 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x72915719 blk_register_region +EXPORT_SYMBOL vmlinux 0x72a06fc9 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x72a98fdb copy_user_generic_unrolled +EXPORT_SYMBOL vmlinux 0x72b20db5 agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte +EXPORT_SYMBOL vmlinux 0x72d28d66 scsi_remove_target +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72fb0e59 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x73005b20 log_wait_commit +EXPORT_SYMBOL vmlinux 0x73088a57 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x73252f64 seq_open_private +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x7383a639 ip6_route_output +EXPORT_SYMBOL vmlinux 0x73872e5e _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x7389c9a8 acpi_bus_get_power +EXPORT_SYMBOL vmlinux 0x7399f9a2 netif_notify_peers +EXPORT_SYMBOL vmlinux 0x739e1998 is_bad_inode +EXPORT_SYMBOL vmlinux 0x739e7458 i2c_verify_client +EXPORT_SYMBOL vmlinux 0x73ad0052 md_write_end +EXPORT_SYMBOL vmlinux 0x73d94103 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x73f0e274 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x73f1a672 dquot_commit +EXPORT_SYMBOL vmlinux 0x73f3873e pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x743f0d35 padata_do_serial +EXPORT_SYMBOL vmlinux 0x7444fbad unregister_console +EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte +EXPORT_SYMBOL vmlinux 0x74520178 xfrm_user_policy +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 0x74d4b875 pskb_copy +EXPORT_SYMBOL vmlinux 0x750db3ef rfkill_alloc +EXPORT_SYMBOL vmlinux 0x7527ac4f eth_header_cache +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x755d9639 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp +EXPORT_SYMBOL vmlinux 0x7570b9d6 proc_create_data +EXPORT_SYMBOL vmlinux 0x7581e21e sk_receive_skb +EXPORT_SYMBOL vmlinux 0x759ca761 update_region +EXPORT_SYMBOL vmlinux 0x75b38cb0 agp_find_bridge +EXPORT_SYMBOL vmlinux 0x75b7c24c scsi_host_put +EXPORT_SYMBOL vmlinux 0x75b8cba7 i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75fb0b76 fsync_bdev +EXPORT_SYMBOL vmlinux 0x75fbdefd acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x760895e7 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x766a83fa d_prune_aliases +EXPORT_SYMBOL vmlinux 0x767bdae7 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x767dd8fd acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x76869ac8 rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x768dad82 register_console +EXPORT_SYMBOL vmlinux 0x76a400d9 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76c6494b set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d6819c elv_add_request +EXPORT_SYMBOL vmlinux 0x76f3f8a5 num_k8_northbridges +EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic +EXPORT_SYMBOL vmlinux 0x77165741 __mutex_init +EXPORT_SYMBOL vmlinux 0x772c1a3b framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x773b96f5 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x774fb208 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x775bc595 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x778fd8e8 vlan_gro_receive +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +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 0x780c6c81 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x782acba5 crc_t10dif +EXPORT_SYMBOL vmlinux 0x7842a019 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x7849723e poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x7849d2fb slow_work_sleep_till_thread_needed +EXPORT_SYMBOL vmlinux 0x784c5810 skb_dequeue +EXPORT_SYMBOL vmlinux 0x784cf797 journal_init_dev +EXPORT_SYMBOL vmlinux 0x78764f4e pv_irq_ops +EXPORT_SYMBOL vmlinux 0x7881a0ba get_fs_type +EXPORT_SYMBOL vmlinux 0x788a115c inet6_ioctl +EXPORT_SYMBOL vmlinux 0x788acdfe udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x78b496a0 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x78b728e8 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x78ce0138 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x78d87806 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78f6b5f0 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x791cb62e pci_clear_master +EXPORT_SYMBOL vmlinux 0x79213251 sk_wait_data +EXPORT_SYMBOL vmlinux 0x79305364 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x79320069 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x793e586c dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x795a1ff9 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x796de582 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x79a5fef4 vfs_mknod +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79c7c840 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol +EXPORT_SYMBOL vmlinux 0x7a3da12b mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a58dc99 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x7a6b2715 put_mnt_ns +EXPORT_SYMBOL vmlinux 0x7a6dd954 journal_extend +EXPORT_SYMBOL vmlinux 0x7a7a8f32 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x7a9670c4 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x7a9bc9a2 keyring_clear +EXPORT_SYMBOL vmlinux 0x7aa7bd38 pnp_is_active +EXPORT_SYMBOL vmlinux 0x7ab8f0ca tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x7abf2cd0 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip +EXPORT_SYMBOL vmlinux 0x7ae70df8 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x7ae73de1 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7aedc1ea tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x7af2ca80 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x7b078c6e dev_trans_start +EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7b36e68d nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x7b7244f1 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x7b72c3b1 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x7b83c8bf do_sync_write +EXPORT_SYMBOL vmlinux 0x7b8ab0f8 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x7b8f4c40 key_create_or_update +EXPORT_SYMBOL vmlinux 0x7b90342c xfrm_init_state +EXPORT_SYMBOL vmlinux 0x7b981263 sk_run_filter +EXPORT_SYMBOL vmlinux 0x7b9c1586 audit_log_format +EXPORT_SYMBOL vmlinux 0x7bc4e05f md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x7bcd2693 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7be562ab input_grab_device +EXPORT_SYMBOL vmlinux 0x7bfd3a3f unregister_quota_format +EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x7c062692 pci_iounmap +EXPORT_SYMBOL vmlinux 0x7c0c1429 vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0x7c21e8a1 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x7c3f1d60 open_bdev_exclusive +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c4c0276 netpoll_setup +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c62e7ba dquot_enable +EXPORT_SYMBOL vmlinux 0x7c8768cd icmpv6_send +EXPORT_SYMBOL vmlinux 0x7c8784dc bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cd8d426 loop_register_transfer +EXPORT_SYMBOL vmlinux 0x7cde15ac generic_file_fsync +EXPORT_SYMBOL vmlinux 0x7cfb04dc inet6_release +EXPORT_SYMBOL vmlinux 0x7cfebe3c get_sb_pseudo +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d18a0a7 __alloc_skb +EXPORT_SYMBOL vmlinux 0x7d367ab6 have_submounts +EXPORT_SYMBOL vmlinux 0x7d3d5001 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x7d4796df cdev_alloc +EXPORT_SYMBOL vmlinux 0x7d5135cb qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x7d6433f5 xfrm_input +EXPORT_SYMBOL vmlinux 0x7d843093 key_type_keyring +EXPORT_SYMBOL vmlinux 0x7d94f746 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x7d9c539e generic_setlease +EXPORT_SYMBOL vmlinux 0x7da0a1d3 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7dd554fc unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x7dd59b42 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x7ddae838 kernel_accept +EXPORT_SYMBOL vmlinux 0x7de24ff9 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x7de30232 pcim_enable_device +EXPORT_SYMBOL vmlinux 0x7de6061c dquot_destroy +EXPORT_SYMBOL vmlinux 0x7de722f9 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x7e0764af d_splice_alias +EXPORT_SYMBOL vmlinux 0x7e30f0e8 pci_claim_resource +EXPORT_SYMBOL vmlinux 0x7e32e611 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e4833cc tcp_connect +EXPORT_SYMBOL vmlinux 0x7e4d0f60 fb_show_logo +EXPORT_SYMBOL vmlinux 0x7e7d9500 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x7e8a12f4 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7eb8a455 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x7eb9c35d xfrm_state_update +EXPORT_SYMBOL vmlinux 0x7ebf47b8 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy +EXPORT_SYMBOL vmlinux 0x7ef0fd83 fget +EXPORT_SYMBOL vmlinux 0x7f114141 complete_and_exit +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f4b249e sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x7f619f48 unlock_rename +EXPORT_SYMBOL vmlinux 0x7f7c5f5a elv_queue_empty +EXPORT_SYMBOL vmlinux 0x7f8019ce bio_map_kern +EXPORT_SYMBOL vmlinux 0x7fc6218a neigh_table_clear +EXPORT_SYMBOL vmlinux 0x7fc7bdf4 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x7fdf5a73 key_revoke +EXPORT_SYMBOL vmlinux 0x7ffba645 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x7fff17fe dst_destroy +EXPORT_SYMBOL vmlinux 0x800ac957 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x80107de5 dst_alloc +EXPORT_SYMBOL vmlinux 0x80142906 nobh_writepage +EXPORT_SYMBOL vmlinux 0x80384692 d_path +EXPORT_SYMBOL vmlinux 0x8041c24b __netdev_alloc_page +EXPORT_SYMBOL vmlinux 0x804ac0f8 iget5_locked +EXPORT_SYMBOL vmlinux 0x804f9983 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x8052d82f dquot_quota_on_path +EXPORT_SYMBOL vmlinux 0x8059a103 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x8065fef9 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x8066b0ec dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x806c46ef dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x807e5c42 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x80868099 dma_pool_free +EXPORT_SYMBOL vmlinux 0x8090e55a node_data +EXPORT_SYMBOL vmlinux 0x80a69b03 input_get_keycode_big +EXPORT_SYMBOL vmlinux 0x80ecb59c blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x80f986ce kernel_getpeername +EXPORT_SYMBOL vmlinux 0x8106838e mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x813b0461 set_irq_chip +EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x814ea4e4 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x816616ec eth_change_mtu +EXPORT_SYMBOL vmlinux 0x81672362 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x81912d54 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x81c3b935 xfrm_unregister_km +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 0x820e3373 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x82101d06 proto_register +EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x821a6e0e tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user +EXPORT_SYMBOL vmlinux 0x823ad82b xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x824d645a ll_rw_block +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x82529367 seq_printf +EXPORT_SYMBOL vmlinux 0x825ed815 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x8288623a jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x828f5f31 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82c1d69b acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0x82c66846 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x82c858c9 ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x8301eecf mpage_writepages +EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot +EXPORT_SYMBOL vmlinux 0x831cb2a5 ___ratelimit +EXPORT_SYMBOL vmlinux 0x83636ee3 wait_for_completion +EXPORT_SYMBOL vmlinux 0x836fd4b3 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x838bd2d9 mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x8393da71 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83b1b12a inet_bind +EXPORT_SYMBOL vmlinux 0x83b6425c generic_file_llseek +EXPORT_SYMBOL vmlinux 0x83d5f81c phy_print_status +EXPORT_SYMBOL vmlinux 0x83e32416 bio_split +EXPORT_SYMBOL vmlinux 0x83ec80a7 ab3100_event_register +EXPORT_SYMBOL vmlinux 0x83ef761c journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x84134715 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x84408d7e linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x8483ee4f scsi_add_device +EXPORT_SYMBOL vmlinux 0x84a3930c clocksource_unregister +EXPORT_SYMBOL vmlinux 0x84c61856 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x851179a5 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x85174d44 file_permission +EXPORT_SYMBOL vmlinux 0x851d060f invalidate_bdev +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x856dab93 set_current_groups +EXPORT_SYMBOL vmlinux 0x859df228 acpi_bus_start +EXPORT_SYMBOL vmlinux 0x85abc85f strncmp +EXPORT_SYMBOL vmlinux 0x85b9e783 set_pages_uc +EXPORT_SYMBOL vmlinux 0x85c15d96 __netif_schedule +EXPORT_SYMBOL vmlinux 0x85ccbdf9 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85ed05d1 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x86018eef disk_stack_limits +EXPORT_SYMBOL vmlinux 0x86085ab9 backlight_force_update +EXPORT_SYMBOL vmlinux 0x86304056 do_truncate +EXPORT_SYMBOL vmlinux 0x8631f188 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x8675de4e input_unregister_handler +EXPORT_SYMBOL vmlinux 0x8684b370 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x86887490 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86c7146d vfs_fstat +EXPORT_SYMBOL vmlinux 0x86de2b83 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x8710ee28 key_validate +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x872f6437 pci_disable_device +EXPORT_SYMBOL vmlinux 0x87307068 pipe_to_file +EXPORT_SYMBOL vmlinux 0x873b67c8 pci_bus_type +EXPORT_SYMBOL vmlinux 0x873c376a tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x874744a4 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x8762a2f4 scsi_host_get +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x876e998a padata_stop +EXPORT_SYMBOL vmlinux 0x8788862a bdev_read_only +EXPORT_SYMBOL vmlinux 0x8789bb9d journal_wipe +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x8799af80 scsi_setup_blk_pc_cmnd +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 0x87cac7cc blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x87e7f355 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x87ea5750 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x87ebf4d7 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x88006f08 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x881a8985 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x882941eb open_exec +EXPORT_SYMBOL vmlinux 0x8831eca6 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x883838ab netpoll_send_skb +EXPORT_SYMBOL vmlinux 0x886c8557 misc_deregister +EXPORT_SYMBOL vmlinux 0x88850a87 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x88941a06 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x88bd2bc2 register_snap_client +EXPORT_SYMBOL vmlinux 0x88e0b3ef registered_fb +EXPORT_SYMBOL vmlinux 0x88f552b0 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x890d5ec1 ip_route_output_key +EXPORT_SYMBOL vmlinux 0x891a8f8a touch_atime +EXPORT_SYMBOL vmlinux 0x8928d9e1 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x89327a09 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x8951f3df __kfree_skb +EXPORT_SYMBOL vmlinux 0x895d994b tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x897ca7ba load_nls_default +EXPORT_SYMBOL vmlinux 0x89a1a247 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x89a330e9 dev_open +EXPORT_SYMBOL vmlinux 0x89ad1ba1 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x89cdfb05 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x89ce3459 rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89e88012 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x89ea52c4 proto_unregister +EXPORT_SYMBOL vmlinux 0x8a01259a dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x8a4b5e0e find_lock_page +EXPORT_SYMBOL vmlinux 0x8a50f1bd kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x8a5a63ef napi_gro_receive +EXPORT_SYMBOL vmlinux 0x8a677701 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x8a7986f3 console_start +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a7fedff cpu_info +EXPORT_SYMBOL vmlinux 0x8a94c705 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8afc37e8 dquot_operations +EXPORT_SYMBOL vmlinux 0x8b10d736 inet_addr_type +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b4ae35f alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x8b5607d7 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b62e991 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x8b6b6b03 add_disk +EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup +EXPORT_SYMBOL vmlinux 0x8b922c0f __strnlen_user +EXPORT_SYMBOL vmlinux 0x8b97e2ad create_mnt_ns +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 0x8bd5b603 param_get_long +EXPORT_SYMBOL vmlinux 0x8bd65ce4 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x8bf362fa ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x8c01f819 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x8c166fd2 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c308b51 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x8c40a0dd genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x8c6904b3 inet_listen +EXPORT_SYMBOL vmlinux 0x8c91133b locks_remove_posix +EXPORT_SYMBOL vmlinux 0x8cbb42e7 gen_pool_add +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cce1ba3 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x8cd8faf6 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x8cebf6a8 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x8cf93997 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x8d1bbb00 bio_sector_offset +EXPORT_SYMBOL vmlinux 0x8d4dcdc9 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d5b98f5 tcp_check_req +EXPORT_SYMBOL vmlinux 0x8d6906d4 unregister_memory_notifier +EXPORT_SYMBOL vmlinux 0x8d7c4b1b neigh_parms_release +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8d92b384 pci_request_region +EXPORT_SYMBOL vmlinux 0x8db862b0 tty_port_close +EXPORT_SYMBOL vmlinux 0x8dbac33d tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x8dc6fb66 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x8dcb0405 vga_client_register +EXPORT_SYMBOL vmlinux 0x8dd8df0b nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x8ddbae85 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0545bd journal_check_used_features +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e26f132 input_free_device +EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk +EXPORT_SYMBOL vmlinux 0x8e500de0 simple_readpage +EXPORT_SYMBOL vmlinux 0x8e67cc32 vc_cons +EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq +EXPORT_SYMBOL vmlinux 0x8e82f735 scsi_put_command +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8f0a8b34 dw_spi_resume_host +EXPORT_SYMBOL vmlinux 0x8f160430 kernel_read +EXPORT_SYMBOL vmlinux 0x8f2371ba percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f6af4e5 fb_class +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f849406 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fa6262b journal_init_inode +EXPORT_SYMBOL vmlinux 0x8fb11d9a fsnotify_find_mark_entry +EXPORT_SYMBOL vmlinux 0x8fb18690 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x8fb6c2f8 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x8fbfda25 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x8fe5c68d mnt_pin +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x900872e1 mddev_congested +EXPORT_SYMBOL vmlinux 0x9021b097 del_timer_sync +EXPORT_SYMBOL vmlinux 0x902276de notify_change +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x9061a895 inet_put_port +EXPORT_SYMBOL vmlinux 0x906635df pci_enable_device +EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system +EXPORT_SYMBOL vmlinux 0x90a8c843 vfs_readv +EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active +EXPORT_SYMBOL vmlinux 0x90b49d33 dm_register_target +EXPORT_SYMBOL vmlinux 0x90c14a17 pci_get_device +EXPORT_SYMBOL vmlinux 0x90dbd446 dw_spi_suspend_host +EXPORT_SYMBOL vmlinux 0x90e04d11 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x90e406ae journal_create +EXPORT_SYMBOL vmlinux 0x90fd8a6b scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x910c3066 skb_queue_head +EXPORT_SYMBOL vmlinux 0x9129503d thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0x913d6756 k8_northbridges +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x915ddbc2 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x915e8d05 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong +EXPORT_SYMBOL vmlinux 0x9180411c idr_destroy +EXPORT_SYMBOL vmlinux 0x91c1a18f genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x91c82bf7 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0x91fe0eb1 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x9203eaea pci_target_state +EXPORT_SYMBOL vmlinux 0x9209ddfc tty_port_hangup +EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool +EXPORT_SYMBOL vmlinux 0x9237fa8b rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0x92392cd9 iov_shorten +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x92601850 generic_unplug_device +EXPORT_SYMBOL vmlinux 0x926030be dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x927078fc seq_open +EXPORT_SYMBOL vmlinux 0x9273da59 scsi_finish_command +EXPORT_SYMBOL vmlinux 0x92832b01 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x928ce512 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le +EXPORT_SYMBOL vmlinux 0x9300a5c5 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x93051bfa bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x935d6d95 sock_register +EXPORT_SYMBOL vmlinux 0x936cf36d set_binfmt +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93ad45a5 gen_pool_free +EXPORT_SYMBOL vmlinux 0x93b97634 netif_rx +EXPORT_SYMBOL vmlinux 0x93be495c elevator_init +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93f3e52b acpi_extract_package +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x9404e32d scsi_register_driver +EXPORT_SYMBOL vmlinux 0x94292fa2 textsearch_register +EXPORT_SYMBOL vmlinux 0x942d476c xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x942f8bfe mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x943f7152 dm_snap_origin +EXPORT_SYMBOL vmlinux 0x944bcbc8 iunique +EXPORT_SYMBOL vmlinux 0x9451ef79 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x94872521 nf_register_hook +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94b340f5 destroy_EII_client +EXPORT_SYMBOL vmlinux 0x94bcf365 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94deb975 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x94e4309a fb_blank +EXPORT_SYMBOL vmlinux 0x94ed9cb5 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x94fa7193 hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0x9510ba3c xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x953176a4 ps2_drain +EXPORT_SYMBOL vmlinux 0x95352ea9 acpi_check_mem_region +EXPORT_SYMBOL vmlinux 0x9542c73b tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x95500f54 dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x9556337b xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x9560107d acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0x95a56e54 nla_put +EXPORT_SYMBOL vmlinux 0x95adc95e journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x95b281c9 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x95c87772 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x95ceb864 key_update +EXPORT_SYMBOL vmlinux 0x95eaf00d splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x966432cc sock_recvmsg +EXPORT_SYMBOL vmlinux 0x966e9b7c inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x96706915 sock_i_uid +EXPORT_SYMBOL vmlinux 0x968438c8 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x969c0f35 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x96a66966 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x96ccbd4f swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d95fc4 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x96dff38d lock_super +EXPORT_SYMBOL vmlinux 0x96f951b0 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0x9709b076 dquot_transfer +EXPORT_SYMBOL vmlinux 0x971db260 is_container_init +EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n +EXPORT_SYMBOL vmlinux 0x972f16cd jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x973e7bae dm_table_event +EXPORT_SYMBOL vmlinux 0x97462ea7 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x974e5c19 __pci_register_driver +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x976ad2b8 brioctl_set +EXPORT_SYMBOL vmlinux 0x9770009f sock_sendmsg +EXPORT_SYMBOL vmlinux 0x97726735 icmp_send +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x980778f3 bd_release +EXPORT_SYMBOL vmlinux 0x98093e76 idr_get_next +EXPORT_SYMBOL vmlinux 0x9826cea0 ip6_xmit +EXPORT_SYMBOL vmlinux 0x98429d16 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x988b6123 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init +EXPORT_SYMBOL vmlinux 0x98ae9d5f agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0x98afd460 km_report +EXPORT_SYMBOL vmlinux 0x98c43a8d pci_dev_put +EXPORT_SYMBOL vmlinux 0x98d15002 kernel_bind +EXPORT_SYMBOL vmlinux 0x98da488f vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x98f89589 arp_broken_ops +EXPORT_SYMBOL vmlinux 0x9901da01 cad_pid +EXPORT_SYMBOL vmlinux 0x9909b73a scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x99217da6 compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0x992cd3e9 journal_abort +EXPORT_SYMBOL vmlinux 0x992ef3c3 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x9969ab62 dqput +EXPORT_SYMBOL vmlinux 0x9971adef dcache_readdir +EXPORT_SYMBOL vmlinux 0x997a9297 netlink_set_err +EXPORT_SYMBOL vmlinux 0x998a8e49 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x9994d6aa spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99a449bb i2c_register_driver +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c0f3f0 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99e00132 generic_make_request +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 0x99f23b56 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x99f8f394 complete_request_key +EXPORT_SYMBOL vmlinux 0x9a04cd9f __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x9a05838e free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a2f1553 compat_mc_setsockopt +EXPORT_SYMBOL vmlinux 0x9a4848f4 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x9a7cb613 dma_supported +EXPORT_SYMBOL vmlinux 0x9a9ff1ba ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x9aabc564 crc16 +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b40ad39 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x9b4859f6 acpi_root_dir +EXPORT_SYMBOL vmlinux 0x9b5a31e0 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x9b5f3de5 simple_lookup +EXPORT_SYMBOL vmlinux 0x9b6917e4 kernel_connect +EXPORT_SYMBOL vmlinux 0x9b847a9d skb_queue_tail +EXPORT_SYMBOL vmlinux 0x9ba19327 copy_io_context +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bbdd88f simple_pin_fs +EXPORT_SYMBOL vmlinux 0x9bfcc95d __blockdev_direct_IO_newtrunc +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan +EXPORT_SYMBOL vmlinux 0x9c12a86c alloc_file +EXPORT_SYMBOL vmlinux 0x9c1f2fe6 set_groups +EXPORT_SYMBOL vmlinux 0x9c3b0527 simple_setsize +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c6f18b5 sock_no_poll +EXPORT_SYMBOL vmlinux 0x9c6f81aa __lookup_one_len +EXPORT_SYMBOL vmlinux 0x9c7d16b7 vc_resize +EXPORT_SYMBOL vmlinux 0x9c9a461e scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x9ca95a0e sort +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cbd8040 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x9cc064ed ppp_register_channel +EXPORT_SYMBOL vmlinux 0x9cc44c43 do_munmap +EXPORT_SYMBOL vmlinux 0x9cc5be2b cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x9cc94ab8 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d11458b ida_get_new_above +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d5ea266 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x9d9283bf setup_new_exec +EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x9dbac3f4 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x9dd08427 create_proc_entry +EXPORT_SYMBOL vmlinux 0x9ddbe36d dev_add_pack +EXPORT_SYMBOL vmlinux 0x9e16138e security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x9e337633 bmap +EXPORT_SYMBOL vmlinux 0x9e4922c8 softnet_data +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e6bc7e7 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x9e765a92 journal_flush +EXPORT_SYMBOL vmlinux 0x9e7c33f5 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9eab5b47 agp_generic_alloc_pages +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 0x9ef7c859 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x9ef7d4b4 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f2986f4 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f53c419 skb_make_writable +EXPORT_SYMBOL vmlinux 0x9f6e19ab mem_section +EXPORT_SYMBOL vmlinux 0x9f6f4964 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x9f7e8ca0 find_or_create_page +EXPORT_SYMBOL vmlinux 0x9f802d6a dcache_dir_close +EXPORT_SYMBOL vmlinux 0x9f87d489 bdi_register +EXPORT_SYMBOL vmlinux 0x9f92efc4 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f9ba9ef journal_destroy +EXPORT_SYMBOL vmlinux 0x9fccdff4 tcp_ioctl +EXPORT_SYMBOL vmlinux 0x9fd8c82d journal_lock_updates +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0xa006dc04 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xa01a264f tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa057fb07 dquot_drop +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa0862fdf i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xa0a3a43c __ps2_command +EXPORT_SYMBOL vmlinux 0xa0a41a27 rtc_lock +EXPORT_SYMBOL vmlinux 0xa0ae432b proc_dointvec +EXPORT_SYMBOL vmlinux 0xa0aee946 qdisc_reset +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0bb74e5 alloc_disk_node +EXPORT_SYMBOL vmlinux 0xa0bf4048 sk_filter +EXPORT_SYMBOL vmlinux 0xa0c394d2 sock_setsockopt +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize +EXPORT_SYMBOL vmlinux 0xa0f75565 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa10129ea _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xa106af5c page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa114e994 md_integrity_register +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa158a793 pci_release_regions +EXPORT_SYMBOL vmlinux 0xa15a5ab8 bdi_unregister +EXPORT_SYMBOL vmlinux 0xa1a78823 down_read_trylock +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba4b95 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1d3f5e5 d_delete +EXPORT_SYMBOL vmlinux 0xa1da5347 inet_frags_fini +EXPORT_SYMBOL vmlinux 0xa1ecee48 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa21fdb20 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xa23bc484 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xa23dc68c writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0xa265a4ef ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xa289f642 acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0xa28b7892 find_vma +EXPORT_SYMBOL vmlinux 0xa29905ae ndisc_send_skb +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2c62fe5 sock_no_getname +EXPORT_SYMBOL vmlinux 0xa2ce66b3 dev_mc_del +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa2f6c033 register_framebuffer +EXPORT_SYMBOL vmlinux 0xa32a43c0 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa35383ad textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa35ffd5a skb_append +EXPORT_SYMBOL vmlinux 0xa3a5be95 memmove +EXPORT_SYMBOL vmlinux 0xa3a64475 agp_bridge +EXPORT_SYMBOL vmlinux 0xa4064323 no_llseek +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa45f5007 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xa4695b78 d_instantiate +EXPORT_SYMBOL vmlinux 0xa46e2770 audit_log_start +EXPORT_SYMBOL vmlinux 0xa47fb533 unregister_nls +EXPORT_SYMBOL vmlinux 0xa49ed614 dm_table_get_size +EXPORT_SYMBOL vmlinux 0xa4b3112a ftrace_event_seq +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4d3a923 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0xa4d4599a soft_cursor +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa5784261 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa5942dbb neigh_seq_stop +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5b287a2 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0xa5b9e50c scsi_register +EXPORT_SYMBOL vmlinux 0xa5e4f65c __next_cpu_nr +EXPORT_SYMBOL vmlinux 0xa5fb124b jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xa61b8034 lro_receive_skb +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa66d2547 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6a04581 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0xa6bcade3 security_path_truncate +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6df16af skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xa6eab55e kmalloc_caches +EXPORT_SYMBOL vmlinux 0xa6ff5831 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes +EXPORT_SYMBOL vmlinux 0xa73a0705 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xa74ff267 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xa755b5dc unregister_qdisc +EXPORT_SYMBOL vmlinux 0xa7591211 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0xa7645c5f __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xa76e7de0 genl_register_ops +EXPORT_SYMBOL vmlinux 0xa777d5b7 mutex_trylock +EXPORT_SYMBOL vmlinux 0xa77eb61f mmc_register_driver +EXPORT_SYMBOL vmlinux 0xa7a8f866 devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0xa7ad29ce kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xa7b1bd45 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xa7e313bf tcp_poll +EXPORT_SYMBOL vmlinux 0xa7e91005 input_register_device +EXPORT_SYMBOL vmlinux 0xa7f0fba7 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xa7fb9f5a lock_sock_nested +EXPORT_SYMBOL vmlinux 0xa809ecb6 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xa80d5757 blk_remove_plug +EXPORT_SYMBOL vmlinux 0xa812aa74 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xa816c525 schedule_work_on +EXPORT_SYMBOL vmlinux 0xa83951d4 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0xa83bf096 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xa886a958 krealloc +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8aba0b4 dw_spi_add_host +EXPORT_SYMBOL vmlinux 0xa8bc82cc security_path_mknod +EXPORT_SYMBOL vmlinux 0xa8bdf6d7 ipv6_push_nfrag_opts +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 0xa921e090 __break_lease +EXPORT_SYMBOL vmlinux 0xa94700a3 sk_release_kernel +EXPORT_SYMBOL vmlinux 0xa9504e55 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xa9578349 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xa99f69b7 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xa9a497ba follow_pfn +EXPORT_SYMBOL vmlinux 0xa9a6f61d ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0xa9b8ef1e scsi_free_command +EXPORT_SYMBOL vmlinux 0xa9bc4c86 mempool_resize +EXPORT_SYMBOL vmlinux 0xa9bc5ff2 sock_no_listen +EXPORT_SYMBOL vmlinux 0xa9bd2676 __vmalloc +EXPORT_SYMBOL vmlinux 0xa9d88fef xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xa9e19cbc otg_put_transceiver +EXPORT_SYMBOL vmlinux 0xa9ed9e43 fb_find_mode +EXPORT_SYMBOL vmlinux 0xa9edc8e7 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xaa2fdeca netif_carrier_off +EXPORT_SYMBOL vmlinux 0xaa3aa099 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0xaa75d778 input_flush_device +EXPORT_SYMBOL vmlinux 0xaa764cec kmem_cache_free +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaab8dbab __ht_create_irq +EXPORT_SYMBOL vmlinux 0xaac1b286 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xaac6d1a5 vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0xaacf4b38 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xaad1da2c input_set_keycode +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaaed5c2c __bio_clone +EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xaaf8d748 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab308eec pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0xab5b7c05 ndisc_build_skb +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab6ce3be sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xab7a4622 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xab9712be arp_find +EXPORT_SYMBOL vmlinux 0xaba259f1 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xaba76dad phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0xabaaef9b tcp_shutdown +EXPORT_SYMBOL vmlinux 0xabc0f365 ip_defrag +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac14bb42 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xac21f4d5 kmem_cache_alloc_notrace +EXPORT_SYMBOL vmlinux 0xac383451 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xacaba618 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacd92546 dm_io_client_create +EXPORT_SYMBOL vmlinux 0xacee6b63 nf_afinfo +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad25fb12 __memcpy +EXPORT_SYMBOL vmlinux 0xad36c88b pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad50e586 unregister_filesystem +EXPORT_SYMBOL vmlinux 0xada47ebe wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadfabda2 __devm_request_region +EXPORT_SYMBOL vmlinux 0xae1fcf49 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xae268064 i2c_release_client +EXPORT_SYMBOL vmlinux 0xae532b70 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xae5bb442 uart_get_divisor +EXPORT_SYMBOL vmlinux 0xae6657c1 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0xae6689cd nobh_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0xae6b695c agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0xae781554 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xae8acf51 percpu_counter_set +EXPORT_SYMBOL vmlinux 0xae9858d6 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xaf0b35d2 vga_tryget +EXPORT_SYMBOL vmlinux 0xaf2142dc get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0xaf3262a8 compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf51547a clocksource_register +EXPORT_SYMBOL vmlinux 0xaf947fb6 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xafb03de5 pci_save_state +EXPORT_SYMBOL vmlinux 0xafb8c6ff copy_user_generic_string +EXPORT_SYMBOL vmlinux 0xafba7914 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn +EXPORT_SYMBOL vmlinux 0xafef8fa9 register_memory_notifier +EXPORT_SYMBOL vmlinux 0xaffa5e25 genphy_suspend +EXPORT_SYMBOL vmlinux 0xafffeff2 km_policy_expired +EXPORT_SYMBOL vmlinux 0xb00ccc33 finish_wait +EXPORT_SYMBOL vmlinux 0xb01a7ffd mmc_add_host +EXPORT_SYMBOL vmlinux 0xb01af50e noop_llseek +EXPORT_SYMBOL vmlinux 0xb04ea8f0 agp_rebind_memory +EXPORT_SYMBOL vmlinux 0xb05436e1 proc_symlink +EXPORT_SYMBOL vmlinux 0xb05b3daf boot_cpu_data +EXPORT_SYMBOL vmlinux 0xb06095aa register_filesystem +EXPORT_SYMBOL vmlinux 0xb0710a46 dquot_resume +EXPORT_SYMBOL vmlinux 0xb07dfb3d acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0xb09e8fcc compat_ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xb09f9bc0 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb10ec686 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb1582429 inet6_bind +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb18e02c3 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1b05aa0 simple_transaction_set +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1d32e8e ip_setsockopt +EXPORT_SYMBOL vmlinux 0xb1d683a5 pci_request_regions +EXPORT_SYMBOL vmlinux 0xb1d6c9ac __neigh_event_send +EXPORT_SYMBOL vmlinux 0xb1f22211 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0xb1f89a60 __wake_up_bit +EXPORT_SYMBOL vmlinux 0xb20ebc24 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xb20ecf88 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb219e43d generic_setattr +EXPORT_SYMBOL vmlinux 0xb21ebf30 dcache_dir_open +EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb2305dfe skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb29f5440 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0xb2da2701 bio_integrity_free +EXPORT_SYMBOL vmlinux 0xb2e17d6e dm_table_get_md +EXPORT_SYMBOL vmlinux 0xb2f7468d ida_get_new +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb30c61dd task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb357cb41 netif_carrier_on +EXPORT_SYMBOL vmlinux 0xb388c7f9 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xb38d648a netlink_dump_start +EXPORT_SYMBOL vmlinux 0xb39cbcf8 sync_blockdev +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3bd107e tty_register_driver +EXPORT_SYMBOL vmlinux 0xb3c357e3 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0xb3c419ee tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0xb3ff1f69 free_pages_exact +EXPORT_SYMBOL vmlinux 0xb40e6e65 seq_bitmap +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb43e4ba8 alloc_fcdev +EXPORT_SYMBOL vmlinux 0xb459e363 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xb45b24f6 k8_nb_ids +EXPORT_SYMBOL vmlinux 0xb45b91fc rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0xb467cee3 mntput_no_expire +EXPORT_SYMBOL vmlinux 0xb4690588 backlight_device_register +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb49ce580 d_find_alias +EXPORT_SYMBOL vmlinux 0xb4a24092 should_remove_suid +EXPORT_SYMBOL vmlinux 0xb4d16e5e set_pages_x +EXPORT_SYMBOL vmlinux 0xb4da7dee block_write_full_page +EXPORT_SYMBOL vmlinux 0xb4e11774 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0xb4f04f00 register_netdevice +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb50f5695 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0xb51079ea skb_copy +EXPORT_SYMBOL vmlinux 0xb5137ac3 dquot_scan_active +EXPORT_SYMBOL vmlinux 0xb51c402e jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb550522f revert_creds +EXPORT_SYMBOL vmlinux 0xb5692937 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xb572502f __nla_put +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5b240bf sock_kmalloc +EXPORT_SYMBOL vmlinux 0xb5b38121 pipe_unlock +EXPORT_SYMBOL vmlinux 0xb5bc6e10 elv_rb_find +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5d3e426 __breadahead +EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction +EXPORT_SYMBOL vmlinux 0xb5d69267 input_close_device +EXPORT_SYMBOL vmlinux 0xb5e5c0bd proc_net_netfilter +EXPORT_SYMBOL vmlinux 0xb60597c6 journal_errno +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb656884f dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xb66c8a69 check_disk_size_change +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb681eed9 put_page +EXPORT_SYMBOL vmlinux 0xb68492de elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6a7fb89 generic_block_bmap +EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6cbe886 acpi_get_node +EXPORT_SYMBOL vmlinux 0xb6ed8906 pci_write_vpd +EXPORT_SYMBOL vmlinux 0xb6fc084d journal_dirty_data +EXPORT_SYMBOL vmlinux 0xb6fd1aed mmc_suspend_host +EXPORT_SYMBOL vmlinux 0xb74fc01b inode_needs_sync +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb75cf74b blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xb76c2b2d journal_force_commit +EXPORT_SYMBOL vmlinux 0xb7928ef8 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xb7a4dae5 __pagevec_release +EXPORT_SYMBOL vmlinux 0xb7adf2c9 devm_iounmap +EXPORT_SYMBOL vmlinux 0xb7bb9ef0 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xb7becdb3 proc_dostring +EXPORT_SYMBOL vmlinux 0xb7e09c47 simple_unlink +EXPORT_SYMBOL vmlinux 0xb812187d devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xb83a98c1 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xb84658ac ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0xb854e584 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xb859e6a4 iput +EXPORT_SYMBOL vmlinux 0xb85ed9f3 kmem_cache_create +EXPORT_SYMBOL vmlinux 0xb85f3bbe pv_lock_ops +EXPORT_SYMBOL vmlinux 0xb864556f dev_uc_init +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb87336f2 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb89e62ec remove_wait_queue +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb90970ca ps2_end_command +EXPORT_SYMBOL vmlinux 0xb90b927e md_write_start +EXPORT_SYMBOL vmlinux 0xb919451c pci_map_rom +EXPORT_SYMBOL vmlinux 0xb9249d16 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb99719fa ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xb9a45916 igrab +EXPORT_SYMBOL vmlinux 0xb9a47366 d_rehash +EXPORT_SYMBOL vmlinux 0xb9b8ee79 sock_create_kern +EXPORT_SYMBOL vmlinux 0xb9c199ad ps2_sendbyte +EXPORT_SYMBOL vmlinux 0xb9d38b07 aio_complete +EXPORT_SYMBOL vmlinux 0xb9ee4b5f down_killable +EXPORT_SYMBOL vmlinux 0xb9fc29e2 thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba61cc07 phy_start_aneg +EXPORT_SYMBOL vmlinux 0xba80ddf4 input_set_capability +EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup +EXPORT_SYMBOL vmlinux 0xbaa52fa4 pskb_expand_head +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbad7d2da interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xbae2b274 unregister_binfmt +EXPORT_SYMBOL vmlinux 0xbaf453be init_task +EXPORT_SYMBOL vmlinux 0xbafda9d5 unregister_8022_client +EXPORT_SYMBOL vmlinux 0xbafe9003 pci_choose_state +EXPORT_SYMBOL vmlinux 0xbb13bc84 pci_read_vpd +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb20e79a sock_no_bind +EXPORT_SYMBOL vmlinux 0xbb309fcb journal_stop +EXPORT_SYMBOL vmlinux 0xbb4a984b get_sb_bdev +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb60d1f1 dma_set_mask +EXPORT_SYMBOL vmlinux 0xbb6970cf i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xbb741ed6 override_creds +EXPORT_SYMBOL vmlinux 0xbb80bd21 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xbb8227f0 phy_detach +EXPORT_SYMBOL vmlinux 0xbb944af2 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xbb95061c netlink_ack +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba223e1 pci_find_bus +EXPORT_SYMBOL vmlinux 0xbba23cb0 cpu_core_map +EXPORT_SYMBOL vmlinux 0xbbb3b997 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbc9af79 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc27e486 tcp_close +EXPORT_SYMBOL vmlinux 0xbc27eea8 udp_table +EXPORT_SYMBOL vmlinux 0xbc3318d0 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xbc48b748 set_page_dirty +EXPORT_SYMBOL vmlinux 0xbc87adfe rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xbc96c195 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xbca88e96 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcd93955 set_anon_super +EXPORT_SYMBOL vmlinux 0xbd008723 dev_close +EXPORT_SYMBOL vmlinux 0xbd100793 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xbd147bfe max8925_set_bits +EXPORT_SYMBOL vmlinux 0xbd6fc051 input_release_device +EXPORT_SYMBOL vmlinux 0xbd917930 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xbdaf5b07 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0xbddca8e0 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe12f6c0 tr_type_trans +EXPORT_SYMBOL vmlinux 0xbe13602e pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0xbe359542 mempool_create_node +EXPORT_SYMBOL vmlinux 0xbe45e570 block_commit_write +EXPORT_SYMBOL vmlinux 0xbe51b657 __dquot_transfer +EXPORT_SYMBOL vmlinux 0xbe66b5f5 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0xbe74aa40 register_key_type +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf1ffe2f directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xbf2facd5 skb_insert +EXPORT_SYMBOL vmlinux 0xbf41d4aa pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0xbf473e61 simple_transaction_release +EXPORT_SYMBOL vmlinux 0xbf5fc5d1 pci_set_master +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfbcead6 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfd69edc tcp4_gro_complete +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff6d950 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc04edd38 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc080116e acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0adc17a invalidate_partition +EXPORT_SYMBOL vmlinux 0xc0b51add sk_stop_timer +EXPORT_SYMBOL vmlinux 0xc0d4e205 wireless_send_event +EXPORT_SYMBOL vmlinux 0xc0f608cd simple_write_begin +EXPORT_SYMBOL vmlinux 0xc1059fdb con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xc11ee142 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0xc11f6a18 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xc1226cf9 dquot_acquire +EXPORT_SYMBOL vmlinux 0xc1268644 idr_init +EXPORT_SYMBOL vmlinux 0xc141230f dev_mc_sync +EXPORT_SYMBOL vmlinux 0xc14455c0 init_buffer +EXPORT_SYMBOL vmlinux 0xc153f14c dst_release +EXPORT_SYMBOL vmlinux 0xc154f724 current_fs_time +EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic +EXPORT_SYMBOL vmlinux 0xc1750d76 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1d4f558 register_quota_format +EXPORT_SYMBOL vmlinux 0xc1eca69c generic_delete_inode +EXPORT_SYMBOL vmlinux 0xc2020d11 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xc22f30d4 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc24e7138 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc2617ebc get_agp_version +EXPORT_SYMBOL vmlinux 0xc29b802a __sk_dst_check +EXPORT_SYMBOL vmlinux 0xc2b1211c blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xc2b5268e pagecache_write_end +EXPORT_SYMBOL vmlinux 0xc2bceb2b mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2ef5720 kernel_sendpage +EXPORT_SYMBOL vmlinux 0xc2f3d3e6 write_cache_pages +EXPORT_SYMBOL vmlinux 0xc31d8781 locks_copy_lock +EXPORT_SYMBOL vmlinux 0xc32ef1b0 d_invalidate +EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu +EXPORT_SYMBOL vmlinux 0xc3423ede serial8250_register_port +EXPORT_SYMBOL vmlinux 0xc34a1253 simple_write_end +EXPORT_SYMBOL vmlinux 0xc34c2694 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xc36b0a50 __page_symlink +EXPORT_SYMBOL vmlinux 0xc38d9c7a down_timeout +EXPORT_SYMBOL vmlinux 0xc38f4d11 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xc3998808 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3c68caa get_write_access +EXPORT_SYMBOL vmlinux 0xc3e673df inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier +EXPORT_SYMBOL vmlinux 0xc42de6a1 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xc4828664 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0xc489ac42 __put_cred +EXPORT_SYMBOL vmlinux 0xc48a5e24 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic +EXPORT_SYMBOL vmlinux 0xc5274d71 lease_get_mtime +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc558530d profile_pc +EXPORT_SYMBOL vmlinux 0xc558b965 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xc55a9d80 arp_send +EXPORT_SYMBOL vmlinux 0xc57966ef do_sync_read +EXPORT_SYMBOL vmlinux 0xc5a0fbd2 dev_get_by_index +EXPORT_SYMBOL vmlinux 0xc5d68fec mdiobus_read +EXPORT_SYMBOL vmlinux 0xc5d835be security_path_rmdir +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc606278b mdiobus_free +EXPORT_SYMBOL vmlinux 0xc6122b0b jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0xc613bf42 compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xc6263196 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc6351753 stop_tty +EXPORT_SYMBOL vmlinux 0xc63b1973 current_task +EXPORT_SYMBOL vmlinux 0xc63c2399 dm_dirty_log_destroy +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc67282ff scsi_register_interface +EXPORT_SYMBOL vmlinux 0xc6865352 inode_init_always +EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xc693b3e8 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xc6b5df0e mutex_lock +EXPORT_SYMBOL vmlinux 0xc6bfeb08 kobject_init +EXPORT_SYMBOL vmlinux 0xc6f0db60 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc7265a32 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0xc740c64a memchr +EXPORT_SYMBOL vmlinux 0xc76ef5f7 sock_release +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a24d76 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7b42b44 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0xc7b58da5 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xc7b7e285 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xc7ea02b2 lookup_one_len +EXPORT_SYMBOL vmlinux 0xc81787ce input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0xc81a2ff2 block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xc81fb5c6 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xc82a0f2e tty_free_termios +EXPORT_SYMBOL vmlinux 0xc83be08e tcp_read_sock +EXPORT_SYMBOL vmlinux 0xc83e626b blk_start_queue +EXPORT_SYMBOL vmlinux 0xc842fc24 unregister_netdev +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc85bd8df tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xc8601c4b i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0xc8649cf8 blk_rq_map_user_iov +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 0xc8ac050c blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8bccf47 nf_log_packet +EXPORT_SYMBOL vmlinux 0xc8bf56bc generic_file_open +EXPORT_SYMBOL vmlinux 0xc8bfd0d8 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0xc8c1cd76 security_inode_init_security +EXPORT_SYMBOL vmlinux 0xc8e41bae __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0xc8f27764 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xc923e5e8 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xc92dbc30 mfd_add_devices +EXPORT_SYMBOL vmlinux 0xc949818d register_cdrom +EXPORT_SYMBOL vmlinux 0xc96c214e __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xc97e250a cfb_copyarea +EXPORT_SYMBOL vmlinux 0xc999920c ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xc99b889b fb_pan_display +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9a5fe03 bio_endio +EXPORT_SYMBOL vmlinux 0xc9a6dcdb blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9aeb854 register_exec_domain +EXPORT_SYMBOL vmlinux 0xc9aec636 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0xc9c004e9 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0xc9d70f59 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0xca58322d page_symlink +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca72299d rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xca8a3760 vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca9f6e39 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel +EXPORT_SYMBOL vmlinux 0xcae69f2d bdget +EXPORT_SYMBOL vmlinux 0xcb082797 kern_path +EXPORT_SYMBOL vmlinux 0xcb089be7 md_barrier_request +EXPORT_SYMBOL vmlinux 0xcb19e817 sk_reset_txq +EXPORT_SYMBOL vmlinux 0xcb1bb87f __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xcb1c8005 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xcb2aac59 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0xcb4bb0ca acpi_device_hid +EXPORT_SYMBOL vmlinux 0xcb55705c cdrom_release +EXPORT_SYMBOL vmlinux 0xcb5ae5e6 __register_chrdev +EXPORT_SYMBOL vmlinux 0xcb70fecd vga_put +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb88f88c agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0xcb8d159e key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xcb954183 scsi_remove_host +EXPORT_SYMBOL vmlinux 0xcb9d9327 get_phy_id +EXPORT_SYMBOL vmlinux 0xcbcdde9c cdev_del +EXPORT_SYMBOL vmlinux 0xcbd3cd17 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xcbe0d23a ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0xcbe2a8c3 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xcbf8cb00 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen +EXPORT_SYMBOL vmlinux 0xcc166224 generic_listxattr +EXPORT_SYMBOL vmlinux 0xcc1fd4aa filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xcc246fe7 tcp_make_synack +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc2a3e11 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc59812f unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xcc712820 log_start_commit +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc97f58e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0xcca88db9 netif_napi_del +EXPORT_SYMBOL vmlinux 0xccb820c3 journal_load +EXPORT_SYMBOL vmlinux 0xccf10a23 fasync_helper +EXPORT_SYMBOL vmlinux 0xcd2c1324 da903x_query_status +EXPORT_SYMBOL vmlinux 0xcd2cefe8 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xcd607ce6 dev_set_mtu +EXPORT_SYMBOL vmlinux 0xcd72af68 security_path_link +EXPORT_SYMBOL vmlinux 0xcd9ba6c8 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0xcdb60446 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xcdba7a2e x86_hyper +EXPORT_SYMBOL vmlinux 0xcdd00d17 sg_miter_stop +EXPORT_SYMBOL vmlinux 0xcdd28ba2 sk_free +EXPORT_SYMBOL vmlinux 0xcdd2d05d generic_removexattr +EXPORT_SYMBOL vmlinux 0xcdfc8382 acpi_enable_gpe +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 0xce6de9ec bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xce87b090 ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0xcebfb98a netdev_set_master +EXPORT_SYMBOL vmlinux 0xcec4c6d8 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0xceca1d6e xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xcee7166d sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xceecfd70 mempool_free +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error +EXPORT_SYMBOL vmlinux 0xcf1e9e56 lease_modify +EXPORT_SYMBOL vmlinux 0xcf20591f sock_create_lite +EXPORT_SYMBOL vmlinux 0xcf49fb02 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xcf61b9a8 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcf98cdc0 agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0xcf9f0102 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0xcfad4010 netif_receive_skb +EXPORT_SYMBOL vmlinux 0xcfae0177 tty_unthrottle +EXPORT_SYMBOL vmlinux 0xcfb3b010 dev_disable_lro +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfdcba54 slow_work_cancel +EXPORT_SYMBOL vmlinux 0xcfe43b1d napi_frags_finish +EXPORT_SYMBOL vmlinux 0xcfea4cdf ida_destroy +EXPORT_SYMBOL vmlinux 0xcffadc9a ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xcfff280b cdrom_open +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd01b4b36 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xd01bd585 dget_locked +EXPORT_SYMBOL vmlinux 0xd0603560 tcp_proc_register +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd08235c3 hippi_change_mtu +EXPORT_SYMBOL vmlinux 0xd0947e16 __bread +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0c74609 sock_rfree +EXPORT_SYMBOL vmlinux 0xd0d0aa72 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xd0d65281 skb_push +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 0xd10105d9 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0xd13c93fd generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xd13fd7ca seq_release +EXPORT_SYMBOL vmlinux 0xd14204d9 spi_release_transport +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd14f6a2e d_move +EXPORT_SYMBOL vmlinux 0xd1890516 search_binary_handler +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd19c2d72 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xd1e75501 mapping_tagged +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd204851e skb_copy_expand +EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel +EXPORT_SYMBOL vmlinux 0xd23958bf xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xd2420557 get_sb_single +EXPORT_SYMBOL vmlinux 0xd24d46cc mmc_unregister_driver +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 0xd27ec46e dev_change_flags +EXPORT_SYMBOL vmlinux 0xd2865fee tty_set_operations +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match +EXPORT_SYMBOL vmlinux 0xd2ac6ecc pnp_get_resource +EXPORT_SYMBOL vmlinux 0xd2c2d8f1 blk_complete_request +EXPORT_SYMBOL vmlinux 0xd2c5f5e3 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xd2c6038d vfs_mkdir +EXPORT_SYMBOL vmlinux 0xd2f1d4a2 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0xd330ce45 kobject_set_name +EXPORT_SYMBOL vmlinux 0xd337b902 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xd34fe088 __napi_complete +EXPORT_SYMBOL vmlinux 0xd37506bd __elv_add_request +EXPORT_SYMBOL vmlinux 0xd38300b3 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd39b7723 dm_dirty_log_type_unregister +EXPORT_SYMBOL vmlinux 0xd3af979c memdup_user +EXPORT_SYMBOL vmlinux 0xd3c8bda4 nonseekable_open +EXPORT_SYMBOL vmlinux 0xd4079e5b kobject_del +EXPORT_SYMBOL vmlinux 0xd42fb588 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xd43bb683 mnt_unpin +EXPORT_SYMBOL vmlinux 0xd440cc69 tty_mutex +EXPORT_SYMBOL vmlinux 0xd44d43e7 ps2_handle_response +EXPORT_SYMBOL vmlinux 0xd46dfe55 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xd4994601 blk_init_queue +EXPORT_SYMBOL vmlinux 0xd4abeeeb tty_port_put +EXPORT_SYMBOL vmlinux 0xd4b6e9ea dev_get_drvdata +EXPORT_SYMBOL vmlinux 0xd4b73fb4 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0xd4c76726 input_register_handler +EXPORT_SYMBOL vmlinux 0xd4e3d65d ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd5399596 inet_select_addr +EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out +EXPORT_SYMBOL vmlinux 0xd56b6a17 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xd56e5509 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xd57f8789 iommu_num_pages +EXPORT_SYMBOL vmlinux 0xd5ae5c2b agp_unbind_memory +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5cb5022 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xd5de6822 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0xd5fe17de jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xd6088cdd kset_unregister +EXPORT_SYMBOL vmlinux 0xd6147ae2 up_read +EXPORT_SYMBOL vmlinux 0xd6249d5f padata_do_parallel +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd6764ec4 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xd67b0344 pci_fixup_device +EXPORT_SYMBOL vmlinux 0xd681f6e2 tcf_hash_search +EXPORT_SYMBOL vmlinux 0xd6a27fee input_get_keycode +EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xd6ab077c input_allocate_device +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6c55c42 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xd6c96a3b scsi_device_get +EXPORT_SYMBOL vmlinux 0xd6ccdb34 set_blocksize +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6f2191d dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xd6fbc1af kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xd6ffa425 ilookup +EXPORT_SYMBOL vmlinux 0xd7150a4d _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd78b1a7b jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7b671a0 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xd7bc73f1 scsi_scan_host +EXPORT_SYMBOL vmlinux 0xd7cc2d11 block_prepare_write +EXPORT_SYMBOL vmlinux 0xd7d6fc25 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd800bda7 simple_dir_operations +EXPORT_SYMBOL vmlinux 0xd83a8aa1 skb_trim +EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user +EXPORT_SYMBOL vmlinux 0xd874e6a8 vfs_link +EXPORT_SYMBOL vmlinux 0xd87b425e serio_rescan +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8b4a34f vfs_rename +EXPORT_SYMBOL vmlinux 0xd8bcd3b6 filp_close +EXPORT_SYMBOL vmlinux 0xd8bfd882 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0xd8e04af5 neigh_table_init +EXPORT_SYMBOL vmlinux 0xd8e236d9 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xd8e440ce mdiobus_register +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8f92d1f path_put +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd90cfcc1 acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0xd9182d26 journal_restart +EXPORT_SYMBOL vmlinux 0xd9205ab7 release_firmware +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd94322e7 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0xd96a0efb unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9da22a4 swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0xd9e09163 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xd9e1d753 serio_reconnect +EXPORT_SYMBOL vmlinux 0xd9efc921 tty_port_init +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda0eb300 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda276d43 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0xda44e67b locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xda4629e4 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xda524874 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xda5568ab set_bh_page +EXPORT_SYMBOL vmlinux 0xda562818 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xda5661a3 add_wait_queue +EXPORT_SYMBOL vmlinux 0xda62051f __f_setown +EXPORT_SYMBOL vmlinux 0xda64a561 scsi_block_when_processing_errors +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 0xdb3c113e phy_start_interrupts +EXPORT_SYMBOL vmlinux 0xdb5587e3 blkdev_fsync +EXPORT_SYMBOL vmlinux 0xdb6544a1 dm_dirty_log_type_register +EXPORT_SYMBOL vmlinux 0xdb6ad2f5 sk_dst_check +EXPORT_SYMBOL vmlinux 0xdba98444 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +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 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc4cbb83 get_phy_device +EXPORT_SYMBOL vmlinux 0xdc532896 dm_exception_store_type_register +EXPORT_SYMBOL vmlinux 0xdc8acf54 i2c_transfer +EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family +EXPORT_SYMBOL vmlinux 0xdca894eb bio_integrity_trim +EXPORT_SYMBOL vmlinux 0xdca97978 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdce1ce59 remove_proc_entry +EXPORT_SYMBOL vmlinux 0xdd331c4f scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xdd477169 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0xdd7324ad pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xdd774f95 scsi_execute +EXPORT_SYMBOL vmlinux 0xdd794986 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0xddc51fd5 i2c_master_send +EXPORT_SYMBOL vmlinux 0xde0bdcff memset +EXPORT_SYMBOL vmlinux 0xde2c5e9b thermal_zone_unbind_cooling_device +EXPORT_SYMBOL vmlinux 0xde472d70 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdecf6cb2 simple_fill_super +EXPORT_SYMBOL vmlinux 0xded59a8f invalidate_inodes +EXPORT_SYMBOL vmlinux 0xdeee8b96 dcache_lock +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf5f5b67 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf620eac input_inject_event +EXPORT_SYMBOL vmlinux 0xdf89dab8 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf988355 set_pages_array_wc +EXPORT_SYMBOL vmlinux 0xdfb34777 bio_clone +EXPORT_SYMBOL vmlinux 0xdfbc2377 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xdfbc6722 flush_old_exec +EXPORT_SYMBOL vmlinux 0xdfbfc498 journal_forget +EXPORT_SYMBOL vmlinux 0xdfc2b141 generic_permission +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdff29546 dev_addr_del +EXPORT_SYMBOL vmlinux 0xe01be192 follow_up +EXPORT_SYMBOL vmlinux 0xe05d74ae splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xe06e4199 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe08ec1bb llc_add_pack +EXPORT_SYMBOL vmlinux 0xe098cd4f tcf_register_action +EXPORT_SYMBOL vmlinux 0xe0a87b9e d_add_ci +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 0xe0bda947 d_alloc_root +EXPORT_SYMBOL vmlinux 0xe0c315fc kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xe0dcb911 smp_call_function_many +EXPORT_SYMBOL vmlinux 0xe0e0a719 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0xe0e64dd9 bio_integrity_clone +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 0xe15c4216 nla_reserve +EXPORT_SYMBOL vmlinux 0xe16b719f dev_uc_del +EXPORT_SYMBOL vmlinux 0xe16e34a7 blk_start_request +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1904847 pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0xe1d9af59 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0xe1dad742 input_event +EXPORT_SYMBOL vmlinux 0xe1e19b72 kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0xe2269caa sock_wfree +EXPORT_SYMBOL vmlinux 0xe2382c81 submit_bh +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24050c7 scnprintf +EXPORT_SYMBOL vmlinux 0xe243824b udp_disconnect +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe274106b fb_is_primary_device +EXPORT_SYMBOL vmlinux 0xe28f5fca i2c_add_adapter +EXPORT_SYMBOL vmlinux 0xe29b04e9 acpi_set_firmware_waking_vector64 +EXPORT_SYMBOL vmlinux 0xe29db090 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xe2a2d20e pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xe2a72250 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0xe2ca714f default_file_splice_read +EXPORT_SYMBOL vmlinux 0xe2d1419c dm_exception_store_destroy +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2f9cc31 ip_fragment +EXPORT_SYMBOL vmlinux 0xe35500cc tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xe359c8be tcf_hash_create +EXPORT_SYMBOL vmlinux 0xe393a680 tcp_prot +EXPORT_SYMBOL vmlinux 0xe3a035c1 unregister_snap_client +EXPORT_SYMBOL vmlinux 0xe3b0192b vscnprintf +EXPORT_SYMBOL vmlinux 0xe3c44aa9 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xe3e12008 __first_cpu +EXPORT_SYMBOL vmlinux 0xe3f79872 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0xe406fea7 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xe41db609 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe449ab1a pipe_lock +EXPORT_SYMBOL vmlinux 0xe456d99a __init_rwsem +EXPORT_SYMBOL vmlinux 0xe47003ff security_path_mkdir +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe4b963c2 pcim_iounmap +EXPORT_SYMBOL vmlinux 0xe4c6f71d x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0xe510c70c __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe5148242 new_inode +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe527f6a4 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0xe52947e7 __phys_addr +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe53353b4 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0xe5515972 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe58565e5 agp_enable +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5a025d8 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xe5a1617b seq_path +EXPORT_SYMBOL vmlinux 0xe5a1fa2d dquot_disable +EXPORT_SYMBOL vmlinux 0xe5ae244d fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xe5b655ba eth_rebuild_header +EXPORT_SYMBOL vmlinux 0xe5bb418b xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xe5bc1098 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5deeb1e idr_for_each +EXPORT_SYMBOL vmlinux 0xe5ebd88a test_set_page_writeback +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5efc81f bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xe60ae4e5 vmtruncate +EXPORT_SYMBOL vmlinux 0xe60f04ad inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xe62c529c skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xe656a11d netdev_class_create_file +EXPORT_SYMBOL vmlinux 0xe68f566d inet_sendmsg +EXPORT_SYMBOL vmlinux 0xe690b8fd __ipv6_isatap_ifid +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe69c1b5a agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0xe6bc2f7a __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xe6e7f862 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xe6fb675c node_to_cpumask_map +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe71755be napi_complete +EXPORT_SYMBOL vmlinux 0xe73873bb udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xe74cf0a7 mempool_destroy +EXPORT_SYMBOL vmlinux 0xe7686cfc padata_add_cpu +EXPORT_SYMBOL vmlinux 0xe77f6f14 seq_write +EXPORT_SYMBOL vmlinux 0xe7920d4f abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xe7a31311 pci_match_id +EXPORT_SYMBOL vmlinux 0xe7ac366a km_policy_notify +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7d6e562 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xe7e62bd8 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xe7e8dc16 generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node +EXPORT_SYMBOL vmlinux 0xe842d68a generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xe84562f2 km_state_notify +EXPORT_SYMBOL vmlinux 0xe8583614 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe89e1c97 slow_work_register_user +EXPORT_SYMBOL vmlinux 0xe8a3605f acpi_processor_set_thermal_limit +EXPORT_SYMBOL vmlinux 0xe8bd518f udp_proc_register +EXPORT_SYMBOL vmlinux 0xe8dbafef __next_cpu +EXPORT_SYMBOL vmlinux 0xe8e617ec ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0xe8f62e9d security_task_getsecid +EXPORT_SYMBOL vmlinux 0xe909ce03 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe93cbc56 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0xe98250d6 get_sb_nodev +EXPORT_SYMBOL vmlinux 0xe988466d devm_ioremap +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe9a361fa unlock_super +EXPORT_SYMBOL vmlinux 0xe9aa9506 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xe9b8d646 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0xe9bc2c01 pci_pme_active +EXPORT_SYMBOL vmlinux 0xe9d8118b pci_dev_get +EXPORT_SYMBOL vmlinux 0xe9efbaf7 ppp_input_error +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea08a6e8 blk_unplug +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea147363 printk +EXPORT_SYMBOL vmlinux 0xea15497f nobh_write_end +EXPORT_SYMBOL vmlinux 0xea2d8889 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xea412d4c ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xea75750b nlmsg_notify +EXPORT_SYMBOL vmlinux 0xea8fa6f1 task_nice +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xea92cb32 request_key_async +EXPORT_SYMBOL vmlinux 0xea94c268 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0xea9d3f81 inet_stream_connect +EXPORT_SYMBOL vmlinux 0xeaa74ae7 dquot_release +EXPORT_SYMBOL vmlinux 0xeac441fa inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xeac73847 irq_regs +EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0xeb4b56d6 udp_ioctl +EXPORT_SYMBOL vmlinux 0xeb6b20fc register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xeb7af1ef netlink_unicast +EXPORT_SYMBOL vmlinux 0xeb7df54a xfrm_lookup +EXPORT_SYMBOL vmlinux 0xeb82f31e unlock_new_inode +EXPORT_SYMBOL vmlinux 0xeb861e68 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n +EXPORT_SYMBOL vmlinux 0xeb937fd1 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp +EXPORT_SYMBOL vmlinux 0xebce9c8f dquot_quota_on +EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull +EXPORT_SYMBOL vmlinux 0xebd55e86 scsi_print_result +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec54f223 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0xec9c7700 swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0xeca85352 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0xecab3146 pnp_possible_config +EXPORT_SYMBOL vmlinux 0xecb98d98 block_write_end +EXPORT_SYMBOL vmlinux 0xeccae092 put_io_context +EXPORT_SYMBOL vmlinux 0xecd6d51b ilookup5 +EXPORT_SYMBOL vmlinux 0xecf811c8 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xecffb387 bdput +EXPORT_SYMBOL vmlinux 0xed17826f skb_find_text +EXPORT_SYMBOL vmlinux 0xed1ca29d keyring_search +EXPORT_SYMBOL vmlinux 0xed2297f0 scsi_block_requests +EXPORT_SYMBOL vmlinux 0xed3e299c kernel_getsockname +EXPORT_SYMBOL vmlinux 0xed483238 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xed547202 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xed8c3a8e skb_checksum_help +EXPORT_SYMBOL vmlinux 0xed8c53ac _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedd6c22b netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0xee084529 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xee0d27df i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xee19fa9c tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0xee2bc709 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee3c24f2 scsi_init_io +EXPORT_SYMBOL vmlinux 0xee42ba9e jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0xee62ee21 md_done_sync +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee93c47d uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xee9a3793 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb64b66 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0xeed43d53 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0xeedc10b7 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xeeebae0a mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0xeeede9ae thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0xef12f82b jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0xef260f9a dev_gro_receive +EXPORT_SYMBOL vmlinux 0xef2aa9bc bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xef2ffba2 get_disk +EXPORT_SYMBOL vmlinux 0xef4158c4 acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0xef50a955 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0xef62e85f mempool_alloc +EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool +EXPORT_SYMBOL vmlinux 0xef75e23a fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xef7776a0 d_obtain_alias +EXPORT_SYMBOL vmlinux 0xef8c6571 bd_set_size +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefc0239d tty_hangup +EXPORT_SYMBOL vmlinux 0xefc262f6 thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0xefd3dcc2 user_revoke +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefde0425 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xefe9feaa dma_spin_lock +EXPORT_SYMBOL vmlinux 0xeff691dd ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0034db9 free_netdev +EXPORT_SYMBOL vmlinux 0xf0240a4f jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0xf029d3ec xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xf032e195 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xf045bde2 pci_find_capability +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf079b44f phy_scan_fixups +EXPORT_SYMBOL vmlinux 0xf090316a ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0xf09c7f68 __wake_up +EXPORT_SYMBOL vmlinux 0xf09d3f84 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0xf0ae02e1 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xf0e2d255 nobh_write_begin +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xf116d4b5 copy_in_user +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf13957f4 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0xf14337ca vfs_writev +EXPORT_SYMBOL vmlinux 0xf15881a8 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf17fff5e swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1af4fe4 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0xf1b3ebae km_new_mapping +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf2013569 __free_pages +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf24ab853 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xf24fcd01 deactivate_super +EXPORT_SYMBOL vmlinux 0xf2606766 dev_addr_add +EXPORT_SYMBOL vmlinux 0xf26b10bc __ip_select_ident +EXPORT_SYMBOL vmlinux 0xf2820007 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xf2885ccd do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2a1fdf7 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0xf2bc5c4f rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0xf304c739 skb_gso_segment +EXPORT_SYMBOL vmlinux 0xf3114fcc mfd_remove_devices +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name +EXPORT_SYMBOL vmlinux 0xf330e1c3 i2c_clients_command +EXPORT_SYMBOL vmlinux 0xf333a2fb _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf342c7ee scsi_allocate_command +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf3823842 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3c3cebc kmem_cache_size +EXPORT_SYMBOL vmlinux 0xf3d52f69 lock_fb_info +EXPORT_SYMBOL vmlinux 0xf3d8287e open_by_devnum +EXPORT_SYMBOL vmlinux 0xf4130c43 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xf436d7cc scsi_prep_return +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf452282b journal_clear_err +EXPORT_SYMBOL vmlinux 0xf4528073 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0xf453b9e5 skb_seq_read +EXPORT_SYMBOL vmlinux 0xf46b87da generic_read_dir +EXPORT_SYMBOL vmlinux 0xf4863880 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf495a853 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4c56b5a kick_iocb +EXPORT_SYMBOL vmlinux 0xf4dceb65 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0xf4ec6a63 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xf4f0c147 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f24b69 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xf4f3a0a5 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xf506b3cc splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0xf510ca87 cfb_imageblit +EXPORT_SYMBOL vmlinux 0xf51aca96 __scsi_put_command +EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xf53b67ba set_user_nice +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n +EXPORT_SYMBOL vmlinux 0xf559b657 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xf561d236 do_SAK +EXPORT_SYMBOL vmlinux 0xf57803bc tty_kref_put +EXPORT_SYMBOL vmlinux 0xf58471cc scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xf59df0ec elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xf5a68ccb bio_copy_kern +EXPORT_SYMBOL vmlinux 0xf5b02d86 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf6052b5e devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xf609aa30 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0xf6304050 inode_setattr +EXPORT_SYMBOL vmlinux 0xf632d0d6 pci_scan_slot +EXPORT_SYMBOL vmlinux 0xf63fea43 xfrm_state_add +EXPORT_SYMBOL vmlinux 0xf64fc1c5 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0xf651c57d elv_unregister_queue +EXPORT_SYMBOL vmlinux 0xf66b59f8 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0xf670264a inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xf67feff8 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xf6864216 bio_pair_release +EXPORT_SYMBOL vmlinux 0xf68d5ff3 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xf69ec221 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0xf6a180a8 make_EII_client +EXPORT_SYMBOL vmlinux 0xf6a45227 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6e531a5 inode_get_bytes +EXPORT_SYMBOL vmlinux 0xf6e93d19 security_path_symlink +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf70f3e79 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0xf72f536c pcie_port_service_register +EXPORT_SYMBOL vmlinux 0xf7454fe8 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xf74ddce3 nf_getsockopt +EXPORT_SYMBOL vmlinux 0xf7506c41 __any_online_cpu +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf761c2c8 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xf77021d7 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf790c37f scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0xf792ba43 dm_snap_cow +EXPORT_SYMBOL vmlinux 0xf7960a54 llc_sap_find +EXPORT_SYMBOL vmlinux 0xf7b468c6 handle_sysrq +EXPORT_SYMBOL vmlinux 0xf7bc10db jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xf7c53374 schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0xf7d5f292 mark_info_dirty +EXPORT_SYMBOL vmlinux 0xf7e5cbf9 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0xf800b4ac abx500_event_registers_startup_state_get +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 0xf8591627 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0xf87aa9f8 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0xf88b9153 phy_find_first +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf88ececa ip_getsockopt +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf89843f9 schedule_work +EXPORT_SYMBOL vmlinux 0xf8ba85d4 tc_classify_compat +EXPORT_SYMBOL vmlinux 0xf8c5b9ac gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xf8d62a2a remove_from_page_cache +EXPORT_SYMBOL vmlinux 0xf8dbd87f scsi_scan_target +EXPORT_SYMBOL vmlinux 0xf8e1793b xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xf8e4893b blk_end_request +EXPORT_SYMBOL vmlinux 0xf8f2506a revalidate_disk +EXPORT_SYMBOL vmlinux 0xf8fd4172 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0xf9013fe6 register_sysctl_table +EXPORT_SYMBOL vmlinux 0xf901ae0b key_alloc +EXPORT_SYMBOL vmlinux 0xf955d317 simple_setattr +EXPORT_SYMBOL vmlinux 0xf994c6c4 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xf996be13 init_net +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9bb08bf vfs_read +EXPORT_SYMBOL vmlinux 0xf9bbb02e sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xf9cfd689 vfs_llseek +EXPORT_SYMBOL vmlinux 0xf9dc8d32 phy_attach_direct +EXPORT_SYMBOL vmlinux 0xf9fd0af1 compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xfa054162 lock_rename +EXPORT_SYMBOL vmlinux 0xfa120552 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0xfa3ed3f8 mmc_release_host +EXPORT_SYMBOL vmlinux 0xfa47e35a pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0xfa5b26b4 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0xfa7cca6a vlan_gro_frags +EXPORT_SYMBOL vmlinux 0xfa88737a bioset_create +EXPORT_SYMBOL vmlinux 0xfa9e6099 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xfab44ba7 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xfad90f7b phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb15d860 phy_sanitize_settings +EXPORT_SYMBOL vmlinux 0xfb2e4237 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfb83e58f d_validate +EXPORT_SYMBOL vmlinux 0xfb9c4d3e agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbd1c3a2 vfs_getattr +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfbe5210b tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc120921 dquot_free_inode +EXPORT_SYMBOL vmlinux 0xfc2cb990 thaw_super +EXPORT_SYMBOL vmlinux 0xfc354f56 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc442ce7 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xfc6b2e75 blkdev_put +EXPORT_SYMBOL vmlinux 0xfc88b24a pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd18b261 pci_disable_msix +EXPORT_SYMBOL vmlinux 0xfd47d732 __devm_release_region +EXPORT_SYMBOL vmlinux 0xfd5c9651 uart_match_port +EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfd861b4f __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xfd9451ac elv_rq_merge_ok +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 0xfdc22d45 arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0xfdc31221 textsearch_destroy +EXPORT_SYMBOL vmlinux 0xfdda2fa2 framebuffer_release +EXPORT_SYMBOL vmlinux 0xfde24c82 dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe047ce6 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids +EXPORT_SYMBOL vmlinux 0xfe2dcbdc generic_write_sync +EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks +EXPORT_SYMBOL vmlinux 0xfe5a2eb0 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe9e12dd mb_cache_shrink +EXPORT_SYMBOL vmlinux 0xfec1763d alloc_pages_current +EXPORT_SYMBOL vmlinux 0xfec2f4bd arp_create +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfec68f0b napi_reuse_skb +EXPORT_SYMBOL vmlinux 0xfed53143 dq_data_lock +EXPORT_SYMBOL vmlinux 0xfedbcfde block_truncate_page +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfee506fe dev_get_flags +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xfeffd48b tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xff0b6e7d blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xff18d32f writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xff1e3da8 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff26d4f6 freeze_bdev +EXPORT_SYMBOL vmlinux 0xff4a2cb3 input_mt_create_slots +EXPORT_SYMBOL vmlinux 0xff507232 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int +EXPORT_SYMBOL vmlinux 0xff97513d netif_rx_ni +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 0xffba08c3 ipv4_specific +EXPORT_SYMBOL vmlinux 0xffc47e0f ps2_init +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffd71f9a consume_skb +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 0x094ac8f4 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x111de0a4 kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1130ea28 gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12d1b23b kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e4580bb kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1f186802 kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x21667c40 kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x22527129 kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2266787f kvm_set_rflags +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 0x272de12f __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x288873c9 __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e92867f __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x31153045 kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317d479b kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x319f07f9 kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3617a8ec kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3c28e1eb kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3e6cafa2 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406813bc __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x40ffe5de kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x45d7d41c gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4a7cbe69 is_error_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4af0f05a kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4cacf9e4 kvm_report_emulation_failure +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4d56e2a8 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x502b1334 kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x50fc7ecc kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5102cf94 __tracepoint_kvm_nested_vmexit_inject +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 0x57a04836 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x591825c2 kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x59269e20 emulator_write_emulated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5a13bee9 kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5affceb8 __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5c83e3ab kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5ce392ab kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5e34277f kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6a5b013d kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6dc67447 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6dca9ff3 kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x75c855a8 kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x84ebeb74 kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x85b5e995 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x87067206 kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x903a52d2 kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9227f4b3 __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x94b79753 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9558c982 kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x994c36a1 kvm_requeue_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 0x9f8291f2 kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa0d634d1 kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa0eb2f03 gfn_to_memslot_unaliased +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa12b5985 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa361bc65 kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa4081f0a is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xac1df954 kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xacda0804 kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xae4c5734 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb1315589 kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb2336448 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb34a234b kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb4495763 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb861ddd5 kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb9638d72 kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb9952a0c kvm_vcpu_init +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 0xbda26d0c kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbeed968a kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbf53720e kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc363a840 kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcebeb2c4 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcecd28b4 __tracepoint_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcf68e6ec kvm_cpu_get_interrupt +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 0xd47bb35c kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd57dc0e8 kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd70fe51c kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7be16af __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdb91c1cf kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe4605d86 emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe540941e kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe700117a kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf5d9c221 kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xface9e53 fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfc962fae kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfe83411b kvm_emulate_hypercall +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 0xde6aca7f async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x2dea42fa async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xf1b02bbf async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x64c625ad async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x7c92215d async_raid6_2data_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 0x272bad2c cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x2f25b808 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x3f14e937 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x4a0a6334 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x6d3ca9ee cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x70ed0ce0 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xde4cffb0 cryptd_ahash_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 0x014548fd ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x01d78992 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1494dce3 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2da7b4ab ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x35cb06e1 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x53526708 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5817bbe0 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa6258973 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa78f2119 ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb89c6f5b ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc76b2dfd ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xcbf30f19 ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xda938d9e ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xeaa20947 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4383e5ed btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4d39458d btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7f4445a9 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x8bcf59e0 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xb5894d82 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xb7edf11e btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xbce9125a btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xfd5564ed btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x025b3a5d tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x176964ff tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x24574cfd tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x340ca96c tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3d220835 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3de4de6c tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3eb444d2 tpm_dev_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x499b98fb tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4a87dbe8 tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4e8b85e0 tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x53d5264e tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x5f6e1902 tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x96edd48a tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9ee67120 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9f34b8c6 tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xab4aaaaf tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xabb02014 tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xbc752f2a tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc95df380 tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe4a29391 tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf9a7b88c tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xfcce0a3f tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xfdf6c416 tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x41226efc tpm_bios_log_setup +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0xc95d3fb0 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 0x4b49d1ba amd64_get_dram_hole_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x02b6da3d edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1c423bb6 edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1ce984fb edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2189e64f edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x21da6e9d edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x23a3b993 edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x260db34c edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x299be5e5 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x34598682 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x64b529ce edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6619a2f5 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69d0a76d 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 0x70a51c23 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7f204b2d edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8178030b edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x877656a9 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x881de15c edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8ccd68b2 edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8e88c575 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xaf5167c3 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbb570321 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xeab19739 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf163b756 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf46592f7 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0f0ba55e ii_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x14878009 amd_report_gart_errors +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x1823885a amd_register_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x4b01887d pp_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x7509830f to_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x955c1f76 amd_decode_nb_mce +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xb98537cb rrrr_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xc2e765d2 amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xd0f094a0 ext_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xe6ff7e0c ll_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xf8dec080 tt_msgs +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xd3bd9300 cs5535_gpio_isset +EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xe07c0954 cs5535_gpio_clear +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xce581744 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xdee77ea6 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x1e09e1bc drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xcab46c5a 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 0x03368b5e hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1a54a837 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1ba78014 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1decfdaa hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x27c2bc49 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x33cd73dc hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x38421b87 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x474341ba hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x476704f0 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4bae1b82 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4f5e3af9 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6bdee2e0 hidinput_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 0x82f85c54 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8647345a hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x951d842e hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x985004ed hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9f97bdde hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa62f0c08 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0xaf2c1c5e hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xba71608f hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xca4d16b6 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe54d24f6 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xebfff2d8 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xffe6b103 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0xf0a08641 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x47e6db00 usbhid_submit_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x604416d6 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x7c110d6a usbhid_wait_io +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xef29f8e1 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x2ec2879e lis3_dev +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x33d87e0b lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x3c698f65 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x8f4b2492 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xc9e28b10 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0xe0dfc398 nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x0e7fb67d i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xc221bcd4 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xb920a81b hpsb_config_rom_ip1394_remove +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xd5a09045 hpsb_config_rom_ip1394_add +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 0x01bc03d2 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1e0ca074 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2d1126a4 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x5db1309f wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6f29a668 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x89879a0a wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa4c2f2bc wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xcf2802d8 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe1bb263a wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe9a23f1e wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf66d49dd wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xfc053b60 wm9705_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 0x0c8d462e gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0dc8aa70 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2bc52574 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3cc37c83 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x55bb80d2 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x569db3c1 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x684fc5cb gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7e7c7e8a gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8708b6ab gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x881a064b gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xab4d2807 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb751e4b5 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc85c190a gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc8a06c84 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xcf7e0cbc gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xcff71179 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd48b261a gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xecbf34c5 gigaset_m10x_input +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 0x3bfd9f75 ir_raw_event_store_edge +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 0x9e3779d6 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xd7150a97 ir_raw_event_store +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 0x0a98b293 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x1bedf042 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x27f3b7da saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x2bdc28cb saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x4a73fc2c saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x51c426a3 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x6ca0c763 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x71554440 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xab326519 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcbafc019 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcbcd2bfe saa7146_wait_for_debi_done +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_vv 0x01c90f3b saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x1d87fa84 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x4b3badb6 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x5d9c5711 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xa30edc80 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xa7477425 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xdca0aaef saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x66c8c333 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x0ffdd469 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x57c22df4 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x83d0e7ec tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x64bb7d00 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xf2b92b3c tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x4fb37119 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x6bbb1b92 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x8a2b4333 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x36e78a56 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xe55c14c8 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x77080e18 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0374c00a mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0bf851e5 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x199e6b65 ir_mantis +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x1ad090ff gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x29c16995 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x599534e1 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5b3428e1 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x7181817e mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x789d44e3 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x7e01640e mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x81dd9e8d mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x971aea3c mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x984035b7 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc29dcf48 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xcdf9b99e mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xdb94b0e6 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xedc9709d mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf328dff9 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x18c433cb sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1b9a3593 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1ba5e919 smscore_get_board_id +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 0x38bba0b5 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x3faf00fc sms_board_lna_control +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 0x4f356a89 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x619c0dc9 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6c0c3a19 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x852cefd8 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x8abb7e2d smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x8f0a57a8 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xcaa6cc0e smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xcc535c72 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd7e03273 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xddcd7817 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xdf94f21c smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xe00bc1cb smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xedf7480a smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xfe20f7a2 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x17bfe84b ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x204206c9 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7c01eceb ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x8d4e528f ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xab016719 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xb001ad97 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xfbd6a131 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x287ec1e2 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x3d61be59 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x6063ede3 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x68ee5c2f cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x79a965e2 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x9ba69d48 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xaacb8b02 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xe4363496 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xe636b8f6 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xe69e339d cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xfc69775f cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0xa87a98b9 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x0487ba1e em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x391d4234 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 0x96d14e2e em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x97623138 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xd03c0c3b em28xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xd15c5b05 em28xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x50578ba8 saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x82f98530 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xb91ed9b8 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xbfc5daa3 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xf4fadb09 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x4656a730 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x4e3c913c 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 0xc577665f v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xcd6d1f7e v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xd72f445a v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xddcd1cba 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 0xe47d7c76 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 0x01f089fd v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x0f5dfe41 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x2eaa8bc1 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x450cb8ed v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x474636cc v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x595b8626 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x686c31c7 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x8c56db97 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x93d8b11b v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x991124f0 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9bebce0f v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xca31f8f2 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xfddb88d4 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xfeb8de0c v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x044f472c videobuf_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x153cbb07 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1893add1 videobuf_cgmbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1f56191a videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2a646e3f videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x39e2e2be videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x446e06df videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x54e98274 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5965fcfb videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x62359daa videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x748bced7 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x75cf5b4c videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x78a5f0c4 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7cc33747 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x84173c53 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8d50654c videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9f2a35e4 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa4a864a1 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa57d3dcc videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb2f148b1 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc06c8d70 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd290f91d __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe402bfb9 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf5ee8dcc videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfa9846a0 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x82bb976a videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x853d6071 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xc97fb8bf videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x0216837d videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x2a26377a videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x670581b7 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x877a026d 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 0x9ba08aba videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa38faed2 videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xae61ad5f videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xbc89da84 videobuf_sg_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xc0b1014e videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xdf06246b videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe6a2d607 videobuf_sg_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xeb9d2495 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x17e7982e videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x3b5e5410 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x4eada647 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x132f3b1f v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x227bc127 v4l2_event_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x23ff301c v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x246ec39e v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x2520c11e v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x51ea3e7e v4l2_event_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x63220abc v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x7d3302f8 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x803eefa3 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x89ba97d3 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x89d0742c v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x8d658c81 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa9975136 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xafae44f1 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xbf3c7d2a v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xebf49e96 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xfbf2bf9c v4l2_event_free +EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xff05d680 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x1335da14 i2o_dma_map_single +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 0x699b0e38 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x9a87a87e i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa29f4baf i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa4c56157 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xb8385afb i2o_pool_free +EXPORT_SYMBOL_GPL drivers/mfd/mc13783-core 0x45e08bab mc13783_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x145b88b4 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x1f4a7de2 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x20d7513d pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x23dd3c0e pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x349a9215 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x410ca132 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4416093e pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6fb0b35f pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xbdbdc258 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xcf7165cf pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xf3a0e7d0 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x73324b18 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x7c303633 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x441cc690 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x568c561b pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x7608e193 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xbc978709 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xc0153902 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x13f4207e sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x3ef85d4f sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x6c077af7 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x94abe9ac sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xc1ab4449 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x647aa20c ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x04167b8b wm8400_block_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x3b8c565b wm8400_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x8e8514ae wm8400_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x9cbf7de7 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x2fa6a29d cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x31a03a37 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x453eda16 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xad312221 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/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 0x07d0aae1 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x706c86ba sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x82893d6c sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x8763bc7f sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb0a51da2 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc65d5b75 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x9ea7f148 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xb7bd0aeb cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xc8d7e21d cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x1cbd035c cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x4e88f41a cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xe3ba3737 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x2864e710 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x4217ba80 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xba998c9f cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xbfc1820c cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x41240b15 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x15277764 DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x08a37aee DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1a4b5fe8 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1e9dfe6e __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2455b89c register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x30cc32c4 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4292b2a7 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x51ad6c88 get_sb_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5ce2287c del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6e09f067 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8eddb9f2 parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa313111e default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa6b89538 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbc7508d1 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc411cbc4 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd8101a93 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd924db8c __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf6546d6b mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf8bd4f99 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfde9748f add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x517c5a2b register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x714e34ea deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x74983ecd add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xe77ba6b6 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x0530b996 nand_scan_tail +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x2eec9515 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x31c185ad nand_lock +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x3730d6fc nand_scan_ident +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x3d6acffa nand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x8278b8d0 nand_unlock +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xacd8794f nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xc86e36be sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x09fb4cb8 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xf5d6bfc1 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1a5cce29 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1bd38fdd ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x22a9e22b ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x270aa764 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x342303b6 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x386ba013 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x502a0eab ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x61523f74 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6d4ca268 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7a615b3a ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x87ad9554 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9d7fdd72 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc3cf06b3 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x024d81eb alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x0abd9631 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x1bac22be unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x25074413 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2da83d87 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x402b5d9c can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x71d89911 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x9651d946 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa01a9a0f can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xab426345 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb324e954 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xbda1deb5 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x483ab55a alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x5232e890 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x5ddab110 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x80b7c5df register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x01ac9be8 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x202be2a4 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x2c9442f6 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x7180dd9f macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x933960e8 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0039fd29 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x00c38e5b mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0762e5e2 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x10e52cd8 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x13a73f9e mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x178e77f3 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1f56fd5e mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x259e3101 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2c48f5a9 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x34d3639e mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3a3b2a5c mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4a02917a mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4edea22a mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x54dbec59 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5acde8c4 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5d328ea9 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5ef5ec96 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x60f593e1 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x63a78718 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x64b19b39 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x67fa2946 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6e98415e mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x764cf029 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x777b9d23 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x946adb00 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9a74978d mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9d5e0a74 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9e493142 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9f5e4858 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa655ae87 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa9ac0687 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xaf87ae67 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb9f07654 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbfcd3067 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc0cf4645 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc6832ae1 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xca148d8c mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcd047f7f mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcd0484cd mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd1389c87 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd4eb3f83 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd5ea24bf mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd7bddd0d __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd8f40ab5 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdd6060c8 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe0750bc4 mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe0e7c1eb mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe37d7bab mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe67b8932 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe7ce9ebf mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf15a39ad mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf2ba1ca7 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf5c75a72 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x4c3e7cb1 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xeda3f7f3 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x17861ef4 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x8838f6f2 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x8a2f68cc rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x92a1f827 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xd572dc28 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xe7076d6c generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1f81f4e4 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x26756a28 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x329197ae usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3615c049 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4901635e usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x50e20962 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x54b5bae1 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x55e443cd usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5863941f usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x599ac73c usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x75d743a8 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x90fe37a7 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9278bba8 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x97b65a6e usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9d1fae9b usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa410c04a usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb1ffa146 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbb012480 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc27cc8bb usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc479651e usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcd4d7981 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd4170981 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf0ee72ea usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfe8d30ff usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00d0f441 i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x136c8e99 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x14b3cd0d i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x206f411c i2400m_cmd_get_state +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x2a0cdc69 i2400m_set_init_config +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x36e5be06 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4131dbb3 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5087efd0 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5e390623 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x74f61a7b i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7a9481fe i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x94f35629 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa027fff0 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa36cc951 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb01cf812 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb1955b99 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xcc1904c9 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe35e81fc i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c1571c2 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x094c2c69 iwl_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x48c0d564 iwl_dealloc_bcast_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xea283cf7 iwl_alloc_bcast_station +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0cad07ba lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1c7d0047 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x24432dbb lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4bcf6488 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x571b6fc4 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x642c20c0 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6edfd411 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x76bf5d7a lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x79856c85 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x814a62a9 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb9d17fc7 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc1455f58 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc6ee6d03 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe6974179 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x159428b3 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x49ad5cea lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x6258f45c __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x65c69133 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xa68050ee 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 0xd5a6fdc5 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xee66672c lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xfb016210 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x33e28592 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x6f75e05f if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x07422e5f p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x14c11d62 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x4ea54ba1 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x5f9e0682 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x8588bb95 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa278d577 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa4bd3ae3 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xbc630b2a p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xe63a270b p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x04d9e85a rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x14aff4e3 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1e7f94de rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x201c530b rt2800_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x26ee6eb3 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2811a754 rt2800_init_rfcsr +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x492d66d5 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4ffb2a5f rt2800_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5f91fbf7 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7226e3f0 rt2800_mac80211_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7d7bdea9 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x81f75100 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x84c1311c rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9214c43b rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa08731ff rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa11f4cdf rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xabea60d0 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xac17e30a rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaf51ad51 rt2800_init_bbp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xca11cf16 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd0da483e rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe5b98a06 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xec3c74a2 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfe7b1363 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x19a9c273 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1e675267 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2c459a99 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2d35969d rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x40da697c rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x491eb407 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5b2a58d6 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x64516bb9 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x66950dde rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6926b5c5 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6b370fdb rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6faa1d55 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x781d5319 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x83afb938 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x882c1eda rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x96d1ef55 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb17197d2 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbc84b616 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc480f12a rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd8f4be62 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe94b4296 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xed0538c3 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfff91900 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x07d1a701 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x31b48786 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x3d4f8d5c rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x9b46bbc4 rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x9bb54f84 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xa5f19c49 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb989d9ae rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd57d2a0e rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xe6ddd0f0 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0eab1695 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x12358c16 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2469cedb rt2x00usb_vendor_request_large_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x45d8a7bc rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x58f5155a rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7a1cae3f rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7e352a68 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x810cd82c rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x908666cb rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9a535e6f rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa21a2f65 rt2x00usb_kill_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb3eda016 rt2x00usb_kick_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb5da1140 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc224deec rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc6d791c1 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdc93729b rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x194d8e46 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x81865169 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xd5ae7591 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x01c95179 wl1271_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x07c99986 wl1271_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x353ffb00 wl1271_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x49f21cd7 wl1271_register_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x76d3795e wl1271_unregister_hw +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x0e6a7055 acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0xbf7897ef acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x36c46782 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x48201771 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x5e74594a pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x49a0760b wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x51be5382 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xd4bc559b wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xed6e35c2 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xf11785da wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xf431f51c wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0xfcdc876f wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x52f3c764 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0f9eb640 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x101c4f04 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1b3c0271 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x279d12e1 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2857ba85 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2ff2c50d iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3efeb206 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4196f405 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4cf61bf7 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x53eec53b iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5aad5ae3 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5d1db4a1 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x60aae1c6 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6aa60898 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7025af51 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x71b69b38 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x76e42451 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7ec56816 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x83aad2e7 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x85a930f9 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x91cef1b8 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb5372d62 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb858404f iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xba21647a iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbef48a01 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc3aaf2be iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc737d2a3 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc9fd6395 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcb7556aa iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcfcbb48d iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd065e0a3 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd0c2768c __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd718ad2b iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd962fca0 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdf3ca15d iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe31dd27a iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf02a47c6 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf29a9d4f iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf651cbc9 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf721f44c iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfb7ef223 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfd8c1478 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x132bf68b iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x24b48c76 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2ae58e18 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3f3f0655 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4992c259 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x60a6e6d3 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x74415af6 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x84dee4e4 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8ea55347 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9b6f2ee4 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa1cb0a22 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb3419184 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbf42d728 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc36faf6a iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd40d3dde iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xeffda406 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x05ab2198 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x13a773e9 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2b43dcff sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2f2dfa24 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x34a7b75b sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3ec00ba0 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x470ce750 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4b377b9a sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4da370ae sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x54eed736 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5c7c9a4f sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x62b55ac4 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x63129fbd __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x67f7f6c0 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x95882f5f sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb3d82023 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb5101764 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcadd2908 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcd58ca1f sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd212a722 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdea38ef9 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe13817b7 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfab45628 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x0ab6a823 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x36bffc54 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x4e752803 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x6819b090 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x7eab8ce9 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xcb953479 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x0d15adbf scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x61d7f9c6 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6f1cff1b scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x913a8007 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x93da2bbe scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc375552b scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xdf5e1e19 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe5adea8e scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xff8d7b41 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x089ee439 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1876f7ab iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2d4d7791 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3c6fd467 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4027be7a iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x42bf4b35 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5fbe29cd iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x62bc15db iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x682d526f iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x721932f1 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x726aa7e2 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x760218b9 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7b291a88 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7ff10669 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x81369ced iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x97565709 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9858d02e iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc03f4f34 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc8b004d0 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcb570ac7 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcebbc673 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdd40cccc iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x0a57901e sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x447c4fae sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x465d0c52 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xc824fd62 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x79825413 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xafdbb79c srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xbdbf486b srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc8e5bec0 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xe1c70169 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 0x001feeeb comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3576b18c comedi_get_device_file_info +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x38ed3f65 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6afabbea comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x86fbaf14 comedi_pci_auto_unconfig +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 0x2d7c7546 ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x32e40f8f ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x3c86fee6 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x5f660b0e ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x81a9ea4c ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xd8dd9f1f 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 0x78f57b12 st_register +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x023ee82e tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x5713909c tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x8c6d9330 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x1683219d usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x2fcff281 usbip_stop_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x33670bec usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x35e158d5 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x38841de0 usbip_start_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x45de9c5f usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x58d2ae1a usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x6932ff4d usbip_task_init +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x7f3e6699 usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x854146b0 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xa861db67 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xa92e2ef4 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 0xdba39b1c usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe361a08b usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xec157b44 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/uio/uio 0x992fd31e uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0xb2afc7d8 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xf53eacb8 __uio_register_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x5bcf1daa usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xbde5458a usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x1578d09b usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x1ccdcdf3 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x1ed9413b usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x3ba972da usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4975268c usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x611d1fe7 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9fef372f usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xce398a9d ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xfd8bc9ff usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0945138c ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x133a5d3e ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2b9be6d1 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4f43b57d usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5290f575 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x67b11a3b usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6d1b873a usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8a201405 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8c9ef462 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x98576171 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa01f4a02 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb128a5e3 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbd483bd8 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc19ca9cc usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xeaf1445f usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xeb668300 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf09e25fe usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf3b6a3cb usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf8f45770 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x011fd9b1 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0587339b usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x07a8eb8b fill_inquiry_response +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 0x3407387f usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3b77aece usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4103a111 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x418caf96 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x48726726 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4ab19d8f usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x508a3cf3 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x60344c03 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6adf70a0 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6cad90b0 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x771da44c usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x84a125fc usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8791ad42 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x96f13c0f usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb4dfafee usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbaebc2dc usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xec3f2d20 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xed2f8a76 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfd7d5442 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfe3f275a usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x122f15ac wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x2db77bf5 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x513afad0 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x78d01e9c rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xa26051a3 __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc2581f27 wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0b1cfca8 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0f424558 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1a87a059 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x23edbc87 wusbhc_rh_resume +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x277c14ff wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2d7fd008 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x331285bc __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x372b370a wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x39a0192b wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x490369cf wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x817abb4f wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9f05d1ab wusbhc_rh_suspend +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc10475dd wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xd3feeffd wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe0c407e1 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfeb70c12 wusbhc_reset_all +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 0x12ba39a2 uwb_phy_rate_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x4f3089a3 uwb_ack_policy_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x82fa8bb2 uwb_pca_base_priority_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x9a8eb529 uwb_ack_policy_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x9ff76c67 uwb_rts_cts_store +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xd160e5d8 uwb_phy_rate_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xe11b9ba4 uwb_rts_cts_show +EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xeca3ac3e uwb_pca_base_priority_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 0x04631820 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1024d81e uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x12a07cf2 uwb_rc_mac_addr_get +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 0x235f24f7 uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5efd1d65 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5fa2421d uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x632efeca uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6a5fef9f uwb_rc_init +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 0x74c94f9c uwb_rc_get_by_grandpa +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 0x8bc7272c uwb_rc_get_by_dev +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 0xab39dae6 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xaf068827 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb69ce2f0 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbe529f9e uwb_notifs_deregister +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 0xe09ec4f0 uwb_rc_add +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 0xf515a166 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf518f6a3 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf60c7f03 uwb_rc_rm +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 0x0b005f86 wlp_dev_serial_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x19826f6d wlp_dev_prim_subcat_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1a406d05 wlp_dev_model_nr_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1b7bca69 wlp_uuid_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x23d16e56 wlp_dev_prim_OUI_sub_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x321aef84 wlp_dev_prim_subcat_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x39446680 wlp_remove +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4c8c3571 wlp_dev_model_nr_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4e887a4d wlp_setup +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x54ea78c1 wlp_dev_manufacturer_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x554000e8 wlp_wss_activate_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5f6012a1 wlp_dev_prim_category_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5f60385e wlp_wss_setup +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x6042fe6f wlp_dev_name_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x624f3f56 wlp_dev_model_name_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x718bdea1 wlp_eda_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x74acd517 wlp_wss_activate_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x79317ca2 wlp_eda_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7d2d90bb wlp_dev_name_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8913a687 wlp_dev_model_name_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8d7cb6ed wlp_receive_frame +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9518d684 wlp_prepare_tx_frame +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x984db3c7 wlp_dev_prim_OUI_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9b754619 wlp_dev_manufacturer_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xb1b642e3 wlp_dev_prim_category_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xbed5092a wlp_dev_prim_OUI_store +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc31f82c1 wlp_neighborhood_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc51126d4 wlp_dev_serial_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc7fd434f wlp_wss_remove +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc96cca10 wlp_dev_prim_OUI_sub_show +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe8d8ed77 wlp_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xeb0fe210 wlp_uuid_store +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x5e1d5b25 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x6ee08825 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7a6c4101 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x9316cfe2 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xb91c4820 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xc454a12b ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xd1a178b5 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x72767ae8 fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x93a9ac74 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xf9d02f61 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x15a0263e sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xb745e837 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 0x1e91c722 viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x22a7af24 viafb_dma_copy_out_sg +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 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 0x37510638 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x90ef695a dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xaf87ad66 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 0x98b52642 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xfb3042dc exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x1cd66913 __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0x1e200df9 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x1f1845fe fat_time_unix2fat +EXPORT_SYMBOL_GPL fs/fat/fat 0x3ea1114e fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0x4a1458b0 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x4d41d361 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0x7bca2a03 fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x86635584 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0x8acbf2bf fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0x9d6379d5 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xa9870885 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xb6afa453 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0xbb39b477 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0xc53b4294 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xc7bdbb95 fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xe078cbe5 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0xeef35391 fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xfd90c8ef fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x406469bf nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7206ccf3 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x84e4909a 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 0xb11834ec nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xb160c6aa nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x7bd46a00 nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xc95c6481 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 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 0x7afdbcc9 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x92d915a2 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x99d66419 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9a8464de o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 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 0xd4da2e2f o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xef6f813d o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf6a99f07 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3be636cd dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x6c2f805c dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x833c6b53 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xa3d4af28 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xbf629896 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xeec66b25 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 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 0x1b575407 garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0x67438ea9 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x95f825b6 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xca049174 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xca87420f garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0xfbb132b5 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/stp 0x3b164692 stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0xcc402eec 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 0xd77d1a5e ax25_register_pid +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x3dfa5995 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x06188a2b dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x072133ed dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0b22a18f dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x106be2a2 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x23a341f1 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2e68d0d9 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3ca91019 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3e1db1be dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3fcdb15c dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4702e7e5 dccp_setsockopt +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 0x5bdfd614 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6076b6eb dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x62f77d92 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6842abfd dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x69411d97 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x84570f64 dccp_close +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 0x901db2bb dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x91ab8a06 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x92385b2b dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9499c910 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x988b42bb dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00a52b9 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa47f115d dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa544906c dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa844ccca dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb869a926 compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbbde99e0 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc43236d0 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcb1a8081 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdc0c7fec dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdca167b4 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdf1ed8e3 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe512a1c8 compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xef050ea8 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf5efb5d5 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfd873e27 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x42ce481a dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x72fe8d0f dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x8c06d78e dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xae03fd5b dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xbb9e364e dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xd7790ccb dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xd6e3a7ba arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xb8371e3a ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x1ed6ed37 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 0x27485d9f nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x33610fb7 nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x4b2e44ca nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x594da2e7 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x7f8b70cd 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 0xebe11db6 nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xefae0a3a nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xfc8f889f 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 0x64fddb92 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x91faadad tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xb4e0e89c tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd32644f3 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xf26efea7 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xbe1bab45 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0724d025 l2tp_udp_recv_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x109450f7 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x126221ed l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x243e0807 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x54e43804 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5ea7a89f l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x60076c94 l2tp_xmit_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x63b51344 l2tp_tunnel_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8c598309 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x925ca521 l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x944480f5 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc41bc89e l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd068de7b l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd1cb8510 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe28e9e1f l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf8722df3 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xfaba9a16 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa0771dd9 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc57b3413 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc7363165 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 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x06105b4f nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0731d713 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x08758899 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x170a9eff nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x186a6a94 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x19f831cd nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x201f8939 nf_ct_insert_dying_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25a669b5 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3052d09c nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x34114453 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3a1adfa4 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3d996332 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x445da9c6 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x456e9ad0 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x467c2c78 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x47655ad4 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x47a7f19a nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x489eeb28 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x57d0a302 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x57f7d237 nf_expect_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5a217dbd nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5a2edc56 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5f97d2c9 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5fc1f20b nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5fc7f932 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x618f39a2 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6818bed4 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x682b3665 nf_conntrack_event_cb +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6975f291 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6a6e55c5 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6b2b3e74 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x70805615 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x76e8db20 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78c21d44 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7e49413d __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f1e9291 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f96138c nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x84b3941a nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8bdfccd9 nf_conntrack_l3proto_generic +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 0x96d60782 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9f7646ae nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa267dc10 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb47355f9 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb57610ce nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb5ccad60 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb6117d3a nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb785e067 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb92935cb nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbcbf4e1d nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbf353497 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xca10530e nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xca1ac9af nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd4df9fbb seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd9e2bd6a nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdc7805fe nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdf5a8e09 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe207a8f2 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe4d88eeb nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xebd4dfe8 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec17c1f3 nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf46f7b3a nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf566719a nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x10291868 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x9546aa5d nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x11feeb97 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1f9f38df set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2c088023 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6cde5cfb nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x72bff151 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8812d2ed nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8b0cdd39 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xdbfa3e56 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe1dab1ea nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf5b532ab set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x85ceefb5 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x590861e9 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x646a85ff nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x6967e98a nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x6eba89e5 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x153bd04e nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xcbe6e50b nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1d7acb5c ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x5077a98a nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7301c4a2 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8933405e ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9673d843 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9727e395 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9a419054 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa430912a ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd90d528a ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xddfa7244 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xec25ffa1 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xee03f922 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfb397d7c nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x70fe7bf4 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x37e45bc0 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xca24f6f9 nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x760cbe57 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x82605b83 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x82b00584 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x84b6e1e7 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xa3fac15c nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xcd36114c nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x8492f4c1 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0375c292 xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x08f13f05 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x100f0e8d xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1141b453 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1a89125a xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1bf75901 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x23f0e554 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x26ba9ba6 xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x312760bd xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x39b83b54 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x468d4344 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5a3458a2 xt_register_table +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 0x686d51ef xt_replace_table +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 0xd539097a xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdeaf654f xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdf02be0f xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe58f51d3 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe6ed4374 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xef099000 xt_unregister_table +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 0x02003d65 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x0b47e116 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x2afa75ce rds_info_register_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 0x5774c1c8 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x5e8a4a93 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x64d1d496 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x6ec8ec92 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7fccd0e5 rds_inc_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x80977642 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x8940a87a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x9326af1a rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x97986fb1 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0xa3fb9a30 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0xa8989816 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xb212dbc7 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xc2da8e38 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xc2fd1a77 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0xc4b55773 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xd2ba06c1 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0xdb663c07 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0xe4b5a9b6 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xf58ccc3b rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0xf9e073cf rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0xfa78d220 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xfeb86d16 rds_conn_create +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x3e870ce4 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x549d5352 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 0x012f3ad0 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x0368d323 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x221bac9e svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x5f6f8368 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x609ae525 svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x61e264d8 gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x63f6b610 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x64660b73 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa05c5428 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xcaa0489a gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xcc4ec8fa 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 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06abd242 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x09a4cb84 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x09f5fad8 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ac3ee12 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0bcd8ae6 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0be19fcc svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0dc490f3 svc_sock_destroy +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 0x10a6bf9a rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11f727c4 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1330221b svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x13c3774f rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15e5090b svc_sock_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1630df6f xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x166c25a0 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x197e4bbf svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1bf261b9 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d2d7132 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d4b52b6 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x20560589 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x243d7123 auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24479c5f xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25f50f75 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2615ddc7 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a3660a0 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e216674 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ebdc9ac auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f5b87ab rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f5e673a xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f9d9e64 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x319f861e xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31c787fc cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x346c29b2 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36971022 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a95953f svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ae4afcc rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c5f2b56 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4049a0b0 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41f759a7 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43f045e0 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x446e3e76 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49917281 cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4fcecc1c svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5082e283 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51d8c5fd rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52a64a10 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x554b4a43 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5655d4b6 auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x570a4f54 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x576a435d __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a15b819 rpc_call_sync +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 0x5c8b05e6 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ddc5f63 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62ef0da1 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x636d3344 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64a314f1 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64a3adc1 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x691c3b41 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x69b9cf7d xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6bcb93f0 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c313d37 rpc_call_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 0x6fd91a1a xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7193b73e svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7231219c rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x723a8c9b rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x72fa9027 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7453b8dd rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75e5d67c xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x765688f3 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x775adaf6 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77ab883c read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78576bf2 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7880eb27 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79745113 write_bytes_to_xdr_buf +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 0x7dedf259 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x828c69cc svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x829f5eaa rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85cda59b rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b01b31d svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8dd54506 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e6435da cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f410412 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9346c5bb xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x949355b5 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97680f23 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a062e07 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a9a7c0a put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9acb41de svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9be97ba4 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c3f7a4e rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c89aa70 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cc07685 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d17ce51 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0a10f76 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0ceeccc xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa218866e auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa42088cc svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4fbb2a4 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa61497ed xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6c0cd15 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaca6e391 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xade9e2e4 rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae6af69f rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xafc53b90 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb00a4537 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2208d7c svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4804cc0 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6635c04 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb9a8bf44 svc_process +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 0xc1a8f924 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc28f7b9e xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3d68dd8 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3ebb04b svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4ce57ff xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc58a74e1 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc770d6e9 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc7e02d83 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8046ade rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc80fc013 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb076cee xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccb85368 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcff9b654 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd53c919a rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6c6f430 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6dcce71 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd721377a rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd87f98b1 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8ee289a rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb21f3c0 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdcd5e9d3 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde95ed26 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1614a55 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe18174fa svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5bc5039 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6fc9079 rpc_exit_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe7c78cd6 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8951d6b xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xec43945b svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xefa66334 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf178b2dc xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa05fe6c sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa6d89aa rpc_call_null +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0603c119 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x1ace8a64 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x24977c2a wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x30da5147 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x38b4e97c wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x494f78de wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6dac6905 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x82a9fc42 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb6f81a6e wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe0ccbbf5 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0xee760f92 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0xfd863e28 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0xfe46577b wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1dc5bf9c cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x41e3a5ce cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x63860742 cfg80211_wext_giwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x64334b35 cfg80211_wext_siwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7b3e5eff cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8854ff51 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8ebc6902 cfg80211_wext_giwtxpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x939b6b94 cfg80211_wext_siwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x957ae58f cfg80211_wext_giwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x96bfaff1 cfg80211_wext_siwencodeext +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x981d0287 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9a24eff1 cfg80211_wext_siwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa1238790 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa3d3c917 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa7d40312 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa9280d69 cfg80211_wext_giwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xaf3ec984 cfg80211_wext_siwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb899b2c6 cfg80211_wext_siwmlme +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc032ac0f cfg80211_wext_siwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xca14172a cfg80211_wext_giwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcaedbffc cfg80211_wireless_stats +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xce2fe21b cfg80211_wext_giwpower +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd1df0de8 cfg80211_wext_siwgenie +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd3fc41b7 cfg80211_wext_siwrate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd517b372 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd7728c58 cfg80211_wext_siwap +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdd9071c9 cfg80211_wext_siwfreq +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe0f0a32f cfg80211_wext_giwauth +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf280b38f cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf34af46a cfg80211_wext_giwencode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf46bce10 cfg80211_wext_siwessid +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf49100a8 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x1d45846f ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x29234250 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xc569f4cc ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xe4fd0fac ipcomp_output +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x11e355d2 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x4f035cd0 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x6e79c7ef snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xb80e695d snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xc1941175 snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xffe07996 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x01b7d273 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x06ea4bab snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x09820a8e snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0abbddbd snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0bb86329 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e247542 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e71eb63 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x11e429e0 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ff6047f snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2587e3c7 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x25bd406b snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x27bea130 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2ed778c8 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x380f3b3a snd_hda_eld_proc_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3e85876a snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3ea4617d snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4305a998 snd_hda_power_down +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x43ebaaf2 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x44c62503 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x45ceae08 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f07d43 snd_print_channel_allocation +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4ca777f0 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4d41ab77 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5271c69a snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x52cc8db4 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5374f531 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x57712cf9 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x586c41b2 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x58bedb84 snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x58fb10cd snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x59ff6e29 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae76f73 auto_pin_cfg_labels +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5bb98101 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5e19fd95 snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5f27631e snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6085f59a snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x66989b3c snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b717cce snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x71cf544e snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x72954bcd snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x72d1a016 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x73753384 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x773e2fd2 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x785df043 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7d8b03c3 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x83e3a05c snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x846a5715 snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x872852b6 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x879f6763 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x87df82af snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x936dc943 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a4395ba snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9dcabf97 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9e50199c snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa32d5560 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa3b2e6c4 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaf0a7bb5 snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xafcaff39 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb0c2ce71 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb8ff3e20 snd_hda_parse_pin_def_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb9df3cd3 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbeb861d0 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbf4229aa snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc0416af6 snd_hdmi_get_eld_size +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc1b73df0 snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc2122a99 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc34a54c6 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc4db41dd snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb7bf361 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce27eb0 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xce44875e snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd28a07af snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd4b24105 snd_hdmi_show_eld +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd4d14c0d snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd91ef1bd snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd9814c33 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdaef7db3 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdca8767f snd_hdmi_get_eld +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe2efce92 snd_hda_create_spdif_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe349fc15 snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe747015d snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeab64961 snd_hda_eld_proc_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee38c45a snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf19168c9 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf1bb4ef0 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf5114950 snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf549cf5c snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf6a0c090 snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf8ce0468 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfa05125e snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfb95f0b7 snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfff37c46 snd_hda_power_up +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x74c78d81 soc_codec_dev_ad1836 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0xa8431c93 ad1836_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x51bb7711 ad193x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0xa281886f soc_codec_dev_ad193x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x36572cc8 ad73311_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x84b85ce7 soc_codec_dev_ad73311 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x8652ca77 ads117x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0xe58e0788 soc_codec_dev_ads117x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4104 0xe2719da7 soc_codec_device_ak4104 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x0e4e652e ak4535_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x94363b3a soc_codec_dev_ak4535 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x58636cfb ak4642_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0xcc8d1496 soc_codec_dev_ak4642 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0xe5e6f90c soc_codec_dev_ak4671 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0xef1f04c8 ak4671_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0xcc1ca14a cs4270_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0xe9fd7017 soc_codec_device_cs4270 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x9c21ece3 da7210_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0xc31155b9 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 0x0f8f11aa max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x2910d3c6 pcm3008_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x9eae06dd soc_codec_dev_pcm3008 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0x3af8fae6 dit_stub_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x80f7fb5f ssm2602_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x951b0316 soc_codec_dev_ssm2602 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x1490fa95 tlv320aic23_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x644a10f9 soc_codec_dev_tlv320aic23 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x4b42b0f1 aic26_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0xd7163459 aic26_soc_codec_dev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x0bada463 soc_codec_dev_aic3x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x3002f1da aic3x_get_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x9d0faea3 aic3x_set_headset_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xa6dc0b9f aic3x_set_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xd867d059 aic3x_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xf99ebd2c aic3x_headset_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xfc7679d8 aic3x_button_pressed +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x0535a0bc soc_codec_dev_tlv320dac33 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0xe00943aa dac33_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x68a9b94b tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x3a968b1e soc_codec_dev_twl4030 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0xcf613c57 twl4030_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x4519cefb soc_codec_dev_twl6040 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x8970d7ff twl6040_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0xfb2eed1b soc_codec_dev_uda134x +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x7d214980 uda1380_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0xca94d172 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 0x9fa38e8f wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xd0a1b12d wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xdd911fbc wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x4376365f wm2000_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x34dd3e63 wm8350_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x5e50cff1 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x6b0d50a1 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xf2de7524 soc_codec_dev_wm8350 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x69c28f76 soc_codec_dev_wm8400 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x6c2018dd wm8400_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x6475686f wm8510_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0xfd62bcf9 soc_codec_dev_wm8510 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0xd309005c wm8523_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0xd4095163 soc_codec_dev_wm8523 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x77257934 wm8580_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0xf2b38776 soc_codec_dev_wm8580 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x4e704533 soc_codec_dev_wm8711 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0xed0cbcb7 wm8711_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x0abd4537 wm8727_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x1a6c5cec soc_codec_dev_wm8727 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x9df44023 soc_codec_dev_wm8728 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0xfbebf7e2 wm8728_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x4df4915d soc_codec_dev_wm8731 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x7a93ad9e wm8731_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x5062dcae soc_codec_dev_wm8750 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0xd21f4b01 wm8750_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x55c8cd12 wm8753_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x7b4f8f6d soc_codec_dev_wm8753 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x05bcaf46 soc_codec_dev_wm8776 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x05f8632a wm8776_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x95ad7694 wm8900_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0xb6766976 soc_codec_dev_wm8900 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x1339043a wm8903_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x490923cb wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x9d5b3ab5 soc_codec_dev_wm8903 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x0e3c3482 wm8904_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0xd21aac72 soc_codec_dev_wm8904 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x61e25287 wm8940_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0xb17fc1aa soc_codec_dev_wm8940 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x9758c880 wm8955_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0xcdca5fd8 soc_codec_dev_wm8955 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0xb2fb15c4 soc_codec_dev_wm8960 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0xf67d43ae wm8960_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x3d21900b wm8961_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0xabe02485 soc_codec_dev_wm8961 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x9b569bbf wm8971_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0xaa224eb2 soc_codec_dev_wm8971 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0xcb9b0a0c wm8974_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0xd755baf7 soc_codec_dev_wm8974 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x7be0f5fb soc_codec_dev_wm8978 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0xbc59ca77 wm8978_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x4a11ba9e wm8988_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x70bcb2c6 soc_codec_dev_wm8988 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x00353347 wm8990_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0xb9a752f9 soc_codec_dev_wm8990 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x86a141e9 wm8993_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x928a013a soc_codec_dev_wm8993 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xba4a4b0f wm8994_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xddcb97fd soc_codec_dev_wm8994 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xedd741c2 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x652ae43e wm9081_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0xe1166fb5 soc_codec_dev_wm9081 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0xf9cf34c3 soc_codec_dev_wm9090 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x04155ff6 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0f2cad82 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1178e3d2 snd_soc_free_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x121fb5c2 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x124a6349 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x154d891d snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1783cf4f snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f810aec snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23094d3e snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x268c5d55 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x26960a8d snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f66fbf0 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x350bc62b snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3513a5c0 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3595100f snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x36b811b6 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3771843c snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x38bc182f snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3e6d2573 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x45952d70 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x46c51cdd snd_soc_unregister_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x48a1b63e snd_soc_new_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x494bb3fd snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4a665240 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4b256eec snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4f7f39aa snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4f822642 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x51d53303 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x589b6420 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x58aa8536 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6005c282 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x60162f90 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x61805078 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x632d9883 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6379ed95 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x68db4ac2 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x70ebf122 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x763ebce8 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x76aa0328 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7cb0fc4b snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7cbb9a9a snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8490af62 snd_soc_register_dais +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x88205084 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8996405f snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x91a822cf snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x91e4dddf snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x938a0ad0 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9d1ab3d3 snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa078f706 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa08fd485 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa307ec55 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa8a64ccd snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa91bb0df snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb2baa8f6 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb767420e snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbbce48a6 snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbcaba213 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbce0c5a8 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbd165e01 snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbeee2925 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc10a89b8 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc435d6ca dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc535ff1f snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcf01022d snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd5106cf8 snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd545f9cd snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd71622c8 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd720af26 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdfb0e430 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe46d3da1 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe5f8af9f snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe91f1d2a snd_soc_get_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 0xf0c51649 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf221be48 snd_soc_add_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf78f112f snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfa1c07a8 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfa6d198c snd_soc_dapm_info_pin_switch +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 0x0011f612 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x003ed6a6 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x0059eec1 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x005be27b queue_delayed_work +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 0x00b99505 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00d8e221 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00f94fde register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x01033458 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x0110b3d1 register_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0x01378d91 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x01511988 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01a979fb sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x01e0a8fc disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x02061d99 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0x0231c55d mce_chrdev_ops +EXPORT_SYMBOL_GPL vmlinux 0x025583f4 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x02636438 scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x02938880 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x02a733af securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x02e48ef7 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x031921dd set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0353070d fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x0367f8fd debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x03a3f86d unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x03c7f9cf usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x03ca9c2a cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x03f8d0e8 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x03fe2cca flush_work +EXPORT_SYMBOL_GPL vmlinux 0x04013c68 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x04115dd4 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x0526e74a sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x05303e8b cred_to_ucred +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 0x0575698e inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x057654b2 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x06030463 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x0604b384 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro +EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x0637ce6c __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x072f0b0f crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x0778c08f usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x077dd5d9 driver_create_file +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 0x08279811 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x0853bf55 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x088097ff inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0x08a85c30 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x08d1327d device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x08f3b14d pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x09164b27 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x092de592 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x09603415 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x09914fc7 inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0x09c870cb sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x09e14a85 xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0x0a005eac sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x0ac0ab25 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x0af0b516 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x0af3a89d cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x0af8d459 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x0b393a71 vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x0b4212e7 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x0b6dfe54 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x0bac9195 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x0bed49f5 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c3339b8 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x0c4cd5ee dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0c85f147 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0cf45ddd adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x0d226672 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x0d36e1ec ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x0d4e73c5 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x0d7b31de hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0x0db77b15 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x0dbcb453 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x0dc95217 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x0dceae4c sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x0dfebc52 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e25f96a rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x0e43483a __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x0e668ad0 ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0e6a0889 eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x0ebf725b ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x0ec210b8 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0x0ee19ca9 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0f16ff4a srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x0fcf9b6a dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0x0fd1f483 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x0feaa294 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x0febcb4c xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x0ffb7d8b usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x10265464 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x102a3c0a bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x10373d85 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x10509042 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x10621889 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x10afb2a3 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x1125a51d usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x11660cdc blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x118d61ba virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x119af014 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x119cdcf9 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x11d70412 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x11e9c7a6 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x11f32b36 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x11fca75c __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x1215964a ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x121bd4e2 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x123dfd72 __crypto_alloc_tfm +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 0x125da344 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x126157cd pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x12674296 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x128d2d92 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x12bf5491 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x12c9b496 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x12ccb4c2 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL vmlinux 0x12ec1dd5 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x132bdb93 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x1360d523 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x1378975a ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x13939953 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x13a770cf class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13d050cc regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x142d3dc7 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x14320394 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x14363539 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x1448e14c ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x145a3f5a __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x145cc405 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x14760d04 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x14972929 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x1499b94a securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x14c7d9fa inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x14e1310f gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x14ec39e6 unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x1510fa63 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x151ecd18 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x1550e9f0 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x15550354 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x1559e2b1 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x156088fe crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 0x16234e28 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x16349f02 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x1647917d sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x16a3bc12 x86_platform +EXPORT_SYMBOL_GPL vmlinux 0x16ad7035 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x16c818b9 pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x16ce79ab bus_register +EXPORT_SYMBOL_GPL vmlinux 0x170db3fc raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x17b21937 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x17c00204 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x17e40305 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x17f3121e uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x18522bb8 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x1882586b ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x18c31ffe bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x18dd23ca inet_csk_get_port +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 0x19772783 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x199884b1 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x1a239031 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a45a2dc wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x1a56ebf6 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x1a6c1817 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x1a918f38 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x1acfa304 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x1ad10a35 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x1ae01a48 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x1b144167 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x1b1e5aac device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x1b20fd66 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x1b43ea25 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x1b580204 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1ba8b745 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1be3e9ba usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x1c00610c dm_rh_region_to_sector +EXPORT_SYMBOL_GPL vmlinux 0x1c04d620 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1cae4291 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x1cdee588 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x1d41d716 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1d48bd06 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x1d6781a9 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x1db21173 acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x1dc121f3 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1e21ca42 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x1e359831 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x1e4e8261 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x1e72bf28 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1ea4a804 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ec84c54 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x1ed42f9b crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x1ee0c30b ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1f3a8e70 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1fadbd4f __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1ff9d5f1 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x20901d8f fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x20b848f7 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20d22764 iommu_found +EXPORT_SYMBOL_GPL vmlinux 0x212b2f5d usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x215b3b22 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x21840913 acpi_smbus_read +EXPORT_SYMBOL_GPL vmlinux 0x21a6761d devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x21a74c5d br_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x21c4ddf1 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x21cbcdf2 dm_region_hash_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2206e2b7 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x22524ab6 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x2265ef24 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x2287ff2d crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22d942ff ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x22f427fa pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x23840f01 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23a32286 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x24097e2a dm_rh_flush +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x24641731 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x246f4153 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0x247fbc0d dm_rh_start_recovery +EXPORT_SYMBOL_GPL vmlinux 0x24993358 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x24b8755a usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x24c6890f debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24fe6f6e __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x2515ba19 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x253a69f8 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x2554edc4 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x255945a3 class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x2587e870 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x2610cfbd pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26f13cc8 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x272d058a nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x273a9d37 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x2763bc10 mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x27855b56 dm_rh_dirty_log +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 0x285ce785 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x28966ab2 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x28c2dbf2 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x28ececb0 sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0x29119e84 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x291ef8bf sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x292ad76f vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x295dac9d usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x2976ca5d fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x297c06dd transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x297c62f7 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x299a1e6d sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x29f783f7 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2a0a4724 bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x2a1538ca lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x2a4b808a crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a6ab364 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x2a87ecd9 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x2a95eca1 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x2a9b35d0 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x2ac339b4 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x2b31a487 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x2b71b1fc ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2be9d265 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x2bf992db scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x2c183f1c usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c321040 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x2c708934 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x2caa4f16 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x2cc0d9b0 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d140604 pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0x2d2174a9 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x2d4381e5 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2df59cec device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2e05de48 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x2e3321a9 tc35892_block_write +EXPORT_SYMBOL_GPL vmlinux 0x2e34234e tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e7763cc pci_find_ext_capability +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 0x2ed0a011 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x2ed1064b __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x2eed2630 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2f3a460e scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x2f3e5d24 sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f54c193 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x2f6facd7 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2f98b3af cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fd2f398 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x30167838 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x3021fd41 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x302b57f2 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x30964b1f i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x30c14865 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x310080e7 find_module +EXPORT_SYMBOL_GPL vmlinux 0x311276cf ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x315a26f6 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x3175c405 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x3179cb5a input_class +EXPORT_SYMBOL_GPL vmlinux 0x31821dc1 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x31bc5570 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x31c75378 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x31daf18e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x31dc0b6e queue_work +EXPORT_SYMBOL_GPL vmlinux 0x324c9e6a user_read +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x326f9630 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x3292e44a unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x32c7c87d ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x3328968e put_device +EXPORT_SYMBOL_GPL vmlinux 0x334b53b0 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0x33518379 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x335e2df1 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL vmlinux 0x33600461 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x3378434b bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x33af3c3f raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x33b8b085 vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x33bdfde9 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x33dbfe65 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x341a754a vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x343e95be crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x34913d9a sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x34af99e2 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x34c5c87b hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x34db2d35 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x35366bea posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x3595f195 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x35b29e61 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x35d39972 pci_get_hp_params +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x35f380eb simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x35fd0e7c dm_rh_region_context +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 0x364eaf56 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x36513b63 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x3669fdfd sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x36864ef1 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x36b18f8c pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x36b5169c transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x36e35477 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x36f23ff4 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x36f69919 shake_page +EXPORT_SYMBOL_GPL vmlinux 0x3748a8c0 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x37588432 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x3788ae2a skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x37f1ffbf gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x3824689c do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0x384053e7 erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0x38454663 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x38571782 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x38619a68 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x387f4288 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x38900c06 ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0x38ae1fe6 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x38be3171 acpi_smbus_register_callback +EXPORT_SYMBOL_GPL vmlinux 0x38cd681e rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x38d1c6fd cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x38fa894a blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x391a8eb3 __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x39547676 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3955b497 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x396c4f8c dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x39750107 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x39e27f81 device_create +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a467510 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x3a4d614b dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL vmlinux 0x3a548f51 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x3a5887a1 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3a7d2295 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3a9c4eae transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x3b2b80f6 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3b863b6c flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3becb3fc sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x3bee2476 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x3c23dae7 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x3c433a73 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x3c74e920 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x3c8a16bc ata_sff_wait_ready +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 0x3c982849 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cf7346c pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d1ad9b4 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x3d2fdeda regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d4dccd1 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x3d5f392d acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0x3d782983 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3d7f8a06 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x3dad0ad3 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x3dbbcf94 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x3dc71b8b inet_twsk_purge +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 0x3de7f6f7 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x3e2468f0 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x3e30fbc8 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x3e7f8d4c pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x3ea0b0aa spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x3ecbbc58 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3ecf6cfc wmi_install_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0x3ee2c21b ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3efca309 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x3f0256f6 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f4bf902 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x3f81adb3 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3f877367 debugfs_create_u32 +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 0x403e988c __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40ede785 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x4108f7ab sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x412fe2d7 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x41b0d3fd devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x41d54eba ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x41df32bc setup_deferrable_timer_on_stack_key +EXPORT_SYMBOL_GPL vmlinux 0x421d84c7 apei_get_debugfs_dir +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 0x42a19d20 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0x4322e15a tc35892_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x4332220a inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x435460a0 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x436db3f0 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x439d6c10 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x43a61c57 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x4459130b power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x44797c42 usb_string +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x449a6386 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x44ab13e2 device_move +EXPORT_SYMBOL_GPL vmlinux 0x44b1561f crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x45616313 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x459d607b xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read +EXPORT_SYMBOL_GPL vmlinux 0x45b891e4 crypto_alloc_shash +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 0x45d7ccc7 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x45fedfe3 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x462d0480 wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x4654b4b2 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x46619a87 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x469811cc usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x46c1b2b7 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x47033807 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x471e8a98 perf_arch_fetch_caller_regs +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x47709a5c usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x4796c70b sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x47db864a led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x4854c1fa devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x488a614f pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x488b8758 bd_release_from_disk +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 0x48be2513 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x48f44ff1 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x4978ffbb security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49b0d878 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x49b33616 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x49ddb641 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x49f71e3e wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x4a0322b0 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x4a46b05b seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x4a4dd2c9 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x4a6ad7ba ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4a7a6ab0 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x4a8c093a acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0x4ac2130e ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x4ae7e93f wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x4bbc157f rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x4bbcae2c sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4bc4b083 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x4bd96468 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x4bdbdbd5 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x4beebca0 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x4c0fb6d0 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x4c316815 pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x4c437109 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c7611ea ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x4ca90b91 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x4cb16158 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4cf3bf2b proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x4d14e6b0 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x4d565c48 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x4dad07e5 xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x4db31da1 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x4e2f191a usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x4e6196da fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x4e946f08 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x4eec73a1 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4ef9a4c4 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x4f0aac1a ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4f36d0c8 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x4f3eb610 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x4f54498e __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0x4f6660b0 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x4fc56cce iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fdd42b9 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x50265212 inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0x5046902d __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x507de8c6 add_memory +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x509dd736 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x50ba3bec acpi_processor_ffh_cstate_enter +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 0x50f77b30 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x5105d3b4 xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0x511a9ad8 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x511c71b0 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x512e2d7c pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x520e7639 ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x5217fb52 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x5272530e ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x52902f00 inotify_init +EXPORT_SYMBOL_GPL vmlinux 0x5323964e key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x5324d04f bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x535410ab tcp_reno_ssthresh +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 0x53afcd19 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x54139931 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x541b7530 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x54682e85 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x548a1f17 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54ce68c0 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0x55041880 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x554228a1 ref_module +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x5597d24d blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x55d96563 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x55dbde77 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL vmlinux 0x55f2580b __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x561c634a wmi_evaluate_method +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x5641cb6d inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x565cf60e xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x56e223ab inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x5753a1b6 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x57627bea blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0x578d07cf ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x5792e6a8 virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57bc6d51 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x5836d589 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x585d6884 __css_put +EXPORT_SYMBOL_GPL vmlinux 0x58645c1f clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x589e4921 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x58e1bd66 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x59292074 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x592d4aba skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x59366669 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x595aaa3c disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x5970e340 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x59c6ae4c cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x59fad310 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x59fc3ad8 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5a48fba2 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x5a49f1fb sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a8f245d crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x5ad2393f sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x5ae95750 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5afc822a ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x5b2eddd1 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x5b435139 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x5b6bb9af crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x5b71bd2f crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x5bc21796 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x5bcd0276 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c2a739e blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x5c5f0a80 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x5cb47884 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x5ccc962a attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x5d034600 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d3c45f6 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e497ea4 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x5e550562 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x5e5a2d7c usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x5e82b7a6 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x5e889861 register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x5ebca80a ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x5ec993ac usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x5ed954e1 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5ee49116 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5fbfca8f ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5fe86e9d rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x6069396d inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6079cbb2 get_device +EXPORT_SYMBOL_GPL vmlinux 0x6081e3bc platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x60e429da __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x6132925e da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x614ae0c4 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x61710210 xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0x6194ffea do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0x61a599fb rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x61abd9a3 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x61ba7413 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x61c2cb54 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x61d72b90 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x61f6edc7 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x621ffdb7 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x625b0cc9 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x6263267c adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x62743201 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x628003af find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x62de52ce regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x62f6a48d usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x630dfdf4 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x632073eb rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x634ece90 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x638e6e4d dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x63f3a145 ata_host_start +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 0x641314aa wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x6457c962 pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6460088a unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x647ed9bf tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x64f176e8 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x650d316a __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x650f84a5 inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x651b8e07 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x6548746c power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x654b3f59 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65c32633 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x65dd3da6 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x65e165dd regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6628c190 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x662afbd6 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x662f5d9b crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x6656dab6 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x666425d1 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x6665056f platform_device_register_data +EXPORT_SYMBOL_GPL vmlinux 0x66776386 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x669a05b5 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x6722689c ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x673c6f4d crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x676a29e9 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x6819ef1d ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x684055eb pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x6857349b tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x685b4f6e usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x68897016 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68bd5de8 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x68d88a1f crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x690fca53 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x6925a382 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x69635d2e xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x6986b73d blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x698ba9e8 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x69975e84 edac_mce_parse +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69ef9908 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x6a0d2e1c hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x6a111861 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x6a54a269 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x6a5eccfe ata_sff_hsm_move +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 0x6af2b838 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b50ad45 tc35892_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x6b543b62 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6b9178b3 xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x6be62dfd probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c173b4e crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x6c297ecf shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c53eb71 ata_sas_port_stop +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 0x6d0b3724 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d3adc8c xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0x6d687947 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x6d897f50 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x6d8d7a80 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x6e443c8f usb_poison_urb +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 0x6e98203e bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f685e2c skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x6f7a8440 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x6f8300e1 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x6faca19b ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x7037d79d k8_flush_garts +EXPORT_SYMBOL_GPL vmlinux 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 0x7085a32d relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x708f1b8e debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x7090672c driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x70933a2c ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x70a43e58 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x70ad3fc6 remove_memory +EXPORT_SYMBOL_GPL vmlinux 0x70b4acad mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x70d20dfa crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x7118e0a0 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x71235ca2 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x713c1590 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x7162bbd8 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x7183ee2c xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x71b0155d blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x71d23a8d platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x71e418a3 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x71e972e7 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x7204132c __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x7218c98f tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x72642d74 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x726fb67c queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x7273bebd __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x72f254e9 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x73097f43 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x731433ee unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x7331113b shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x7345d311 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x7360683b usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x739c109f cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x73a23c0c class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73a49433 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x73a5271e wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x73c8af12 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL vmlinux 0x73f37378 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x73fc531e led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x741e7d5e pci_sriov_migration +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 0x747be397 driver_add_kobj +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 0x7558f96d __module_address +EXPORT_SYMBOL_GPL vmlinux 0x7581c9db sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x75c8a0ec sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x75cf675f rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x75fbf2d9 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x760889bf dm_region_hash_create +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x764fa593 __remove_pages +EXPORT_SYMBOL_GPL vmlinux 0x765ddf37 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x76798725 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x77187062 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x77452900 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x779779d0 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x779f373e skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x780f80cb erst_read_next +EXPORT_SYMBOL_GPL vmlinux 0x7845835c hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x78aa4cf8 xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar +EXPORT_SYMBOL_GPL vmlinux 0x7919693f usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x792ba314 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x79342d18 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x79359903 usb_alloc_coherent +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 0x7946bef0 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x794b1aa9 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x7953c43d debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x796763de usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x7970e9e9 dm_rh_update_states +EXPORT_SYMBOL_GPL vmlinux 0x79d39610 unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x7a03e8aa register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x7a23c81b __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x7a26be88 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7a7208e9 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x7a81be6d usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x7a9c9b11 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7ad19c10 vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7af5bbb1 inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b840a5e inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x7b8b1d5e debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x7b8f6e5f virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x7b99c3f8 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x7bce10a7 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0x7bf76cca crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x7c4baa57 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x7c961a31 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7cb8819c sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x7cbaf95c blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x7ce7d8ba tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x7d21e241 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x7d332b19 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d81e7d0 put_driver +EXPORT_SYMBOL_GPL vmlinux 0x7da0e794 cpufreq_freq_attr_scaling_available_freqs +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 0x7e5e301f unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e6986ab d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x7e86318d rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7e8e9b31 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x7ec7c062 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x7ef3e1ec driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7f944192 crypto_tfm_in_queue +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 0x802fe0bc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0x8042aab8 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x8070d918 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x80865db3 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x808698eb tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80918d13 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x80b6e855 wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc +EXPORT_SYMBOL_GPL vmlinux 0x81216a19 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x81585c6d ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x8158d8e5 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x815ad88c crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x818912da udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x81f3ebf9 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x8226c992 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x8259e7db wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x8299c919 pm_request_resume +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 0x82e45d13 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x82e81af6 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x835376bf platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x836eba2b usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x83c65f38 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x83d9c08e platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x83dcc40b platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8424641a ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x843329bf fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x844d6884 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x8490aed1 scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x84a25a68 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x84c7f604 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x852fa2c2 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x854e8cb0 pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x8575c25b bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x85a8021c wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x86359bbc devres_find +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x866270ea rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x866dbf38 invalidate_inode_pages2_range +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 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86e72e5a crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x86f916ba ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x870488e8 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x871b6002 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x8747e00a usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x876d29f1 wmi_get_event_data +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm +EXPORT_SYMBOL_GPL vmlinux 0x87fda57b invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x883b583f sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x884bcfc4 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x886c49f0 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x88a9c904 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88bbe217 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x88cb173e ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x88d2db32 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x88f0db24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x890e711c ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x892d2302 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x894e1499 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x899d0c9f scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x89a18313 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x89f5d173 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x89f671c3 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x8a26a099 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x8a5a83b0 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8a924245 dm_rh_get_region_key +EXPORT_SYMBOL_GPL vmlinux 0x8aae767e pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x8ad19351 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x8ae5980b sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x8afbe17c init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x8b03730f crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x8b39cf9d unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b806454 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x8b9200fd lookup_address +EXPORT_SYMBOL_GPL vmlinux 0x8bc5dded wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x8bd5763e __xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0x8be9fd57 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x8bfe22ea eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c22684c usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x8c38074a unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8c6399cc ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x8c72ce09 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x8c897f8c blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8cc48b38 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x8cc886e4 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x8d20e6c9 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0x8d63b37f ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x8d9a0732 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x8dc47846 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0x8dc856ca dm_register_path_selector +EXPORT_SYMBOL_GPL vmlinux 0x8e38842c spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x8edce494 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x8edfc605 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x8f08f7c7 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x8f26b6b2 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x8f2e070d crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x8f47a54c hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8f5727dc class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x90053230 platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x902961b7 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x904112bd ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x9042dc95 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x9045e0f4 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x90630de5 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x9074ed7c dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x90757ec2 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90d78d51 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x90dc29df aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x910f1cd4 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x91360bd6 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x913d65d3 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x919a95bd register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x91af9e96 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x91d54c41 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x91e24db2 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0x921ea654 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x924a5ca9 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9258b2e4 fib_rules_cleanup_ops +EXPORT_SYMBOL_GPL vmlinux 0x92b77808 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x92bbca52 scsi_get_vpd_page +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 0x935ff70a debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x93954b83 modify_user_hw_breakpoint +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 0x93f9828e __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x947b36a0 dm_rh_get_state +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 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x954011fa relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x955e6f30 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x95b65302 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x95ce859a rtnl_kill_links +EXPORT_SYMBOL_GPL vmlinux 0x95f6547e dm_unregister_path_selector +EXPORT_SYMBOL_GPL vmlinux 0x95fbdea9 usb_store_new_id +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 0x96b803c6 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9731dc90 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x973b3ed0 dm_rh_dec +EXPORT_SYMBOL_GPL vmlinux 0x978961e4 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x97c3cba1 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x97c7e135 macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x980135b1 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x9809da9b platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x98210b06 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x985edf17 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x98900118 pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x990777f8 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x9923b7fd firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x993f1739 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x995fd846 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x996e1ac6 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x997835df sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x999efc0e ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x9a0e7019 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a132ccd uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x9a1fee5e fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x9a4d1034 idle_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x9a9d4675 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x9b995147 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bbd324c inode_add_to_lists +EXPORT_SYMBOL_GPL vmlinux 0x9c182762 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x9c2de449 memory_add_physaddr_to_nid +EXPORT_SYMBOL_GPL vmlinux 0x9c2ed62d leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x9c4c5ff2 ip6_dst_blackhole +EXPORT_SYMBOL_GPL vmlinux 0x9c6e08be pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x9c8c8335 cpufreq_get_measured_perf +EXPORT_SYMBOL_GPL vmlinux 0x9c93a617 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x9cafc37b inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cd32104 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d0b64a0 xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0x9d2b6a58 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d50cd73 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x9d79dae7 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x9d880e1f regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x9dc343cf nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x9e0a8277 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9e136346 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x9e3207a1 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x9e32cb7a sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x9e706704 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9e9d885d pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x9eac3e6c tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x9eb4fc53 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x9ebb6168 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x9eded46d lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x9f11581a ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x9f3816e3 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f92db31 acpi_processor_set_pdc +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fe4d386 inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0xa0138c86 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0xa0207657 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xa040bb42 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0xa07746c1 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xa07b19df smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0xa08c64b6 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xa090571b inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xa0a30966 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa0c4b25b inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa0db1d8d usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xa0dc36b8 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xa1144e49 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0xa1323c41 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0xa144af7e disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xa1779937 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xa1901c5f fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0xa21c68dc klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xa2297639 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xa2a4794a ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa2eebd47 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xa2fb3805 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xa33f7fde sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa3c10d96 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xa3fe458d dm_rh_delay +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 0xa4595f84 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa49889c7 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xa4a42813 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0xa4c10cfa free_css_id +EXPORT_SYMBOL_GPL vmlinux 0xa4d58669 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xa4ed60ac sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa504dc70 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0xa50af69e anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa52021e1 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0xa5428d88 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0xa55232f0 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xa5613947 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0xa5bd7f58 register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa615a54e sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa6308e5b i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xa6991d35 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0xa6ad5490 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0xa6bae256 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xa6f64b7c inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xa71a273c inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xa761efa8 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0xa764bf1a usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xa78e475c queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xa7b8601f crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xa7bf8a3d sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xa7e14486 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xa7f1c0f8 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xa7ff45bc hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0xa8258731 tc35892_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xa829c495 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa82c4aa0 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa869ce3c spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xa8a9ab78 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xa8b8b775 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa90d42c9 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0xa90e9c6c dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa9524362 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xa957fbad platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xa95ec508 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9c5be72 __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xaa15786f power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xaa182301 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xaa4947c2 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xaa617312 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xaa65abb6 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaac311ba crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xaacad4b8 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xaadddf21 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xab01d91a apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xab0e842a cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0xab2b1fa3 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xab421a8a cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab6bc461 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xab8f9e2c pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0xab915e99 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0xab99c39f hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xabb108b3 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0xabbb1b93 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xabc1e99b ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0xabdedac0 blocking_notifier_chain_unregister +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 0xaccbdb70 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0xacd76a89 kill_pid_info_as_uid +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 0xad544d00 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xada33228 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0xadb11fdc probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadeb51ef regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0xae05109d gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae4883fa sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0xae4af268 tc35892_block_read +EXPORT_SYMBOL_GPL vmlinux 0xae69abff led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xae769328 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xae845609 edac_mce_enabled +EXPORT_SYMBOL_GPL vmlinux 0xaebc89d4 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xaec5df59 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xaefeb23a __pm_runtime_put +EXPORT_SYMBOL_GPL vmlinux 0xaf2dc935 mmput +EXPORT_SYMBOL_GPL vmlinux 0xaf2e43cf inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0xaf3814ce devres_get +EXPORT_SYMBOL_GPL vmlinux 0xaf392f3a find_symbol +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0xaf592235 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xaf7c4117 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0xaf824c60 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0xafb57af8 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0xafe845e8 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0xafff56b5 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0xb0452ad6 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xb094e85a use_mm +EXPORT_SYMBOL_GPL vmlinux 0xb099219a led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb145c7cd crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xb17b66eb usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0xb17f3aff generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb19d944c sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1e2d61b skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xb2081170 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xb241e846 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0xb2533c38 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0xb253436e anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0xb28d3499 xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xb2b5bba9 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb2ddb401 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xb323e3f0 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb32cb2e5 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0xb3375000 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xb391ab0f get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write +EXPORT_SYMBOL_GPL vmlinux 0xb3db0c51 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xb3fbf0cf ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xb4297ce9 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0xb453cdec sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xb4759adc stop_machine +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 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb5753265 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0xb5787eef usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0xb5bd55f9 get_cpu_sysdev +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 0xb634df22 print_context_stack +EXPORT_SYMBOL_GPL vmlinux 0xb6397a8e power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec +EXPORT_SYMBOL_GPL vmlinux 0xb6693e96 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +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 0xb764103c dm_rh_get_region_size +EXPORT_SYMBOL_GPL vmlinux 0xb7728628 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xb795bcec lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0xb7e2eb91 mce_cpu_specific_poll +EXPORT_SYMBOL_GPL vmlinux 0xb7f4e553 erst_read +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb88717a1 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0xb8eeb154 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb9305f86 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xb94db510 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xba0882b5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xba413680 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0xba413ada usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xba4e0913 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xba52888f tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xba5a8f8d usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb128381 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xbb2b2b1d __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbce4cd1 __pm_runtime_get +EXPORT_SYMBOL_GPL vmlinux 0xbbef7e72 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xbbefe9f3 pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xbbf095ee ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xbc01935f ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0xbc0cabbc __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0xbc5033a1 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xbc5f2bef tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xbc6d33e9 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0xbc918091 __put_net +EXPORT_SYMBOL_GPL vmlinux 0xbc9bd813 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0xbcf0a134 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd76165b ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0xbda14589 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0xbdc00821 sdio_disable_func +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 0xbe2c8412 put_pid +EXPORT_SYMBOL_GPL vmlinux 0xbe59de3e skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xbe6a2b1e __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0xbe6d9a2e relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0xbe7c7193 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbead4956 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xbebb54db sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0xbf11aaa9 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0xbf1de88f atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xbf3d51d0 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xbf61f678 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xbfd94bb0 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xbff7adae ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0xbffde8ec compat_alloc_user_space +EXPORT_SYMBOL_GPL vmlinux 0xc02682dc ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0xc05146a7 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0xc0869478 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6a17 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0ef4a54 usb_debug_root +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 0xc14920d8 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0xc16cbd9b raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc1d3d709 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xc1ef4c5c css_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc2060a9b __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc24f292b dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0xc257e4b3 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc2c3131c ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xc2d5af07 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable +EXPORT_SYMBOL_GPL vmlinux 0xc32db676 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xc333d05f srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc3552e8a da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xc35c82a1 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xc36acb88 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3f252e7 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xc4034caa enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xc411c97d driver_find +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc42f2f94 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xc46ce374 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xc46d0f4d cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xc4702d1d regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xc474c51c usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc4846967 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4b1249e ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xc4ce6189 idle_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc4d167bb tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xc4f63e22 ata_host_resume +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 0xc53a8740 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0xc54828ff ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xc5885b7d raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xc58f7dfe devres_add +EXPORT_SYMBOL_GPL vmlinux 0xc6081d5f pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc648b345 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xc64b7ca0 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xc66131ae da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc67c8610 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc689f123 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0xc6cb96c7 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc6e97db1 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0xc6f06fcc wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xc71c7230 pm_request_idle +EXPORT_SYMBOL_GPL vmlinux 0xc72ac1bb ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xc741859a bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0xc7477806 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0xc758d6bb virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0xc7c14ce1 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0xc850f570 fib_rules_register +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 0xc881c5e5 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xc8867708 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0xc8a29d54 xenbus_dev_error +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 0xc91431fa inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc95a6437 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0xc9c7430c crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9f8d316 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0xca4d8f90 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0xca4e7673 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xcaaefa71 inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0xcaafe997 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcaeb1a87 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0xcb0f379a inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0xcb14ef31 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xcb84ab07 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xcb9d1d2b dm_rh_recovery_end +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xccb6ec56 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccd8f697 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xcd0ae620 inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0xcd173f3f ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0xcd1ca2cb iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcdf03db4 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xce14fd38 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xce1dd18f sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0xce36a5b6 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce767250 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0xce895ab8 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xcecb49e9 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xcf197889 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xcf22de5b usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xcf2541b4 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xcf353d95 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0xcf438832 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0xcf72270c ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcf82eb12 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xcf91c45d dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0xcfbcb717 swiotlb_map_page +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 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd05417c6 user_match +EXPORT_SYMBOL_GPL vmlinux 0xd08beb64 get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0xd0b5ae17 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd0be1765 __pm_runtime_set_status +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 0xd0cb089c dm_rh_stop_recovery +EXPORT_SYMBOL_GPL vmlinux 0xd1035597 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xd115ac96 inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0xd13a1ff4 acpi_bus_trim +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 0xd17f0b3a rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0xd190887e device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xd19da0ad acpi_smbus_write +EXPORT_SYMBOL_GPL vmlinux 0xd19fbdea kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd23b231a md_new_event +EXPORT_SYMBOL_GPL vmlinux 0xd23c1965 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xd2539cef vfs_getxattr +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 0xd2f1076c sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0xd318176a regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xd32d7320 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd34e7381 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0xd36ac919 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xd397ea41 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xd42bb4ae usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0xd454900f tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xd47cc8fa kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xd4a914ac led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0xd4abba3e inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd4eafe7b sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xd4f60d64 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0xd521fc28 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0xd5786dc9 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0xd6314211 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xd635afae tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xd6b9ae86 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xd6fa8b7e save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd73ec78c blk_execute_rq_nowait +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 0xd7c6ea0a ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7ddaa75 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xd8144a3b alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xd82352b8 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0xd8236de7 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xd8895526 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0xd8c585f7 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd8eec67e crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xd944a474 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0xd945ba00 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xd957b269 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xd997557c cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0xd9cd10b2 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda29f8b0 wmi_set_block +EXPORT_SYMBOL_GPL vmlinux 0xda382118 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0xda4425ff crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xda9c5c2c cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0xdaabed77 user_update +EXPORT_SYMBOL_GPL vmlinux 0xdac68cd0 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0xdad4e23e dm_rh_recovery_start +EXPORT_SYMBOL_GPL vmlinux 0xdaea8164 inotify_init_watch +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 0xdb2ed237 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0xdb4d3118 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0xdbcb4570 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xdbf368b2 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xdbf56a22 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xdbfec997 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xdc1f8f2e register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xdc46dca0 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0xdc7eb14d fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0xdc90eae1 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdcd42666 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0xdd1893fd devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xdd2dbe55 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xdd333bf7 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0xdd3ca60e anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xdd62a8a8 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xdd6dd5c1 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0xdd88f031 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde49e9f1 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xde4af159 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xdeaa08e9 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xdf1e7025 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xdf347076 xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0xdf5647ae mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0xdfc647f8 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0xdffd9d97 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe025f4be blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0xe03c29ed file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xe04a871b eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xe04d4684 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xe074fbdf __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe092bcfa acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xe0a537e5 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe0ef456f regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe12b33b6 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xe130d975 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xe1e5e11f class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xe1eaf8ec vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xe28e050a ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2a1158f class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xe2a385be each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xe2d4cece ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xe2d85add apic +EXPORT_SYMBOL_GPL vmlinux 0xe2e4d9dd regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xe2e4eca4 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe33d92ae usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0xe359ba82 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xe37057b4 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0xe3827ff8 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0xe3927e60 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0xe39473f4 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xe3a85b05 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xe4037ada pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0xe43cb1fe get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xe4428977 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xe4866c6d xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xe4bb80aa generic_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0xe50229b0 cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0xe508e896 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xe513afc0 cache_k8_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xe5486500 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xe5637506 ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0xe57216dc inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xe57db371 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xe5b1b4fe generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0xe5bf6063 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xe5c2157d wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe632157b __add_pages +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe65c2bd2 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0xe65c47cf print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0xe6602e9f perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0xe6739f14 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xe6a7c46d sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe6aab7b6 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xe6d8ef1d sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe70cd852 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe7881216 css_depth +EXPORT_SYMBOL_GPL vmlinux 0xe7cce8eb ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe85a8654 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0xe85e7029 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe8cedbc9 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xe93b736a platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe9956505 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xe9d19904 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xe9d9a701 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xe9e1644e tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xe9f29a50 pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea17ba98 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xea3d2c4e anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea62194a ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0xea71d57b ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xea89f3df cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xeab222ba pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb00b0bd skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xeb19ff11 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0xeb247215 put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0xeb5bd4c3 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xeb96cb8f pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0xebba0c37 ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xebe44e5e hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0xebf8240d sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec1b14a1 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec849ad1 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0xec9ccb71 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0xeca0d694 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xecbf10b2 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xed143c2c sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0xed2a9b64 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xed77ee7a cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0xed8a437f page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xee3c6b83 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0xeeb77964 acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0xeef1472c ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xeef954a9 css_id +EXPORT_SYMBOL_GPL vmlinux 0xef0b9a51 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef4e5534 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xefcac87b rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xf004696b skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xf0473059 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf07d4a81 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xf0cb8a76 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0xf123f7fe i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1a96d81 scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0xf1b4e105 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xf21c9d01 ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0xf22bed1b relay_open +EXPORT_SYMBOL_GPL vmlinux 0xf241ba9e usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0xf25d5399 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xf2873286 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xf2b894ef locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf329c522 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0xf336379f ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf35b2f7a class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xf37c421d sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0xf38d8608 ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b55256 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf40ebf65 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf41cd103 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0xf42a648d pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0xf4357db9 swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0xf45a7bed noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xf48eacbe skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4a2d61e alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xf4a8385f iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0xf4ad346a __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xf4cd9f25 dm_rh_inc_pending +EXPORT_SYMBOL_GPL vmlinux 0xf5030c1a platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf50d7110 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0xf5455ecd crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0xf54ad18f crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5593017 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf560f2c4 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5de1e60 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xf63edba7 user_describe +EXPORT_SYMBOL_GPL vmlinux 0xf64cd5c9 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0xf6514ea6 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0xf65b5aa2 device_add +EXPORT_SYMBOL_GPL vmlinux 0xf6712293 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xf6764492 erst_get_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xf6d7c1e1 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0xf6e7444a platform_device_add +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 0xf73861b3 gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0xf785494c pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xf7c1a8a2 usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xf7d65853 xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0xf7e24b74 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf8052957 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xf81b4dd5 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xf834e9d3 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf892aaa0 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8fe9409 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw +EXPORT_SYMBOL_GPL vmlinux 0xf9773c18 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0xf9924426 arch_add_memory +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9c62fb5 blk_abort_request +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 0xfa26b998 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xfa4582dc simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xfa7c6787 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0xfad49303 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xfae2beb8 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xfaf09d52 ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfafe0e89 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0xfb216e99 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb3ecbde wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xfb5e27eb pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0xfb882fb7 wmi_query_block +EXPORT_SYMBOL_GPL vmlinux 0xfbb3afd9 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0xfbbec4c0 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0xfbca3033 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xfbf3bdc1 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xfbf854a9 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc01b623 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xfc215f7d input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xfc4a24db rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0xfc5d679b ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xfc616722 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xfc7b6098 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xfc8d9f76 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfcaf3ab8 xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xfcd32a64 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xfceb4e8f adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xfd0b395f relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0xfd21d215 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xfd2824f9 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0xfd2d6a86 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfd8f28cf platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xfd9b8d92 gpiochip_remove +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 0xfe57ddda usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xfe7c166c cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xfe8df89b __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfec792f9 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfed4d2af tcp_set_state +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 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffa5a917 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xffc04666 tty_put_char --- linux-2.6.35.orig/debian.master/abi/2.6.35-28.49/amd64/virtual +++ linux-2.6.35/debian.master/abi/2.6.35-28.49/amd64/virtual @@ -0,0 +1,11160 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0x138cdb10 kvm_read_guest_atomic +EXPORT_SYMBOL arch/x86/kvm/kvm 0x502934b8 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 0x5a9966d8 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x28dbf81a 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 0x013c5ef1 drm_sg_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x023e0305 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x036bb530 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x09b377c1 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0bac0884 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0cb3008b drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ccad1fd drm_mode_find_dmt +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 0x1308bda9 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x162867a3 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a06038a drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ab63267 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1abf31fe drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b22a7df drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b9439be drm_mode_create +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 0x2108ec95 drm_get_resource_start +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21822c4d drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25f1c3a3 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26cf9c4d drm_encoder_init +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 0x2a32ea4d drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ae93152 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c0dc0e6 drm_gem_object_release +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 0x3042d75e drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x309c6845 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30ad1209 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3751c8fd drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37bc1f63 drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37bd8def drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x386e90d8 drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39319394 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3aeb31ae drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b497b11 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3dbebf0f drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e7cd19a drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3fc017d8 drm_lock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44a137af drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x45141a7a drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x462e5da5 drm_framebuffer_cleanup +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 0x4831d2c2 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a344a38 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e46f7e8 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x518e5282 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53f3c3af drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54bbf231 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54ed53d8 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54f411ce drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x564ee7b8 drm_get_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x56ee358e drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x592d8870 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5bf5d3d5 drm_get_drawable_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5edd8642 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f11cca0 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f808798 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6972bf0e drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x69e898a7 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a2de014 drm_debugfs_create_files +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 0x6d35ab3b drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e950f34 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc44881 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7084c2f6 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x713e7d84 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x715d9ab6 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x719b3c5b drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d52f111 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7ecbc110 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81020a74 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x869b301c drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x88ff2f0e drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b882457 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f475905 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f4a4335 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x903dd43e drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9209d304 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x94266771 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9499875d drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9abc0448 drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9bfbadaa drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4b03224 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4f1b276 drm_core_ioremap_wc +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 0xa6324b60 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa73febc2 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa78310bf drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa97a376e drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb108f598 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb29b171e drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb7792b44 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb80e5b36 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb85b1264 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8a03679 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8d75f70 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbdfd0e4e drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc12050e1 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc243112d drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc78301f5 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc78be0f4 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca4482c1 drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcaabb0b7 drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb6241f4 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xccbd2ec1 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0455c49 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd494c539 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4be93dc drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd57bba73 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5c7fb86 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd63d6819 drm_core_get_map_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc3a4f6a drm_lock_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdcd9bae0 drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd46eecb drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdda9d66e drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf3c8c37 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf9d8ebb drm_irq_install +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 0xe48fb0ab drm_agp_chipset_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe50f163a drm_master_get +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 0xee8b587b drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf021b62c drm_mode_detachmode_crtc +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 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 0xf474b271 drm_get_resource_len +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf5c2070e drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb5020ac drm_i_have_hw_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc187412 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc575d92 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdaf018f drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe3c88bf drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffdd750b drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x11133f65 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x12abe029 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x18aedac7 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x374aac00 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x47fa9251 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4aea5ff1 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4d57839d drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4d8891c8 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x527ba75c drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x52ae4aa5 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5e86d062 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5fa40ff1 drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x61c88b74 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x64ee3340 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x67714836 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6bd725f8 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6c8d08a4 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7ee4a260 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8aca876b drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8ed5e60a drm_fb_helper_setcmap +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 0xa3e42e73 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb5132d36 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb6ee4e70 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbdfad36e drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc7a2953f drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd9eebe9a drm_kms_helper_poll_fini +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 0x42563833 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x475199a5 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x89ec0c6a rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 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 0x0a7389ae rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x276fff99 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2ee89271 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3858fe8d rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3a0540ab rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x58114b26 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5ff6da69 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6a8c908f rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7434599b rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x74ed441c rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x848598e8 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9185a594 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xaa57135d rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbe804d34 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcc20a1f4 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd815f877 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe55ac64f rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xeb317f57 rdma_reject +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 0x15f5f6b3 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x1dcaf442 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x7786a660 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xce30a1e4 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xeb6a76c9 mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xf319346e 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 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 0x01366ca7 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xb963340d isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xe412aff8 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 0x1e669012 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1fc2c981 confirm_Bsend +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 0x2cf74417 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x37eee51a mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x382778dc mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ef163b9 mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4c928c98 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x51c74ffa get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5894b2c3 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x63679afd queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7955a519 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x814dad69 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x81db1e28 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x98cb0f70 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa99fb5f8 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb2c036b6 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbf579bc9 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd6f28d7c recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd9fef16d mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe11aac51 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe3e01e1f create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe6636f55 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf4404837 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfa4bc47f mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL drivers/md/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL drivers/media/IR/ir-core 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 0x3da0d9ed dib7000p_attach +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 0xa1750ad6 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd524469e dib7000p_pid_filter +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 0x06ffb9b2 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0733c9a9 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x09918a1d mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4f6c2876 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x56c9388d mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6042fc48 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x669ca7f6 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7875fc5d mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x808f3b27 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x857efddc mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x886e284d mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xaad12eb5 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xada97374 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xafc7f65f mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb7062b61 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc1299b06 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc2115895 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcbbb28ae mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcd3794b8 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcdd36a50 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcde8ff96 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcfa368c0 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd6d16cd5 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xde6f0db0 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdff49a02 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe33c6427 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf1088f8a mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf23a7614 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf8793782 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0c9408e5 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1258c831 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x20370706 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x20915c62 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2dbd7702 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x33047752 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3dfadf08 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x40c83c4a mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4424ccf2 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4452795c mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x452b3424 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x45896543 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x52e5680e mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6955a35a mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6dfbc275 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x79225b47 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8aeffba4 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa39b8436 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa3eb34d4 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xba17cab7 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcdbaa282 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd36d4e01 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe5fac5d6 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xeb36bef5 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf6a48226 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xff19e49e mptscsih_taskmgmt_complete +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 0x88f56d27 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 0xe7f63e25 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x 0x7d7488d1 bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x3120e1c0 cnic_register_driver +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x20b6d36d cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x35f168f8 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x623ab482 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x79359eac cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7c41ac48 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8bc0ffb9 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x99543099 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa609eba6 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa9f86102 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xae9d01be t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc078698c cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc1e77a70 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc7e32900 cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe96d358d t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe9ca42ee cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xec5b5823 t3_l2t_send_slow +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 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 0x7fccbcce cxgb4_ofld_send +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 0x9ffbd4b7 cxgb4_pktgl_to_skb +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 0x054c6304 register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xdb20742c pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xdfd4bfcc 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 0x1a9c45f4 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x327183c8 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4092ca5f libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5aa0b660 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5bdbaa66 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6468b871 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x653c4d3f libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6892eb27 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x730c2198 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x73770539 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8a51eb93 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x98e1dc6d libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb3daed3e libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb66f5685 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb86f5c22 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc0fcd433 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd2138678 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd97383d2 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe1cc49cd libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe7fc7b1e libipw_is_valid_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 0x01154f78 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1a0835c0 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1e6e6ef0 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x46720a23 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xaea9ef30 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xba8512ef fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xfdbf70c6 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x053cf086 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x16a8caa5 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x24cb7ef3 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x24ede91d fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2a4d2ea4 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2ea79a9a fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2fb3afb4 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x313c1bda fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x34c8fe4e fc_fabric_logoff +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 0x3dd45d97 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4e787fa4 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5777cc47 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x577d9750 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x57a39b10 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5c34c2d3 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5d836c86 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x66f17c63 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x673c6cc2 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6812c28f fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x87e223f9 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8cdcf51b fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8e6ed398 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9f1e3a78 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa35fdf9e fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa7a5c4f4 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaa452552 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb2f2b0f4 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb377f0a2 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc5440e61 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb3af767 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd807f818 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xddc950d4 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xde4f7a85 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe26039ba fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe541febf fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xec94eabd _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xee58da0d fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf5a3cc8f fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf84d9523 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfae7f7e7 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfd25fb87 fc_set_rport_loss_tmo +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 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x13214df7 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x17b79674 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x206db7fd osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x27e9b663 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x28f4305e osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x38107095 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3890270e osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3e83680a osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3f073dfd osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x40cc7729 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x43472264 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4543aa44 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5174c0d4 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x58cd4f93 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6e081938 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7fd8a7c7 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8335ed7e osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8a413d87 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9b137286 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9e5d49d9 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xade6ebdb osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xadff2fa1 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc008dab6 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc2ff8cda osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcee25103 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd46d6bfb osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd61066b9 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd73d16bd osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdfa7409c osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf293d8d5 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf8780bab osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfb1c44e1 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/osd 0x0fe18a0f osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x1742e52d osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x6326f8e3 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x6781abe2 osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0xc2cc74c4 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xee71de54 osduld_register_test +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x0f9444a9 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x362a2d6c qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5a5cb901 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5b65617e qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xc10d459d qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf8f3c7c2 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/raid_class 0x3b11b692 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x7d168e10 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xd02af619 raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x08109852 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x15f28e3c fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x681727eb fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x81b0a208 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x841bf7a9 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x87d245a1 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa2e1d212 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb11dbc2e fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbc998a66 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc42e337e scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xce57a738 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf694b202 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xff318ebe fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x08249afd sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1eeab126 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2222dd49 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2eccbee7 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2ffde8e8 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3d7ad910 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x587d10a4 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x58a46229 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x655dbb3d sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x68c23da7 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7340b91a sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7ab5a90d sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7b0aa4ab scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x864761d6 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa1508dc8 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa84e1a19 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaad64941 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb19b780d sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbd799ed0 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcbd25dc8 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd0eedb14 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd196ee51 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd9f8ae7f sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xecdab83e sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf7b09c39 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xff1f8bf6 sas_port_delete +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 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 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 0x6c414d9a ieee80211_txb_free_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 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 0xd3cc9f9a ieee80211_rx_mgt_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 0xe6acee0e ieee80211_rx_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 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 0x0f546bfa vme_slave_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x0ff6c01d vme_dma_list_exec +EXPORT_SYMBOL drivers/staging/vme/vme 0x151c623d vme_irq_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x1c24403f vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x26ce631c vme_irq_generate +EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf vme_lm_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x43e2f154 vme_master_read +EXPORT_SYMBOL drivers/staging/vme/vme 0x47070d15 vme_master_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x51807b5d vme_slot_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x589e2553 vme_dma_list_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f vme_dma_pci_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x717cc9fc vme_bus_type +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 0x87654621 vme_irq_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/staging/vme/vme 0x9a3dfee8 vme_register_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/staging/vme/vme 0x9d279035 vme_master_write +EXPORT_SYMBOL drivers/staging/vme/vme 0xa09d045f vme_get_size +EXPORT_SYMBOL drivers/staging/vme/vme 0xa21ba6e1 vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0xae3f11f9 vme_unregister_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0xc8352002 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xca6c16d3 vme_irq_handler +EXPORT_SYMBOL drivers/staging/vme/vme 0xcc5b0af0 vme_slave_set +EXPORT_SYMBOL drivers/staging/vme/vme 0xcdc22ba9 vme_dma_request +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 0xeccbeafc vme_dma_free_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xee7438f0 vme_lm_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xf1b1bb11 vme_free_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0xf5040c95 vme_dma_list_add +EXPORT_SYMBOL drivers/staging/vme/vme 0xfad7345f vme_register_bridge +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free +EXPORT_SYMBOL drivers/telephony/ixj 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 0x3bae990c usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x43489220 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x44e8a6f1 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6d759d3c usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x83f6f4e1 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x875245d6 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa0856890 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa3656776 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xaa99f12e usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xab1bfc06 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xab82e2e3 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb6cfe8a2 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe861d40b usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf99fc4b5 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x384b4675 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xf18eb844 usb_serial_resume +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 0x6ea98e6c w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xa8106045 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xe4ce1bcb w1_add_master_device +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 0x20f17b76 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x6d72d5fd aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xd3c6c9b4 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xea29b5bf atrtr_get_dev +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x33945374 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x3537740c vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x5363a1ad register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x577a2656 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x6f03009a atm_charge +EXPORT_SYMBOL net/atm/atm 0x9acf6680 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xcd4f7239 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0xd96fe1c7 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xe201f843 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xf40121ca vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xf6914257 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0xfb92599e atm_dev_deregister +EXPORT_SYMBOL net/ax25/ax25 0x0479d44f ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x151f780c ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x18b5fe57 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x3ba61ee8 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x5e69d146 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x61ce4507 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x83272bf3 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x97dfa55b ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x9a0fa004 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xb0977fdf ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/bluetooth/bluetooth 0x014c6108 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0238956f bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x04dac41a hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0754c715 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x120cee6e bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x177176d4 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x181bf821 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x29bc7972 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x355bee97 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x378b5fab hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x39120699 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3bae789d hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x487a57dc hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4f55bc39 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x51fb17d4 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5ed10903 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5fb638a1 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6fe14a40 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x94f17d9d hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9a3c6c45 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9d0c96e0 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa064d608 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa81f9a12 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xacf89372 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xae4f8fa6 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb34e0f4f hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbf287d57 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc4bbb4fd hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd64305ac hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xde673db0 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdf512f61 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xed742759 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0xcf9d2e41 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x59a7c75e ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x5d70cfdf ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x7064ebc2 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 0x05487a5b can_proto_register +EXPORT_SYMBOL net/can/can 0xbabd510b can_rx_register +EXPORT_SYMBOL net/can/can 0xc173e9bb can_proto_unregister +EXPORT_SYMBOL net/can/can 0xc3d4cc23 can_send +EXPORT_SYMBOL net/can/can 0xef21ac4e can_rx_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x0ecc02f9 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x1791e767 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x286ef6b1 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x45d512f0 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4676f18c ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x51970bc2 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x8127db83 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x812a5c6f wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb2ee0544 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc19dd208 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc6b098dc wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe032c5b6 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xec327219 wpan_phy_for_each +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x571695f5 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x88f38b25 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xacb242f3 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x62c49572 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x7057feb4 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xe283b096 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1b99bda2 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1f3dbe60 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x8c2ef103 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x932e1bd3 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb481140b nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xbfd6fa47 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf2d34338 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/tunnel4 0x161fec2c xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xe9c8724f xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x524dcac0 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x8639b47a ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xa52bc524 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xac39e452 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0x64246974 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x8135e53d xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x02df34e1 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x0d6f65d9 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x5a90f569 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 0x26da7c57 l2tp_recv_common +EXPORT_SYMBOL net/l2tp/l2tp_core 0xf3f07d3b l2tp_tunnel_destruct +EXPORT_SYMBOL net/lapb/lapb 0x01c40cca lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x4bb81629 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x4fe45f2a lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x53f83c5d lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x5a402b4b lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x8727a4a7 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x9102ef9a lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xf10dfc6b 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 0x20f5f439 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x27058cb3 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3229b7ba unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3957bf64 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x39ea98a9 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8103a3ec register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9225c34e ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x94031279 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xae5f7894 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb3125b92 ip_vs_skb_replace +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xcb9e7f69 ip_vs_conn_put +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 0x1ec8095a xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x2cf84781 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x490bd159 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x4f2cb657 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6c0fa0ac xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x6d94f20a xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x9cb23230 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xaebbb7f6 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xc518e244 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xd5c0a910 xt_unregister_match +EXPORT_SYMBOL net/phonet/phonet 0x01a5e7c7 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x150d9f4d phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x1af8247d phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x6f8d9f8a pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0xa58c50f1 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0xa6bdfb11 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xbb48ce64 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0xef3904e0 pn_sock_hash +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x171881ad rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2026cc6f key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2a18d763 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2c491ff7 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4e2d6a0a rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5a9a4882 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6b3d0e67 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8181981e rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x87a0e8f4 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9258d3c9 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x971a5b63 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa903c9c3 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb5771bfd rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb837eb3a rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe1ac9ae5 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf754becf 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 0x25363cc6 wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0x826301cf wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x00701304 cfg80211_get_bss +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 0x0cdde2a1 ieee80211_amsdu_to_8023s +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 0x20a896e5 ieee80211_data_from_8023 +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 0x3e103e6b ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x400b66e7 cfg80211_rx_action +EXPORT_SYMBOL net/wireless/cfg80211 0x45b69859 cfg80211_classify8021d +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 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 0x9a393558 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x9c2d5910 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0xb286192e wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xb6cdd209 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xbacc204e __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xbd799190 ieee80211_data_to_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 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 0x257bf912 dm_mem_cache_free +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x3c8d51f5 dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x60613804 dm_mem_cache_client_destroy +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x92c2ce62 dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xac68901f dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xc7f3df7b dm_mem_cache_shrink +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x000d910f bio_clone +EXPORT_SYMBOL vmlinux 0x001ef709 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x0024da32 km_query +EXPORT_SYMBOL vmlinux 0x004e7639 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x004fd42c kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0094d65f vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x00959dd2 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x00bd9d31 add_timer +EXPORT_SYMBOL vmlinux 0x00ce14ba register_snap_client +EXPORT_SYMBOL vmlinux 0x00db9ecf md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x00ea8a65 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x00f1d319 d_delete +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01140251 pid_task +EXPORT_SYMBOL vmlinux 0x016a08fd rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01a51267 udp_disconnect +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 0x01e7fb18 serio_close +EXPORT_SYMBOL vmlinux 0x01ee2b5c pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x01f0204d mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x01f1fb57 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x024b52bf dquot_resume +EXPORT_SYMBOL vmlinux 0x025e8b05 thaw_process +EXPORT_SYMBOL vmlinux 0x025f748f tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x02974b8a skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02aff2f4 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0x02b16500 __blockdev_direct_IO_newtrunc +EXPORT_SYMBOL vmlinux 0x02cbe5aa inet_del_protocol +EXPORT_SYMBOL vmlinux 0x02cf2687 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02e01fa8 mddev_congested +EXPORT_SYMBOL vmlinux 0x03168f5d init_timer_key +EXPORT_SYMBOL vmlinux 0x032c66ee mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x032edd35 tty_insert_flip_string_flags +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 0x03579a4d sockfd_lookup +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x0395f439 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03eac609 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x03fee42d __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x043941d6 __ps2_command +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04bc9c67 md_check_recovery +EXPORT_SYMBOL vmlinux 0x04d44a62 kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04ec3f0d blk_execute_rq +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x052b9558 install_exec_creds +EXPORT_SYMBOL vmlinux 0x053c504a dm_exception_store_type_unregister +EXPORT_SYMBOL vmlinux 0x0540ce28 tcp4_gro_receive +EXPORT_SYMBOL vmlinux 0x0549ac06 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x05599304 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x0562bf8a km_report +EXPORT_SYMBOL vmlinux 0x058c38c1 get_write_access +EXPORT_SYMBOL vmlinux 0x05a29260 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x05e20f65 sk_stream_error +EXPORT_SYMBOL vmlinux 0x05e28d43 __first_cpu +EXPORT_SYMBOL vmlinux 0x0612c6c2 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x061ca5ac mmc_card_awake +EXPORT_SYMBOL vmlinux 0x06255bf7 input_allocate_device +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06896cbd dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x06a485f2 __krealloc +EXPORT_SYMBOL vmlinux 0x06ab60c0 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x06bdc701 set_pages_nx +EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x06d97558 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x06dde1dd md_done_sync +EXPORT_SYMBOL vmlinux 0x06f7e500 dm_io_client_resize +EXPORT_SYMBOL vmlinux 0x06f87914 read_dev_sector +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x076442aa slow_work_cancel +EXPORT_SYMBOL vmlinux 0x07653dcd generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x078d5d0f __pci_register_driver +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong +EXPORT_SYMBOL vmlinux 0x079f1558 blk_insert_request +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07bc8b02 key_revoke +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07d9bc34 sock_tx_timestamp +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 0x0865dfac neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x089ffb88 dm_dirty_log_destroy +EXPORT_SYMBOL vmlinux 0x08d53e4c wake_up_process +EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x08e5dbed pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x08f3776e journal_get_write_access +EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x095ea04f ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x096600ed phy_find_first +EXPORT_SYMBOL vmlinux 0x096c8a2f dentry_open +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +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 0x09b685ec dquot_disable +EXPORT_SYMBOL vmlinux 0x09bf1e6e _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c57d4a dm_snap_cow +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 0x09e17579 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x0a03125a wireless_send_event +EXPORT_SYMBOL vmlinux 0x0a03bf7d remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x0a1cb972 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a52ff5a d_alloc_root +EXPORT_SYMBOL vmlinux 0x0a60216b __netif_schedule +EXPORT_SYMBOL vmlinux 0x0aa5b4ed netpoll_print_options +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0af3b665 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x0b0d36b6 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b0ed270 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x0b11db0f sk_dst_check +EXPORT_SYMBOL vmlinux 0x0b1adc87 blk_integrity_unregister +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 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0bbf5adb irq_stat +EXPORT_SYMBOL vmlinux 0x0bd16139 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x0c0baedc uart_unregister_driver +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 0x0c66d245 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x0c67319d tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x0c791cd5 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c97fd37 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cc29cdb blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x0cc7f956 edac_mce_register +EXPORT_SYMBOL vmlinux 0x0d2c5e2e put_tty_driver +EXPORT_SYMBOL vmlinux 0x0d37c144 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d4b2fde follow_down +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d652bb4 unregister_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x0d6a6181 register_console +EXPORT_SYMBOL vmlinux 0x0d7ad88a dm_exception_store_type_register +EXPORT_SYMBOL vmlinux 0x0d9f4e5b ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dce8745 vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0x0de8747a simple_lookup +EXPORT_SYMBOL vmlinux 0x0de8e721 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x0def7c64 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x0dff8eee skb_insert +EXPORT_SYMBOL vmlinux 0x0e0ed6bc phy_disconnect +EXPORT_SYMBOL vmlinux 0x0e174aa7 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x0e224591 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x0e2bbb91 km_state_expired +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e5a02cd jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x0e5e6719 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x0e75565a neigh_compat_output +EXPORT_SYMBOL vmlinux 0x0e75663a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x0e7f2460 add_disk +EXPORT_SYMBOL vmlinux 0x0ebebe14 groups_free +EXPORT_SYMBOL vmlinux 0x0ebf36a8 dm_put_device +EXPORT_SYMBOL vmlinux 0x0ed8cc7b acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x0f43f831 sync_blockdev +EXPORT_SYMBOL vmlinux 0x0f5d6b4d kmalloc_caches +EXPORT_SYMBOL vmlinux 0x0f7b585a rfkill_blocked +EXPORT_SYMBOL vmlinux 0x0f7cc1b7 tty_hangup +EXPORT_SYMBOL vmlinux 0x0f86a2e9 dquot_commit +EXPORT_SYMBOL vmlinux 0x0f927b37 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x0fac778d take_over_console +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fc5e8eb radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x0fc6fea2 blk_free_tags +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ffe6d7d serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x101289d7 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x1015064f iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x104d7125 padata_stop +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x10865ad1 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint +EXPORT_SYMBOL vmlinux 0x109fbc71 fb_class +EXPORT_SYMBOL vmlinux 0x10b63df1 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x10bac516 input_set_capability +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10df97a7 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +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 0x11459c5c scsi_block_requests +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x1190b1f2 seq_putc +EXPORT_SYMBOL vmlinux 0x119a66b3 ilookup +EXPORT_SYMBOL vmlinux 0x11ab89a5 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x11ba34f7 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x11cf63bf skb_append +EXPORT_SYMBOL vmlinux 0x11d8c5d6 register_md_personality +EXPORT_SYMBOL vmlinux 0x11e94dda pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0x11edef79 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x11f09313 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x120ee165 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x12281cf0 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x122c493f __skb_checksum_complete +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 0x128d114c eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x12983e9f bdi_register +EXPORT_SYMBOL vmlinux 0x129ceef6 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x12a461b7 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x12e0bd85 phy_start +EXPORT_SYMBOL vmlinux 0x12f26bb8 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x12fb94bf eth_header_cache +EXPORT_SYMBOL vmlinux 0x1306508e genphy_suspend +EXPORT_SYMBOL vmlinux 0x1328965f uart_get_baud_rate +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 0x13b769f9 d_add_ci +EXPORT_SYMBOL vmlinux 0x13bb15e3 set_trace_device +EXPORT_SYMBOL vmlinux 0x13bee55c journal_revoke +EXPORT_SYMBOL vmlinux 0x13e19043 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x13e8bae5 ht_create_irq +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x1436917d down_write +EXPORT_SYMBOL vmlinux 0x1437b983 compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x147cf951 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x14954225 con_is_bound +EXPORT_SYMBOL vmlinux 0x149d0d61 alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x14a72141 dma_supported +EXPORT_SYMBOL vmlinux 0x14b12b02 nf_reinject +EXPORT_SYMBOL vmlinux 0x14b54776 dentry_unhash +EXPORT_SYMBOL vmlinux 0x14c89ab7 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x14ce0ed4 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x14d2f829 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x14e462a6 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x1508b517 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x153cfaa3 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x1567affe bmap +EXPORT_SYMBOL vmlinux 0x1576eb3c mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x159417da mdiobus_write +EXPORT_SYMBOL vmlinux 0x15af33f4 create_mnt_ns +EXPORT_SYMBOL vmlinux 0x15b35d92 register_framebuffer +EXPORT_SYMBOL vmlinux 0x15d8c8aa edac_mce_unregister +EXPORT_SYMBOL vmlinux 0x15e204d2 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x15eb7266 ndisc_build_skb +EXPORT_SYMBOL vmlinux 0x16074984 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x160c5d4d no_llseek +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x161241f5 __f_setown +EXPORT_SYMBOL vmlinux 0x1619993f neigh_update +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x164394cb tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x16592094 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x165b4c91 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x16963abd key_task_permission +EXPORT_SYMBOL vmlinux 0x16a62b97 sg_miter_start +EXPORT_SYMBOL vmlinux 0x16af320a blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x16dff2b8 tty_set_operations +EXPORT_SYMBOL vmlinux 0x16ee290e tcf_register_action +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x17175757 commit_creds +EXPORT_SYMBOL vmlinux 0x1719638c udp_sendmsg +EXPORT_SYMBOL vmlinux 0x173cee67 serio_reconnect +EXPORT_SYMBOL vmlinux 0x173d8644 igrab +EXPORT_SYMBOL vmlinux 0x174e17fa set_anon_super +EXPORT_SYMBOL vmlinux 0x1755f2e1 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x175f82e1 key_validate +EXPORT_SYMBOL vmlinux 0x1763f015 ida_remove +EXPORT_SYMBOL vmlinux 0x1779a825 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x178730a6 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x1789bfc8 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x17b26c32 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x17b39019 unregister_snap_client +EXPORT_SYMBOL vmlinux 0x17c34405 tcf_em_register +EXPORT_SYMBOL vmlinux 0x17c85a66 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x17cacf3d blk_end_request +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x1820e67d ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x1849454e module_refcount +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x185c2825 md_barrier_request +EXPORT_SYMBOL vmlinux 0x186b5f29 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x186e5982 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x18777861 fb_set_var +EXPORT_SYMBOL vmlinux 0x189b6bac memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x18a5b497 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x18a94385 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x18b72573 register_kmmio_probe +EXPORT_SYMBOL vmlinux 0x18b77f6e xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x18d7ab0c __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x1901c218 block_truncate_page +EXPORT_SYMBOL vmlinux 0x1902397e dquot_quota_on_path +EXPORT_SYMBOL vmlinux 0x1929efe2 journal_clear_err +EXPORT_SYMBOL vmlinux 0x192e5873 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x195159c4 netpoll_setup +EXPORT_SYMBOL vmlinux 0x19683990 slow_work_sleep_till_thread_needed +EXPORT_SYMBOL vmlinux 0x1983fe7e proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x198bcfe7 unregister_console +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19b16064 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x19e0ee24 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x19f79e64 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x1a1585cf blk_plug_device +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a8a845e idle_nomwait +EXPORT_SYMBOL vmlinux 0x1a8f6c16 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x1a925a66 down +EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in +EXPORT_SYMBOL vmlinux 0x1aa1020b sock_no_connect +EXPORT_SYMBOL vmlinux 0x1aac8792 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x1ab16378 audit_log_format +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ae8d0dd xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b2b924c __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x1b3c41aa security_inode_readlink +EXPORT_SYMBOL vmlinux 0x1b5ab808 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b6c897b prepare_creds +EXPORT_SYMBOL vmlinux 0x1b6d2556 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b967ed5 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1be8e711 blk_init_queue +EXPORT_SYMBOL vmlinux 0x1beb0d31 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x1bf369f9 kthread_bind +EXPORT_SYMBOL vmlinux 0x1c0662e1 console_start +EXPORT_SYMBOL vmlinux 0x1c113364 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x1c16e9fe gen_new_estimator +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c3234e3 md_write_start +EXPORT_SYMBOL vmlinux 0x1c36616d posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x1c381704 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x1c5619bd __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x1c5eacf7 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1c9f3bff scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x1ca808ba arp_send +EXPORT_SYMBOL vmlinux 0x1cb999a9 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x1cc1797f con_copy_unimap +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cd5b742 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x1d2ab136 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d300be1 input_register_handle +EXPORT_SYMBOL vmlinux 0x1d34ca27 tty_check_change +EXPORT_SYMBOL vmlinux 0x1d91efc4 nobh_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x1d95a71e udp_proc_register +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 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1ded3949 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x1def2c35 get_disk +EXPORT_SYMBOL vmlinux 0x1e036c98 acpi_set_gpe +EXPORT_SYMBOL vmlinux 0x1e03a39f poll_freewait +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e2a1482 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x1e2e427f cpumask_next_and +EXPORT_SYMBOL vmlinux 0x1e3f5e28 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x1e4c1884 kfree_skb +EXPORT_SYMBOL vmlinux 0x1e68b7e2 sock_wake_async +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e7bcc2e i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x1e87b3f5 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x1e8a4747 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x1e9c6ed6 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x1e9eaedc security_inode_permission +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1eb01149 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x1ecfde6b inode_claim_rsv_space +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 0x1f5b604b sk_receive_skb +EXPORT_SYMBOL vmlinux 0x1f8c98f8 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x1fc8051b i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fd59798 vfs_link +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005cf97 tty_unregister_driver +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 0x203c354c generic_ro_fops +EXPORT_SYMBOL vmlinux 0x205c5ef3 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x20bdf1f6 register_filesystem +EXPORT_SYMBOL vmlinux 0x20be2b86 compat_ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x20dd618b bd_release +EXPORT_SYMBOL vmlinux 0x20dee933 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x20e519ea blk_sync_queue +EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum +EXPORT_SYMBOL vmlinux 0x20f180dd alloc_fcdev +EXPORT_SYMBOL vmlinux 0x2104021f inet6_bind +EXPORT_SYMBOL vmlinux 0x21285a8a netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x2151767e tty_port_close +EXPORT_SYMBOL vmlinux 0x215a6415 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x21843721 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x2191cd25 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x21b4ab01 dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x21c527f8 thaw_super +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21f2b445 simple_statfs +EXPORT_SYMBOL vmlinux 0x2202bc98 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x220bd2b7 pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x220da6e2 simple_release_fs +EXPORT_SYMBOL vmlinux 0x222bff54 inode_permission +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x2250c367 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x22570a40 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x226ef1ba __scsi_add_device +EXPORT_SYMBOL vmlinux 0x227fcd85 mdiobus_read +EXPORT_SYMBOL vmlinux 0x228728d4 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x228ff057 filp_open +EXPORT_SYMBOL vmlinux 0x2297b7ab scsi_device_put +EXPORT_SYMBOL vmlinux 0x22a0703d file_remove_suid +EXPORT_SYMBOL vmlinux 0x22a571be write_one_page +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22c9e734 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x22d73c78 phy_sanitize_settings +EXPORT_SYMBOL vmlinux 0x22da60d6 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x22f59dc3 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x2314ad38 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul +EXPORT_SYMBOL vmlinux 0x232856a2 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x23435fbd dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x234509f3 strncat +EXPORT_SYMBOL vmlinux 0x234b4e42 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x234f85f4 abort_creds +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x236c8c64 memcpy +EXPORT_SYMBOL vmlinux 0x238197ce stop_tty +EXPORT_SYMBOL vmlinux 0x2384757b dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x23927c59 tcp_md5_hash_header +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 0x240c32b3 dm_dirty_log_type_register +EXPORT_SYMBOL vmlinux 0x2436313f pci_disable_device +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x24699041 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x2482c32d rt6_lookup +EXPORT_SYMBOL vmlinux 0x24d433c8 dev_addr_del +EXPORT_SYMBOL vmlinux 0x24ddd89a __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x24ef8d17 skb_kill_datagram +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 0x2578e8df acpi_bus_add +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25a34959 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x25c4d571 mapping_tagged +EXPORT_SYMBOL vmlinux 0x25e5939e fb_set_suspend +EXPORT_SYMBOL vmlinux 0x25ec1b28 strlen +EXPORT_SYMBOL vmlinux 0x26061d11 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x261ad215 proc_mkdir +EXPORT_SYMBOL vmlinux 0x2626461c tcf_exts_change +EXPORT_SYMBOL vmlinux 0x262e1431 invalidate_partition +EXPORT_SYMBOL vmlinux 0x2637d513 __seq_open_private +EXPORT_SYMBOL vmlinux 0x26467b22 iget_failed +EXPORT_SYMBOL vmlinux 0x2684d8e7 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x269637e4 arp_broken_ops +EXPORT_SYMBOL vmlinux 0x269b69a6 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x26d6c0b6 mempool_create +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x2706b431 inet_bind +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +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 0x275949f7 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x277b90ff rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x2792c018 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x27a7332b fifo_set_limit +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c33efe csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x27c3d7e5 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic +EXPORT_SYMBOL vmlinux 0x27d5e3a7 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x2802e520 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x285599eb qdisc_reset +EXPORT_SYMBOL vmlinux 0x28599d80 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll +EXPORT_SYMBOL vmlinux 0x2864fe92 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x28693dcc mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x287660c7 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x288e3278 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x288e5c5f bio_split +EXPORT_SYMBOL vmlinux 0x289b5e35 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28eaf133 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x28faaafa wait_on_page_bit +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 0x295da123 __lookup_one_len +EXPORT_SYMBOL vmlinux 0x2993871c scsi_host_get +EXPORT_SYMBOL vmlinux 0x29a71db6 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x29b7f640 register_netdevice +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29ecb26f fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x29f4c6fe blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x2a2285ec _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x2a281a3f xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a49a20e file_update_time +EXPORT_SYMBOL vmlinux 0x2a57778f pci_find_capability +EXPORT_SYMBOL vmlinux 0x2a8716d0 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x2abbf17e bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x2accdaa4 pci_find_bus +EXPORT_SYMBOL vmlinux 0x2ad6ce00 lock_may_read +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b1c200c kick_iocb +EXPORT_SYMBOL vmlinux 0x2b200d96 vmap +EXPORT_SYMBOL vmlinux 0x2b2718f7 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x2b6214f0 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x2b8d592e xfrm_state_walk +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 0x2bbe91b8 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x2be3c340 journal_load +EXPORT_SYMBOL vmlinux 0x2bef4fdb dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c0fb478 hippi_change_mtu +EXPORT_SYMBOL vmlinux 0x2c353474 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x2c4031bb dev_driver_string +EXPORT_SYMBOL vmlinux 0x2c4ce4cf dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x2c606929 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x2c82294d dump_trace +EXPORT_SYMBOL vmlinux 0x2c86b261 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x2c8e060f page_follow_link_light +EXPORT_SYMBOL vmlinux 0x2cc92161 devm_free_irq +EXPORT_SYMBOL vmlinux 0x2ccf5c72 xfrm_input +EXPORT_SYMBOL vmlinux 0x2cd9d683 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d15f130 revalidate_disk +EXPORT_SYMBOL vmlinux 0x2d3b575f panic_notifier_list +EXPORT_SYMBOL vmlinux 0x2d5528c9 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x2d68b4b5 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2da2da17 block_prepare_write +EXPORT_SYMBOL vmlinux 0x2db3f09a inet_stream_ops +EXPORT_SYMBOL vmlinux 0x2db40640 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x2db80625 keyring_clear +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2de0792c tty_devnum +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2e06111d cpu_present_mask +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x2e5713ca dev_mc_flush +EXPORT_SYMBOL vmlinux 0x2e8886cd alloc_disk_node +EXPORT_SYMBOL vmlinux 0x2ea6ccd9 __nla_put +EXPORT_SYMBOL vmlinux 0x2ed23d7f generic_show_options +EXPORT_SYMBOL vmlinux 0x2ee0c6ca ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x2ef93579 skb_dequeue +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f26f76e dquot_enable +EXPORT_SYMBOL vmlinux 0x2f4bccf9 dm_table_event +EXPORT_SYMBOL vmlinux 0x2f88f53a blk_put_request +EXPORT_SYMBOL vmlinux 0x2f8afef5 vfs_readdir +EXPORT_SYMBOL vmlinux 0x2f8b8ae3 alloc_disk +EXPORT_SYMBOL vmlinux 0x2fa5a500 memcmp +EXPORT_SYMBOL vmlinux 0x2ff063b5 acpi_get_name +EXPORT_SYMBOL vmlinux 0x300cec22 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x3014edf8 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x305f3e19 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x30612cd3 get_user_pages +EXPORT_SYMBOL vmlinux 0x3062c349 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x306d4469 __inet6_hash +EXPORT_SYMBOL vmlinux 0x3083ebdd vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0x309305f2 unlock_rename +EXPORT_SYMBOL vmlinux 0x30bdffd4 uart_register_driver +EXPORT_SYMBOL vmlinux 0x30beeec5 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x30c7507e skb_copy_expand +EXPORT_SYMBOL vmlinux 0x30c75199 downgrade_write +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30e9ceba alloc_file +EXPORT_SYMBOL vmlinux 0x30efeef7 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x30fdf08d open_by_devnum +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 0x31a5a89b register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +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 0x3231e275 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x323b211b dev_uc_init +EXPORT_SYMBOL vmlinux 0x32450ef3 thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0x325f5066 qdisc_list_del +EXPORT_SYMBOL vmlinux 0x326616d2 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc +EXPORT_SYMBOL vmlinux 0x327dfef8 idr_replace +EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint +EXPORT_SYMBOL vmlinux 0x328dfbe1 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x3294b615 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x32d88c20 register_qdisc +EXPORT_SYMBOL vmlinux 0x334211db scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x335e6963 nf_log_register +EXPORT_SYMBOL vmlinux 0x336b7c86 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x336fdaab netif_carrier_off +EXPORT_SYMBOL vmlinux 0x33860a53 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x33923a8a locks_init_lock +EXPORT_SYMBOL vmlinux 0x33b7d76f agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33bde63b xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x33d9f0cc ip6_route_output +EXPORT_SYMBOL vmlinux 0x33e08aeb simple_link +EXPORT_SYMBOL vmlinux 0x33f8d41e dmam_pool_create +EXPORT_SYMBOL vmlinux 0x340a6cc1 compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0x3411142f tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x341eab27 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long +EXPORT_SYMBOL vmlinux 0x345d7ff1 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x346dea03 agp_flush_chipset +EXPORT_SYMBOL vmlinux 0x347968cc inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x347f937d tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34c41e61 __kfree_skb +EXPORT_SYMBOL vmlinux 0x34ec63e3 spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0x352eafd4 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x353427c9 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x353ca2b3 acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x356a2049 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x3582ed17 vfs_stat +EXPORT_SYMBOL vmlinux 0x35888f4c tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x35aa7573 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x35b0650f vsnprintf +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35c31276 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x361a5a7f sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x361fd6fa fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x3634428f page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x3653e637 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x3658834e get_sb_ns +EXPORT_SYMBOL vmlinux 0x36745edd simple_setattr +EXPORT_SYMBOL vmlinux 0x3679f08d set_page_dirty +EXPORT_SYMBOL vmlinux 0x36843d67 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x36870c5e tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x368fa683 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x36a10e45 sk_reset_txq +EXPORT_SYMBOL vmlinux 0x36a5a7bc pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x36de98fb bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x3701a196 csum_partial_copy_to_user +EXPORT_SYMBOL vmlinux 0x372db1f6 seq_lseek +EXPORT_SYMBOL vmlinux 0x373b0ebf sock_i_uid +EXPORT_SYMBOL vmlinux 0x373bb944 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x37490142 blk_get_request +EXPORT_SYMBOL vmlinux 0x375465a7 radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic +EXPORT_SYMBOL vmlinux 0x37b79e9b unregister_key_type +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37cc39d4 datagram_poll +EXPORT_SYMBOL vmlinux 0x37d907ac dqget +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37fb08bd tcf_hash_search +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x382ea3f8 vc_resize +EXPORT_SYMBOL vmlinux 0x3855c876 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x38604208 set_blocksize +EXPORT_SYMBOL vmlinux 0x38884dbe agp_put_bridge +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38c45022 journal_force_commit_nested +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 0x390db598 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x3911a3c3 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x3960428e follow_up +EXPORT_SYMBOL vmlinux 0x396ac4f2 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x397d7da8 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x398e147e genphy_config_advert +EXPORT_SYMBOL vmlinux 0x3995f0e1 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x399719e1 do_splice_from +EXPORT_SYMBOL vmlinux 0x39a73af0 eth_header_parse +EXPORT_SYMBOL vmlinux 0x39c24e5b i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x39edd4c2 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x3a05abe2 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a7173ac complete_all +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3ad5f178 names_cachep +EXPORT_SYMBOL vmlinux 0x3ae00ded kthread_create +EXPORT_SYMBOL vmlinux 0x3ae7d41f __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x3af48398 dget_locked +EXPORT_SYMBOL vmlinux 0x3af9cae9 idr_remove +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b39160e vm_map_ram +EXPORT_SYMBOL vmlinux 0x3b442bcc tty_port_close_end +EXPORT_SYMBOL vmlinux 0x3b4cd8fb input_release_device +EXPORT_SYMBOL vmlinux 0x3b649129 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x3b76b061 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x3bb3c3fb inet_frag_kill +EXPORT_SYMBOL vmlinux 0x3bbd4ace pnp_device_attach +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bee0175 node_data +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c7b2083 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cae0dad udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x3cb78da1 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x3cde6997 generic_file_open +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cf89d7f cpu_info +EXPORT_SYMBOL vmlinux 0x3d096979 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x3d2aafd1 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x3d573f5d abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x3d6713ec splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d822b24 writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x3d8728bb memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x3d9ee9f0 clear_page +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3da66717 tc_classify +EXPORT_SYMBOL vmlinux 0x3dafd62c sk_wait_data +EXPORT_SYMBOL vmlinux 0x3db2e258 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x3db8b01c tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x3dc7dbf7 page_put_link +EXPORT_SYMBOL vmlinux 0x3dc99b5a unlock_new_inode +EXPORT_SYMBOL vmlinux 0x3dcccca6 simple_write_end +EXPORT_SYMBOL vmlinux 0x3dcebf8d blk_complete_request +EXPORT_SYMBOL vmlinux 0x3df336ac dev_set_mtu +EXPORT_SYMBOL vmlinux 0x3df9c029 mnt_pin +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 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e464231 lookup_one_len +EXPORT_SYMBOL vmlinux 0x3e4826a5 devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x3e5851b6 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e8ce20f pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3eb131f6 file_permission +EXPORT_SYMBOL vmlinux 0x3ec60e8a input_set_keycode_big +EXPORT_SYMBOL vmlinux 0x3ecc3e16 x86_hyper +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ee79054 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x3efbbe81 sock_no_accept +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f2ff18f ppp_channel_index +EXPORT_SYMBOL vmlinux 0x3f3bc1c4 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f4ab3ff qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x3f5e7b61 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x3f622645 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x3f90b193 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x3fa913da strspn +EXPORT_SYMBOL vmlinux 0x3fc7627d inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x3fdef153 save_mount_options +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ff9df63 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x3ffff745 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x40195b71 tty_register_driver +EXPORT_SYMBOL vmlinux 0x40230d64 security_path_mknod +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x40627a95 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x40879284 tcp_v4_destroy_sock +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 0x40b07260 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40da98e3 __elv_add_request +EXPORT_SYMBOL vmlinux 0x40dfaa2d register_gifconf +EXPORT_SYMBOL vmlinux 0x40ecd4e4 pskb_copy +EXPORT_SYMBOL vmlinux 0x40ecf7a6 spi_attach_transport +EXPORT_SYMBOL vmlinux 0x40f59ca8 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x410a4e39 kernel_bind +EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp +EXPORT_SYMBOL vmlinux 0x41408088 kobject_put +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4157da1f jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x41669741 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x417ca493 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x4184e77b phy_driver_register +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41c9a981 handle_sysrq +EXPORT_SYMBOL vmlinux 0x41d06715 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x41d9613d spi_release_transport +EXPORT_SYMBOL vmlinux 0x41f1b43b i8253_lock +EXPORT_SYMBOL vmlinux 0x420a6ab8 up_write +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x424cd8dc neigh_lookup +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x426a9874 skb_checksum +EXPORT_SYMBOL vmlinux 0x427dbe87 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x428abd21 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +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 0x42cc8b6d dqput +EXPORT_SYMBOL vmlinux 0x43027acf blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43099626 pci_release_region +EXPORT_SYMBOL vmlinux 0x43176415 d_genocide +EXPORT_SYMBOL vmlinux 0x4318f6b8 compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0x43198857 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x432b5198 sb_min_blocksize +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 0x43742aa0 tty_mutex +EXPORT_SYMBOL vmlinux 0x43909ae1 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x43973fb0 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get +EXPORT_SYMBOL vmlinux 0x43be35f3 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x43d7cb76 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x43db0c08 llc_sap_close +EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg +EXPORT_SYMBOL vmlinux 0x44099c43 submit_bh +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x4455e565 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x44a81d5f acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44cf4255 module_layout +EXPORT_SYMBOL vmlinux 0x44e95d81 dev_get_stats +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x450337fa inetdev_by_index +EXPORT_SYMBOL vmlinux 0x4510aa17 agp_find_bridge +EXPORT_SYMBOL vmlinux 0x4511f6bd netlink_set_err +EXPORT_SYMBOL vmlinux 0x452cfc24 agp_enable +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 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 0x45a98958 __getblk +EXPORT_SYMBOL vmlinux 0x45a9cf2d do_sync_write +EXPORT_SYMBOL vmlinux 0x45be938e secpath_dup +EXPORT_SYMBOL vmlinux 0x45c3c0ce skb_find_text +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45dce379 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x46087e4a dquot_commit_info +EXPORT_SYMBOL vmlinux 0x464ce151 set_pages_array_wb +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x4670fd25 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x467b0f08 abx500_register_ops +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 0x46ddaff1 security_path_unlink +EXPORT_SYMBOL vmlinux 0x4709ad8d phy_enable_interrupts +EXPORT_SYMBOL vmlinux 0x47134d65 thaw_bdev +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 0x474d3711 scsi_execute_req +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 0x4799479c pci_dev_get +EXPORT_SYMBOL vmlinux 0x479bbb07 vfs_write +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 0x47eacec5 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x47eb658e unregister_netdev +EXPORT_SYMBOL vmlinux 0x480bd6bb kmem_cache_alloc_notrace +EXPORT_SYMBOL vmlinux 0x481267c7 tcp_v4_remember_stamp +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 0x4840fd7b aio_put_req +EXPORT_SYMBOL vmlinux 0x48563367 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x4867401a __breadahead +EXPORT_SYMBOL vmlinux 0x4871889a jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x48854d0a skb_seq_read +EXPORT_SYMBOL vmlinux 0x489a945c tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x48e493e8 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x4908b721 netpoll_send_skb +EXPORT_SYMBOL vmlinux 0x491caf83 napi_frags_finish +EXPORT_SYMBOL vmlinux 0x49255787 key_unlink +EXPORT_SYMBOL vmlinux 0x492ab060 follow_pfn +EXPORT_SYMBOL vmlinux 0x49375448 scsi_init_io +EXPORT_SYMBOL vmlinux 0x4937d9ec vfs_llseek +EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x494e3393 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x4961cd4b padata_start +EXPORT_SYMBOL vmlinux 0x4973a063 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x497db9e4 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x498d7883 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x498fd593 llc_sap_find +EXPORT_SYMBOL vmlinux 0x49a0de29 dev_remove_pack +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 0x4a221d49 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x4a224b0b blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a5199e5 slow_work_unregister_user +EXPORT_SYMBOL vmlinux 0x4a533982 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x4a7d467e genl_register_ops +EXPORT_SYMBOL vmlinux 0x4a87ea6e ll_rw_block +EXPORT_SYMBOL vmlinux 0x4a928944 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x4a970db8 kill_fasync +EXPORT_SYMBOL vmlinux 0x4aa43da2 kdb_current_task +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4ab14575 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4ace5a0f bdev_read_only +EXPORT_SYMBOL vmlinux 0x4ad4256c qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x4aed350d get_sb_bdev +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b02cd96 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b0a19df dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x4b19ecc0 do_sync_read +EXPORT_SYMBOL vmlinux 0x4b1cea4a nf_register_hooks +EXPORT_SYMBOL vmlinux 0x4b2dbd19 tty_throttle +EXPORT_SYMBOL vmlinux 0x4b2ff1db thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0x4b377278 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x4b77a400 sk_free +EXPORT_SYMBOL vmlinux 0x4b7e255d noop_llseek +EXPORT_SYMBOL vmlinux 0x4b8a447d cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x4ba20399 neigh_create +EXPORT_SYMBOL vmlinux 0x4ba82c4e dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c1c7562 agp_create_memory +EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp +EXPORT_SYMBOL vmlinux 0x4c4d53af unregister_quota_format +EXPORT_SYMBOL vmlinux 0x4c4fa9c0 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x4c4fef19 kernel_stack +EXPORT_SYMBOL vmlinux 0x4c774151 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x4c95e40f dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cd2c832 __netdev_alloc_page +EXPORT_SYMBOL vmlinux 0x4cdaea32 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x4ce97d5d blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x4cfb9b6b i2c_use_client +EXPORT_SYMBOL vmlinux 0x4d46d842 file_fsync +EXPORT_SYMBOL vmlinux 0x4d4ac6b3 fd_install +EXPORT_SYMBOL vmlinux 0x4d552e61 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x4d642c2e blk_peek_request +EXPORT_SYMBOL vmlinux 0x4d867c1d eth_type_trans +EXPORT_SYMBOL vmlinux 0x4d8970e1 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x4dbd0d47 skb_queue_head +EXPORT_SYMBOL vmlinux 0x4dc07553 generic_setlease +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dda110c generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x4dda726b match_strlcpy +EXPORT_SYMBOL vmlinux 0x4de470d0 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x4deab7bb find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e10c342 sock_rfree +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 0x4e8acbfd sock_create +EXPORT_SYMBOL vmlinux 0x4e99c48f cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x4ea88d1c bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x4ec3838a journal_force_commit +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4f197c52 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x4f1c9554 __scm_destroy +EXPORT_SYMBOL vmlinux 0x4f1caf92 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f29d68d unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x4f2ed17b sock_no_getname +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 0x4f8ac162 lro_flush_all +EXPORT_SYMBOL vmlinux 0x4f8b5ddb _copy_to_user +EXPORT_SYMBOL vmlinux 0x4fb59ecb make_bad_inode +EXPORT_SYMBOL vmlinux 0x4fc667a6 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x4fd46ff4 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x50166463 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x5039530a jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x503b8dea dquot_release +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x505873f4 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x5059faa4 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x50621198 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x5067085c dquot_quota_on +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x506e6f2f _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x507eead0 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x50843854 inet_accept +EXPORT_SYMBOL vmlinux 0x509d01eb kernel_sendpage +EXPORT_SYMBOL vmlinux 0x50b28115 inet_ioctl +EXPORT_SYMBOL vmlinux 0x50b84e5b ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5140ff84 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x5150c219 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x5151af26 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x5179c6eb mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL vmlinux 0x51c1d4e8 __free_pages +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e03d3a xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x520407ae bio_integrity_clone +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 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x5287b81c sk_filter +EXPORT_SYMBOL vmlinux 0x5294aaeb otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52b93bd3 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x52c3bd88 security_path_truncate +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +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 0x532eab0d dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x533e0ec0 kstat +EXPORT_SYMBOL vmlinux 0x53433183 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x5363976b skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x5391b813 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x53a02924 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x53a19541 freeze_super +EXPORT_SYMBOL vmlinux 0x53b25905 init_special_inode +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53d0fcdf bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x540085d9 elv_abort_queue +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x542ce6b7 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x54383fe2 generic_getxattr +EXPORT_SYMBOL vmlinux 0x543e9ed2 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x5446b03a inet_recvmsg +EXPORT_SYMBOL vmlinux 0x54568b75 register_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x545de314 dput +EXPORT_SYMBOL vmlinux 0x546be192 journal_extend +EXPORT_SYMBOL vmlinux 0x547831ab i8042_install_filter +EXPORT_SYMBOL vmlinux 0x54832714 mutex_unlock +EXPORT_SYMBOL vmlinux 0x54a14eeb remove_inode_hash +EXPORT_SYMBOL vmlinux 0x54b0b628 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x54ca2cf0 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x54df40df tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x5514e1c2 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x551b508e scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x551c4578 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x554d14a9 invalidate_inodes +EXPORT_SYMBOL vmlinux 0x554f11a8 iput +EXPORT_SYMBOL vmlinux 0x5562d57d padata_do_serial +EXPORT_SYMBOL vmlinux 0x556cdf01 arp_create +EXPORT_SYMBOL vmlinux 0x5573e358 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x5594a724 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x559bd3d4 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x55a15bba rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0x55b8bc63 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x55bf6a56 pci_choose_state +EXPORT_SYMBOL vmlinux 0x55ccdd02 filemap_flush +EXPORT_SYMBOL vmlinux 0x55da0a0f xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x55dded25 mmc_align_data_size +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 0x560be487 give_up_console +EXPORT_SYMBOL vmlinux 0x56116d62 audit_log_start +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x56209471 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x56337ca3 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5638fea0 blk_remove_plug +EXPORT_SYMBOL vmlinux 0x563b7803 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x56432394 user_revoke +EXPORT_SYMBOL vmlinux 0x5643f5e5 bio_init +EXPORT_SYMBOL vmlinux 0x5658179e idr_get_new +EXPORT_SYMBOL vmlinux 0x56a03fe7 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x56b847b1 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56d57b8c dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x56d8e526 serio_rescan +EXPORT_SYMBOL vmlinux 0x56db3d06 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x56df5a59 mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0x56f494e0 smp_call_function +EXPORT_SYMBOL vmlinux 0x56fc650f mutex_lock +EXPORT_SYMBOL vmlinux 0x5717c55b mpage_writepage +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x573d2646 input_flush_device +EXPORT_SYMBOL vmlinux 0x574d3266 xfrm_policy_delete +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 0x578cd336 __bio_clone +EXPORT_SYMBOL vmlinux 0x578edd26 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x57937126 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x5794ee21 kill_litter_super +EXPORT_SYMBOL vmlinux 0x57b09822 up +EXPORT_SYMBOL vmlinux 0x57b31996 netif_rx +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57b85d36 sg_miter_next +EXPORT_SYMBOL vmlinux 0x57bb6a6a redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57dde3af kernel_accept +EXPORT_SYMBOL vmlinux 0x57ea3c8c dma_pool_create +EXPORT_SYMBOL vmlinux 0x5806d76c bdget +EXPORT_SYMBOL vmlinux 0x582c1af0 journal_init_inode +EXPORT_SYMBOL vmlinux 0x58336209 eth_header +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x58645b1c blkdev_put +EXPORT_SYMBOL vmlinux 0x58698615 lro_receive_skb +EXPORT_SYMBOL vmlinux 0x587c70d8 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x589699fb tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x58bc1d8c i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x58d979ea pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x58db1437 dw_spi_resume_host +EXPORT_SYMBOL vmlinux 0x58fd6e6c pci_pme_capable +EXPORT_SYMBOL vmlinux 0x592507a3 blkdev_fsync +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 0x5946dba4 task_nice +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59d13164 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59ddacc9 user_path_at +EXPORT_SYMBOL vmlinux 0x59f37e5e copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x5a016611 journal_forget +EXPORT_SYMBOL vmlinux 0x5a01bc28 __scm_send +EXPORT_SYMBOL vmlinux 0x5a0de549 jbd2_journal_get_create_access +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 0x5a663db5 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x5a66ecc3 inet6_getname +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a9cf284 md_write_end +EXPORT_SYMBOL vmlinux 0x5a9fa675 bio_free +EXPORT_SYMBOL vmlinux 0x5aaef4fc scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x5ab8dfd0 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x5ab9f1ba __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5ae8fc7d register_sysrq_key +EXPORT_SYMBOL vmlinux 0x5aef6658 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x5af53550 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x5b025235 bioset_create +EXPORT_SYMBOL vmlinux 0x5b0fccb9 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x5b4c6297 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b53bfcd napi_gro_frags +EXPORT_SYMBOL vmlinux 0x5b5a2a32 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x5b6183a7 default_llseek +EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x5b7a81fd clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x5b87038f nf_setsockopt +EXPORT_SYMBOL vmlinux 0x5b9883bd do_truncate +EXPORT_SYMBOL vmlinux 0x5c10ff0d __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x5c328565 simple_fill_super +EXPORT_SYMBOL vmlinux 0x5c3d1ce1 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x5c3efff9 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x5c435b73 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x5c46b681 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x5c5af7b5 pci_bus_type +EXPORT_SYMBOL vmlinux 0x5c740736 framebuffer_release +EXPORT_SYMBOL vmlinux 0x5c9a1629 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x5ca00072 compat_sock_get_timestampns +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 0x5cdda7c2 pci_dev_put +EXPORT_SYMBOL vmlinux 0x5cfacf82 napi_gro_receive +EXPORT_SYMBOL vmlinux 0x5cfc13c8 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x5d050f78 kill_anon_super +EXPORT_SYMBOL vmlinux 0x5d07cf8e lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0x5d113035 vm_stat +EXPORT_SYMBOL vmlinux 0x5d22ef65 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x5d2fa0e6 ip6_xmit +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +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 0x5dd991ba tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x5e09ca75 complete +EXPORT_SYMBOL vmlinux 0x5e11b29d lookup_hash +EXPORT_SYMBOL vmlinux 0x5e247cec vfs_mkdir +EXPORT_SYMBOL vmlinux 0x5e41d2c9 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x5e73b39d d_find_alias +EXPORT_SYMBOL vmlinux 0x5e88b40b security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e9c02f2 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5ee6c140 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x5ef6fccc sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x5f21ba5b _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x5f28f65b sock_create_kern +EXPORT_SYMBOL vmlinux 0x5f31edc5 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x5f6bfa49 nf_log_packet +EXPORT_SYMBOL vmlinux 0x5f6d93eb skb_make_writable +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fa6cd1b clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x5fbdbb3c uart_update_timeout +EXPORT_SYMBOL vmlinux 0x5fc2971b bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x5fd2298e strnstr +EXPORT_SYMBOL vmlinux 0x5fdf4a4b bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x5fec312b __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities +EXPORT_SYMBOL vmlinux 0x6003fbcd napi_skb_finish +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601a17a5 dqstats +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x6031643e skb_put +EXPORT_SYMBOL vmlinux 0x605c8bde radix_tree_delete +EXPORT_SYMBOL vmlinux 0x60795836 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x6090556c register_con_driver +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60d2f62c tty_register_device +EXPORT_SYMBOL vmlinux 0x60ddbbd5 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n +EXPORT_SYMBOL vmlinux 0x611485ff kill_block_super +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x612cbe21 key_type_keyring +EXPORT_SYMBOL vmlinux 0x61419f7d blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x61445330 seq_read +EXPORT_SYMBOL vmlinux 0x61470150 dquot_acquire +EXPORT_SYMBOL vmlinux 0x614a9529 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0x614b53b7 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x615a3dcb mod_timer +EXPORT_SYMBOL vmlinux 0x618911fc numa_node +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61da8a81 key_negate_and_link +EXPORT_SYMBOL vmlinux 0x61e904a4 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x61f46538 __register_chrdev +EXPORT_SYMBOL vmlinux 0x61f8d5b2 ppp_input_error +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x621a62c3 blk_unplug +EXPORT_SYMBOL vmlinux 0x6223cafb _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x622a7b94 simple_setsize +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x625dc2f0 fail_migrate_page +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 0x62afc8e9 lock_super +EXPORT_SYMBOL vmlinux 0x62c729a0 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x62ce4e6a kernel_listen +EXPORT_SYMBOL vmlinux 0x62d6bcb9 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x637849b1 security_file_mmap +EXPORT_SYMBOL vmlinux 0x63991214 jbd2_journal_get_write_access +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 0x642dc40b fsync_bdev +EXPORT_SYMBOL vmlinux 0x6443d74d _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x64441217 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x6449fd41 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x645aed0b arp_xmit +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 0x6491c137 f_setown +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x649bd10d phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x64b14fd2 seq_release_private +EXPORT_SYMBOL vmlinux 0x64c259e7 sock_map_fd +EXPORT_SYMBOL vmlinux 0x64e90ef0 del_timer +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x64f8b6fb mdiobus_register +EXPORT_SYMBOL vmlinux 0x65022a24 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x650affac nobh_writepage +EXPORT_SYMBOL vmlinux 0x650bcff5 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x6522228f nobh_write_end +EXPORT_SYMBOL vmlinux 0x653d55f6 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x657985bb security_d_instantiate +EXPORT_SYMBOL vmlinux 0x657a26fd xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x6596877d unlock_page +EXPORT_SYMBOL vmlinux 0x65b30c2c inet_frags_init +EXPORT_SYMBOL vmlinux 0x65c82f02 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x66059401 find_vma +EXPORT_SYMBOL vmlinux 0x6629ef8e max8925_set_bits +EXPORT_SYMBOL vmlinux 0x66466be9 get_io_context +EXPORT_SYMBOL vmlinux 0x66473160 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x6660d7b1 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66cedd97 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x66e071f5 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0x66eadd27 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x67057ecc udp_poll +EXPORT_SYMBOL vmlinux 0x670c0597 down_interruptible +EXPORT_SYMBOL vmlinux 0x672144bd strlcpy +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x6739a885 dev_txq_stats_fold +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x6743f447 mmc_host_enable +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 0x67b4cac3 sk_run_filter +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67bf8f81 remove_from_page_cache +EXPORT_SYMBOL vmlinux 0x67c85676 dquot_transfer +EXPORT_SYMBOL vmlinux 0x67e7ae56 elv_register_queue +EXPORT_SYMBOL vmlinux 0x680c730e i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x6819c9ad ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x682d0ac1 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x68344e86 netlink_unicast +EXPORT_SYMBOL vmlinux 0x6851a83b netlink_dump_start +EXPORT_SYMBOL vmlinux 0x685cf233 x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x6885df5e xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x68891aab unregister_cdrom +EXPORT_SYMBOL vmlinux 0x68f0e7dc generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0x691001b5 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +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 0x699737c4 page_readlink +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69a3601d blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x69a42838 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x69b2919d fsnotify_obtain_group +EXPORT_SYMBOL vmlinux 0x69c48f08 bdput +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 0x69ff9578 acpi_root_dir +EXPORT_SYMBOL vmlinux 0x6a027f5c __lock_page +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a0dccc7 dev_load +EXPORT_SYMBOL vmlinux 0x6a1131db unload_nls +EXPORT_SYMBOL vmlinux 0x6a168ea6 tty_write_room +EXPORT_SYMBOL vmlinux 0x6a23ca92 phy_detach +EXPORT_SYMBOL vmlinux 0x6a3ba975 idr_find +EXPORT_SYMBOL vmlinux 0x6a3cdb85 generic_listxattr +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a8d9563 fput +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 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6ae616c8 genphy_resume +EXPORT_SYMBOL vmlinux 0x6afb29ce sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x6afe0bd1 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x6b0d876c kset_register +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b21cf90 __nla_reserve +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 0x6b7c5b53 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x6b9795ca slow_work_register_user +EXPORT_SYMBOL vmlinux 0x6ba6248c d_instantiate +EXPORT_SYMBOL vmlinux 0x6bb12738 tty_port_open +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bc56c67 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6be00bc6 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x6bf79764 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x6bf84cf0 __page_cache_alloc +EXPORT_SYMBOL vmlinux 0x6bf8d133 down_trylock +EXPORT_SYMBOL vmlinux 0x6c0987f7 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x6c130bf6 skb_push +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 0x6c436bb3 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x6c49f983 bio_pair_release +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 0x6c7ae77c scsi_get_command +EXPORT_SYMBOL vmlinux 0x6cb57b03 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x6cbe7632 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x6cbfa047 bd_claim +EXPORT_SYMBOL vmlinux 0x6cd79558 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x6ce58142 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x6ce7ded2 __napi_schedule +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 0x6d3028d7 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x6d334118 __get_user_8 +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d534b51 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d70f3e0 load_nls +EXPORT_SYMBOL vmlinux 0x6d79d5e5 sock_update_classid +EXPORT_SYMBOL vmlinux 0x6d7b3c46 generic_writepages +EXPORT_SYMBOL vmlinux 0x6d889da3 tty_kref_put +EXPORT_SYMBOL vmlinux 0x6d8f9639 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x6d9a4e86 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x6da0c608 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x6dade432 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x6db3451c try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x6dc0def6 replace_mount_options +EXPORT_SYMBOL vmlinux 0x6de6bf83 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6dfffc31 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x6e212bff kill_pid +EXPORT_SYMBOL vmlinux 0x6e21b365 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x6e2c3b83 tcp_ioctl +EXPORT_SYMBOL vmlinux 0x6e38160b blk_stack_limits +EXPORT_SYMBOL vmlinux 0x6e69cb21 consume_skb +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e802324 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x6e8641a2 key_link +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6f21c55b skb_clone +EXPORT_SYMBOL vmlinux 0x6f32db3e tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x6f33fe4c dev_close +EXPORT_SYMBOL vmlinux 0x6f36242b gen_pool_create +EXPORT_SYMBOL vmlinux 0x6f3a35db unregister_con_driver +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f6d2961 keyring_search +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6faae914 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x6fc3686d jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fcf3f0e aio_complete +EXPORT_SYMBOL vmlinux 0x6fd4b809 dm_table_get +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x7045f7ed blkdev_issue_flush +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 0x70887357 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x708c8ade writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x708df7f1 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x7096725b freeze_bdev +EXPORT_SYMBOL vmlinux 0x70b3984c mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x70b8b9d8 vc_cons +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70e0969b dev_alloc_name +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 0x713575e5 d_path +EXPORT_SYMBOL vmlinux 0x714200aa pipe_lock +EXPORT_SYMBOL vmlinux 0x7156a875 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71721640 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71ad50aa iget_locked +EXPORT_SYMBOL vmlinux 0x71bb41e4 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x71c4b101 napi_reuse_skb +EXPORT_SYMBOL vmlinux 0x71f19f90 serio_open +EXPORT_SYMBOL vmlinux 0x71f6eb38 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x721c8ace pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x723f85b5 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x7240f212 vfs_getattr +EXPORT_SYMBOL vmlinux 0x7242e96d strnchr +EXPORT_SYMBOL vmlinux 0x724665ba input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x726fdb93 vga_get +EXPORT_SYMBOL vmlinux 0x72927451 __find_get_block +EXPORT_SYMBOL vmlinux 0x729c53c1 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x72a98fdb copy_user_generic_unrolled +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte +EXPORT_SYMBOL vmlinux 0x72ce0243 netdev_set_master +EXPORT_SYMBOL vmlinux 0x72e40846 tcp_prot +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x73252f64 seq_open_private +EXPORT_SYMBOL vmlinux 0x7334a278 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x733a1093 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x73437d02 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x737c1563 put_page +EXPORT_SYMBOL vmlinux 0x73872e5e _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x7389c9a8 acpi_bus_get_power +EXPORT_SYMBOL vmlinux 0x738dd132 padata_alloc +EXPORT_SYMBOL vmlinux 0x7395c16e scsi_put_command +EXPORT_SYMBOL vmlinux 0x739e1998 is_bad_inode +EXPORT_SYMBOL vmlinux 0x73a77add simple_transaction_release +EXPORT_SYMBOL vmlinux 0x73a8bb88 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x73b12bca default_file_splice_read +EXPORT_SYMBOL vmlinux 0x73f2b877 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x740b0a5a journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x742fe035 nla_append +EXPORT_SYMBOL vmlinux 0x743004a5 unlock_super +EXPORT_SYMBOL vmlinux 0x74425e02 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte +EXPORT_SYMBOL vmlinux 0x744e738f fddi_type_trans +EXPORT_SYMBOL vmlinux 0x745917a3 do_SAK +EXPORT_SYMBOL vmlinux 0x746272a0 set_security_override +EXPORT_SYMBOL vmlinux 0x7479a3ad inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x747a27ab __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x7482ec48 audit_log_end +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74ee4714 ppp_input +EXPORT_SYMBOL vmlinux 0x75155042 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x752f908a ip_route_input_common +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x7546c24b cfb_imageblit +EXPORT_SYMBOL vmlinux 0x754ab3d2 in6_dev_finish_destroy +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 0x757a269f get_sb_nodev +EXPORT_SYMBOL vmlinux 0x758b2464 sock_no_listen +EXPORT_SYMBOL vmlinux 0x75999375 security_path_rmdir +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75cc5893 security_path_chown +EXPORT_SYMBOL vmlinux 0x75ecee3a vm_insert_page +EXPORT_SYMBOL vmlinux 0x75fa266c scsi_unregister +EXPORT_SYMBOL vmlinux 0x75fbdefd acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760a8bc9 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x763c54ed pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x7650cdaf generic_fillattr +EXPORT_SYMBOL vmlinux 0x765f1703 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x766c5cd6 bdevname +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 0x76a3377b soft_cursor +EXPORT_SYMBOL vmlinux 0x76a400d9 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x76aad48c mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x76adc6e8 mntput_no_expire +EXPORT_SYMBOL vmlinux 0x76b88b17 write_inode_now +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76c07ad9 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x76c4ecf5 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x76c6494b set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d5ab9f scsi_remove_target +EXPORT_SYMBOL vmlinux 0x76f3f8a5 num_k8_northbridges +EXPORT_SYMBOL vmlinux 0x76fe3c6c d_invalidate +EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x775e4831 security_path_link +EXPORT_SYMBOL vmlinux 0x77a04379 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x77a6836e sock_wfree +EXPORT_SYMBOL vmlinux 0x77a71491 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x77ad8ec8 set_pages_array_wc +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77cecaac dquot_initialize +EXPORT_SYMBOL vmlinux 0x77cfff62 block_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77e660e1 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77f53abc acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x781ea1ce phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x782acba5 crc_t10dif +EXPORT_SYMBOL vmlinux 0x782ce6eb filemap_fault +EXPORT_SYMBOL vmlinux 0x782e80df acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x783aa21a llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x784c3e00 write_cache_pages +EXPORT_SYMBOL vmlinux 0x784e1806 blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0x785a962e rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x7866e78f uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x78764f4e pv_irq_ops +EXPORT_SYMBOL vmlinux 0x78800dd2 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0x78804983 cdev_init +EXPORT_SYMBOL vmlinux 0x78808fa5 sk_common_release +EXPORT_SYMBOL vmlinux 0x78961aa0 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x789ea6dd generic_write_sync +EXPORT_SYMBOL vmlinux 0x78ba1f5a del_gendisk +EXPORT_SYMBOL vmlinux 0x78bf84e5 dm_register_target +EXPORT_SYMBOL vmlinux 0x78dc6b04 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x78de23ac xfrm_register_km +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x79047808 compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x7910b47e simple_transaction_get +EXPORT_SYMBOL vmlinux 0x7947cd55 pci_get_device +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 0x79816d76 scsi_register +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79e0434e remap_pfn_range +EXPORT_SYMBOL vmlinux 0x7a03f9e8 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol +EXPORT_SYMBOL vmlinux 0x7a36f856 sock_init_data +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a706a1e skb_copy_bits +EXPORT_SYMBOL vmlinux 0x7a82ff34 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x7aa7bd38 pnp_is_active +EXPORT_SYMBOL vmlinux 0x7abc267b abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x7ac00fd7 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip +EXPORT_SYMBOL vmlinux 0x7ae73de1 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7aedc1ea tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x7aee92f0 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7b167ce8 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x7b3e32ba pci_restore_state +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b555e2c agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x7b684e23 __bread +EXPORT_SYMBOL vmlinux 0x7b68b23f jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x7b69a966 d_rehash +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 0x7baaf310 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x7bc795bb ip_dev_find +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7be70818 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x7bf17115 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x7bf74c55 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x7c00103f bio_sector_offset +EXPORT_SYMBOL vmlinux 0x7c040eaa inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x7c21e8a1 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x7c3845ba inet_select_addr +EXPORT_SYMBOL vmlinux 0x7c41adad bdi_destroy +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c5f5d62 scsi_print_command +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c7838da sync_inode +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 0x7cd81101 xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x7d087c75 pci_write_vpd +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d15c226 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x7d286360 block_page_mkwrite +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 0x7dae012b sk_stop_timer +EXPORT_SYMBOL vmlinux 0x7dba0471 dev_mc_init +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7dd490d3 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x7dd554fc unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x7dd9f304 skb_tx_hash +EXPORT_SYMBOL vmlinux 0x7dfa5b28 simple_readpage +EXPORT_SYMBOL vmlinux 0x7dfcbb93 __page_symlink +EXPORT_SYMBOL vmlinux 0x7e00d6d3 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x7e2e8a24 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x7e311ad1 backlight_force_update +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e49e7a4 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x7e7d9500 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7eb8a455 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x7eba6564 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy +EXPORT_SYMBOL vmlinux 0x7ee160eb jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x7ee2f02d nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x7eebdeee posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x7ef7d2ca blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x7f01fdc2 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x7f114141 complete_and_exit +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f40c76d alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x7f4bfc16 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x7f5d4c35 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x7f5ee63d ether_setup +EXPORT_SYMBOL vmlinux 0x7f647f4d security_path_mkdir +EXPORT_SYMBOL vmlinux 0x7f74d8b8 genphy_update_link +EXPORT_SYMBOL vmlinux 0x7f75194e simple_rmdir +EXPORT_SYMBOL vmlinux 0x7f75b9de fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x7f7c4968 md_error +EXPORT_SYMBOL vmlinux 0x7f7f893b compat_mc_getsockopt +EXPORT_SYMBOL vmlinux 0x7f9b7e8e __devm_request_region +EXPORT_SYMBOL vmlinux 0x7fb04167 journal_update_format +EXPORT_SYMBOL vmlinux 0x7fbde41b bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x7fbf62c2 force_sig +EXPORT_SYMBOL vmlinux 0x8006641d md_register_thread +EXPORT_SYMBOL vmlinux 0x8012c1e1 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x80177dde iunique +EXPORT_SYMBOL vmlinux 0x8055f5d2 rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0x80627b91 napi_complete +EXPORT_SYMBOL vmlinux 0x8066b0ec dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x80891d5b blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x809ebada security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x80a891b7 cdev_index +EXPORT_SYMBOL vmlinux 0x80aec810 uart_resume_port +EXPORT_SYMBOL vmlinux 0x80d5e41d pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x80f94724 get_phy_device +EXPORT_SYMBOL vmlinux 0x811d8be0 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x814ea4e4 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x81505a59 inode_init_once +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x81701874 have_submounts +EXPORT_SYMBOL vmlinux 0x8191ae58 phy_attach +EXPORT_SYMBOL vmlinux 0x8194dc31 serial8250_register_port +EXPORT_SYMBOL vmlinux 0x81a7578d sock_release +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81d5ee34 ip_fragment +EXPORT_SYMBOL vmlinux 0x81d8cfee dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x81fe1266 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x81ff75cd inet_dev_addr_type +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 0x822e8961 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x82364c66 mpage_readpage +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x82529367 seq_printf +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x82782eef path_put +EXPORT_SYMBOL vmlinux 0x8279e76a unregister_qdisc +EXPORT_SYMBOL vmlinux 0x828cecd5 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x82a1e5d5 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82b4f46b jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x82e2021f __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x82ec4493 dev_alloc_skb +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 0x831d9ba1 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x83372a23 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x83636ee3 wait_for_completion +EXPORT_SYMBOL vmlinux 0x836ed5dd generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x837443c7 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x837b3b97 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x837f1aa9 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x83878da3 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83a73444 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x83ae46cd sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x83aece17 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x83eb26ea hippi_mac_addr +EXPORT_SYMBOL vmlinux 0x84246634 scsi_free_command +EXPORT_SYMBOL vmlinux 0x844c5506 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x845e7bdc ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x84844807 phy_disable_interrupts +EXPORT_SYMBOL vmlinux 0x849cc193 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x84a3930c clocksource_unregister +EXPORT_SYMBOL vmlinux 0x84caf949 bdi_unregister +EXPORT_SYMBOL vmlinux 0x84d61413 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x84e0e2c2 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x84f2eb5d i2c_release_client +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x856dab93 set_current_groups +EXPORT_SYMBOL vmlinux 0x85827517 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x859ad9e1 journal_init_dev +EXPORT_SYMBOL vmlinux 0x85abc85f strncmp +EXPORT_SYMBOL vmlinux 0x85b608e7 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x860a11cd agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x860ebcab find_lock_page +EXPORT_SYMBOL vmlinux 0x862e3737 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x8631f188 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x864ec13e mmc_add_host +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x866754d5 slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x866ada38 hippi_type_trans +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86c7146d vfs_fstat +EXPORT_SYMBOL vmlinux 0x86cc6ef3 pci_map_rom +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 0x87687893 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x876d9b69 mdiobus_free +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x87728909 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87a45ee9 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87ac3bf3 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x87b0aac7 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x87d30f9c __neigh_event_send +EXPORT_SYMBOL vmlinux 0x87d7aaeb pci_remove_bus +EXPORT_SYMBOL vmlinux 0x87f150ed i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x881cd49e jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0x8838c333 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x8860b310 simple_empty +EXPORT_SYMBOL vmlinux 0x886c8557 misc_deregister +EXPORT_SYMBOL vmlinux 0x8871d735 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x88941a06 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x88b85fc9 tty_unthrottle +EXPORT_SYMBOL vmlinux 0x88c89905 find_or_create_page +EXPORT_SYMBOL vmlinux 0x88f898a6 input_get_keycode +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x892c730e page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x89386484 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x897ca7ba load_nls_default +EXPORT_SYMBOL vmlinux 0x89aacf6b netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x89b841e0 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x89bdef83 register_exec_domain +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 0x89fed334 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x8a01259a dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x8a25c47f tcp_make_synack +EXPORT_SYMBOL vmlinux 0x8a3a3346 migrate_page +EXPORT_SYMBOL vmlinux 0x8a6cc07d dquot_alloc +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a906692 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x8a9723a6 netdev_bonding_change +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 0x8ad0d6ec vfs_statfs +EXPORT_SYMBOL vmlinux 0x8add6d90 flush_signals +EXPORT_SYMBOL vmlinux 0x8b0df1b4 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x8b10c2f2 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b3fcf47 vfs_mknod +EXPORT_SYMBOL vmlinux 0x8b43a7d8 skb_pull +EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b605bea init_buffer +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup +EXPORT_SYMBOL vmlinux 0x8b913863 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x8b922c0f __strnlen_user +EXPORT_SYMBOL vmlinux 0x8b9566ee __destroy_inode +EXPORT_SYMBOL vmlinux 0x8b95a171 tcf_hash_create +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 0x8bc844d9 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x8bc98c31 search_binary_handler +EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long +EXPORT_SYMBOL vmlinux 0x8bdb80fa init_net +EXPORT_SYMBOL vmlinux 0x8be0ee2b netif_napi_del +EXPORT_SYMBOL vmlinux 0x8be95937 dev_add_pack +EXPORT_SYMBOL vmlinux 0x8bf69403 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c22e3d4 padata_free +EXPORT_SYMBOL vmlinux 0x8c5483b0 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x8c55139d pci_set_master +EXPORT_SYMBOL vmlinux 0x8c658c41 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x8c66c8f3 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x8c75e300 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x8ca46b71 pci_iomap +EXPORT_SYMBOL vmlinux 0x8ca84ac5 scsi_add_device +EXPORT_SYMBOL vmlinux 0x8cbb42e7 gen_pool_add +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cce1ba3 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x8cdd0549 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x8cfb9394 dm_table_get_size +EXPORT_SYMBOL vmlinux 0x8d42762d tcf_exts_dump +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 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8d9f5cfe pci_select_bars +EXPORT_SYMBOL vmlinux 0x8db8df56 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x8dbac33d tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x8dc17226 d_lookup +EXPORT_SYMBOL vmlinux 0x8dcd9b5a agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x8dceac0f may_umount_tree +EXPORT_SYMBOL vmlinux 0x8dd80ef6 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x8ddfdb73 generic_make_request +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e14f05e vga_put +EXPORT_SYMBOL vmlinux 0x8e3c91ce compat_ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk +EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq +EXPORT_SYMBOL vmlinux 0x8e7b28f0 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x8e8040fd lease_modify +EXPORT_SYMBOL vmlinux 0x8e970f03 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8eb92222 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x8ece18a1 arp_tbl +EXPORT_SYMBOL vmlinux 0x8ee52522 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8f05ee7d sock_no_poll +EXPORT_SYMBOL vmlinux 0x8f0a0ef6 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x8f1703a5 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x8f2371ba percpu_counter_destroy +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 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f67cfce jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f7d33cc blk_rq_init +EXPORT_SYMBOL vmlinux 0x8f849406 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fa768f4 kthread_stop +EXPORT_SYMBOL vmlinux 0x8fb5d2d2 tcp_check_req +EXPORT_SYMBOL vmlinux 0x8fc1fb10 current_fs_time +EXPORT_SYMBOL vmlinux 0x8fc94bb0 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x8fdebe41 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x8fdee367 may_umount +EXPORT_SYMBOL vmlinux 0x8ff9c8b1 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x9021b097 del_timer_sync +EXPORT_SYMBOL vmlinux 0x903dd5aa __brelse +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x904d25ae journal_set_features +EXPORT_SYMBOL vmlinux 0x904f7cda dev_gro_receive +EXPORT_SYMBOL vmlinux 0x907ec5c7 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x908bc0bc hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0x908e0c06 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system +EXPORT_SYMBOL vmlinux 0x90a552a8 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active +EXPORT_SYMBOL vmlinux 0x90be12e7 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x90ce13a8 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x90f2d4dc tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x9105842f phy_connect +EXPORT_SYMBOL vmlinux 0x9111f785 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x9129503d thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0x91443a30 bio_integrity_free +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x914fd177 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x91670ad3 dm_io_client_create +EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong +EXPORT_SYMBOL vmlinux 0x917909bb tcp_parse_options +EXPORT_SYMBOL vmlinux 0x9180411c idr_destroy +EXPORT_SYMBOL vmlinux 0x91abd92a vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x91d2b6a5 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x91d7ac56 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x91e3b101 scsi_print_result +EXPORT_SYMBOL vmlinux 0x92130492 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool +EXPORT_SYMBOL vmlinux 0x922e168e tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x92392cd9 iov_shorten +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x9244689d pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x924ee1e5 key_put +EXPORT_SYMBOL vmlinux 0x926e1ff6 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x927078fc seq_open +EXPORT_SYMBOL vmlinux 0x92cce7d1 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x93439c8f generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x934c7eec pcim_pin_device +EXPORT_SYMBOL vmlinux 0x9369aebd input_open_device +EXPORT_SYMBOL vmlinux 0x937ef5f8 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x938c37fc security_path_chmod +EXPORT_SYMBOL vmlinux 0x938ca17d rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x938dce33 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93ad45a5 gen_pool_free +EXPORT_SYMBOL vmlinux 0x93c1df26 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x93c5f16b pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93f21199 nf_afinfo +EXPORT_SYMBOL vmlinux 0x93f3e52b acpi_extract_package +EXPORT_SYMBOL vmlinux 0x93f83d5c __blk_end_request +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x9411da22 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x94292fa2 textsearch_register +EXPORT_SYMBOL vmlinux 0x9436ae57 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x943aeca9 journal_ack_err +EXPORT_SYMBOL vmlinux 0x9492b386 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +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 0x94cb1e50 inode_init_always +EXPORT_SYMBOL vmlinux 0x94d1452a sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +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 0x9546cf2c d_alloc +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 0x956bafef tty_port_put +EXPORT_SYMBOL vmlinux 0x9573a8c1 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x9585c63f scsi_scan_target +EXPORT_SYMBOL vmlinux 0x95c87772 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x95ceb864 key_update +EXPORT_SYMBOL vmlinux 0x95d27b1d i2c_master_recv +EXPORT_SYMBOL vmlinux 0x9616a5a9 mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x961d04ac nla_put +EXPORT_SYMBOL vmlinux 0x961ffa45 agp_copy_info +EXPORT_SYMBOL vmlinux 0x964954f2 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x9664c267 agp_generic_enable +EXPORT_SYMBOL vmlinux 0x9695db88 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x969b83f4 generic_readlink +EXPORT_SYMBOL vmlinux 0x96a2d0c3 get_fs_type +EXPORT_SYMBOL vmlinux 0x96b97e26 vfs_fsync +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96e2e370 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n +EXPORT_SYMBOL vmlinux 0x972d9bfd jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x97943b07 acpi_device_hid +EXPORT_SYMBOL vmlinux 0x97a58c57 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x97b5e263 netlink_ack +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97f92ce6 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x9804a6ee phy_attach_direct +EXPORT_SYMBOL vmlinux 0x98093e76 idr_get_next +EXPORT_SYMBOL vmlinux 0x981bba2a free_task +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x988b6123 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init +EXPORT_SYMBOL vmlinux 0x98b6667e tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x98d47d46 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x98d85698 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x99274a14 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x993984f0 deactivate_super +EXPORT_SYMBOL vmlinux 0x993c779a fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x9946a68c mark_page_accessed +EXPORT_SYMBOL vmlinux 0x9947c532 blkdev_get +EXPORT_SYMBOL vmlinux 0x99634cd6 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x99799f1e blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x997bb5f5 poll_initwait +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999a05db scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99a8a1fb skb_pad +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 0x9a05838e free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a2b9b47 compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x9aabc564 crc16 +EXPORT_SYMBOL vmlinux 0x9aad1624 vfs_follow_link +EXPORT_SYMBOL vmlinux 0x9aaead9c tty_name +EXPORT_SYMBOL vmlinux 0x9ad5376e rtnl_notify +EXPORT_SYMBOL vmlinux 0x9ad83536 inode_setattr +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b5a31e0 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x9b82fb54 agp_free_memory +EXPORT_SYMBOL vmlinux 0x9ba19327 copy_io_context +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bc7478c input_set_keycode +EXPORT_SYMBOL vmlinux 0x9bf450df __register_binfmt +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan +EXPORT_SYMBOL vmlinux 0x9c1f2fe6 set_groups +EXPORT_SYMBOL vmlinux 0x9c34e116 put_disk +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c4a48c5 bd_set_size +EXPORT_SYMBOL vmlinux 0x9ca95a0e sort +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cc5be2b cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x9cced061 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x9cd550af scsi_mode_sense +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 0x9d253c38 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x9d28621d do_splice_to +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d390b3f journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d4523c6 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x9d495a30 destroy_EII_client +EXPORT_SYMBOL vmlinux 0x9d524347 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x9d5f1905 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x9d68db4c skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x9d9fe7f0 journal_restart +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 0x9df31311 bioset_free +EXPORT_SYMBOL vmlinux 0x9df7b550 flush_old_exec +EXPORT_SYMBOL vmlinux 0x9e07968c dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x9e551d60 journal_check_available_features +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e755b3c xfrm_state_insert +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 0x9ec58eb8 vfs_rename +EXPORT_SYMBOL vmlinux 0x9ecafe10 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x9ecb4e66 netif_device_attach +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 0x9f2d613e param_set_bool +EXPORT_SYMBOL vmlinux 0x9f405e61 bdget_disk +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f6e19ab mem_section +EXPORT_SYMBOL vmlinux 0x9f92efc4 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f9fac4b dm_table_get_md +EXPORT_SYMBOL vmlinux 0x9fbf984f xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x9fd8e6bd tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe6eba1 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x9ff19a35 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x9ffed2d9 simple_getattr +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 0xa066fcee mmc_remove_host +EXPORT_SYMBOL vmlinux 0xa068eead swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0xa08563fe vfs_read +EXPORT_SYMBOL vmlinux 0xa0a2a5be inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xa0a41a27 rtc_lock +EXPORT_SYMBOL vmlinux 0xa0ae432b proc_dointvec +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0c8469c posix_test_lock +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 0xa0d816aa sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0fbcbf7 scsi_eh_finish_cmd +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 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa1228bf0 inet6_release +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa154f7e7 acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0xa172f91d udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xa1805725 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xa182beb6 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xa1a78823 down_read_trylock +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba4b95 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa1c3f0ad tcp_v4_send_check +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 0xa1dd4b07 compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa21197c4 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xa2391d9a acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0xa25dc825 dev_open +EXPORT_SYMBOL vmlinux 0xa2a19d2e __invalidate_device +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2d6ed8f scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa32870ab dst_destroy +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 0xa3951ed1 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0xa3a5be95 memmove +EXPORT_SYMBOL vmlinux 0xa3fbd575 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0xa42ff6a9 alloc_pages_current +EXPORT_SYMBOL vmlinux 0xa43025f7 insert_inode_locked +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa44bcecd neigh_destroy +EXPORT_SYMBOL vmlinux 0xa459dab4 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xa4631584 i2c_register_driver +EXPORT_SYMBOL vmlinux 0xa476141a posix_acl_permission +EXPORT_SYMBOL vmlinux 0xa47fb533 unregister_nls +EXPORT_SYMBOL vmlinux 0xa48a8c62 set_bh_page +EXPORT_SYMBOL vmlinux 0xa4a63746 udp_ioctl +EXPORT_SYMBOL vmlinux 0xa4b3112a ftrace_event_seq +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4e3dc58 neigh_table_clear +EXPORT_SYMBOL vmlinux 0xa4f51946 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0xa4fbfc9a get_gendisk +EXPORT_SYMBOL vmlinux 0xa5174dfe udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xa52261c6 fb_validate_mode +EXPORT_SYMBOL vmlinux 0xa52603e5 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0xa54ae9ef kill_pgrp +EXPORT_SYMBOL vmlinux 0xa559ddb0 sock_no_bind +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa586393e read_cache_page +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5a52db1 tty_shutdown +EXPORT_SYMBOL vmlinux 0xa5e787c0 napi_frags_skb +EXPORT_SYMBOL vmlinux 0xa603e668 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0xa62a9372 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa66e5c5e generic_permission +EXPORT_SYMBOL vmlinux 0xa66e7735 brioctl_set +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa69108b1 cont_write_begin +EXPORT_SYMBOL vmlinux 0xa6a04581 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0xa6cdadec unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa7027f71 bio_unmap_user +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes +EXPORT_SYMBOL vmlinux 0xa76ae374 cap_file_mmap +EXPORT_SYMBOL vmlinux 0xa7cf5f63 ppp_register_channel +EXPORT_SYMBOL vmlinux 0xa80e2742 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xa816c525 schedule_work_on +EXPORT_SYMBOL vmlinux 0xa8521eda alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xa85fb072 ab3100_event_register +EXPORT_SYMBOL vmlinux 0xa8796b23 blk_run_queue +EXPORT_SYMBOL vmlinux 0xa886a958 krealloc +EXPORT_SYMBOL vmlinux 0xa89eec5e vfs_writev +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 0xa8d9ad4a __scsi_put_command +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa960cad6 ip_setsockopt +EXPORT_SYMBOL vmlinux 0xa972f84f set_bdi_congested +EXPORT_SYMBOL vmlinux 0xa9816a93 kmem_cache_size +EXPORT_SYMBOL vmlinux 0xa98def5e ip_defrag +EXPORT_SYMBOL vmlinux 0xa9a45b44 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0xa9bc4c86 mempool_resize +EXPORT_SYMBOL vmlinux 0xa9bd2676 __vmalloc +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 0xaa3aa099 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0xaa4b0820 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaa94dd7e __rta_fill +EXPORT_SYMBOL vmlinux 0xaab9a307 security_path_symlink +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xaaf5229c udp_prot +EXPORT_SYMBOL vmlinux 0xaaf9f7a7 ps2_init +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab0cadd1 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab6fafb1 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xab7a4622 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xab8d5f1e __lru_cache_add +EXPORT_SYMBOL vmlinux 0xaba259f1 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xaba6e6f9 release_sock +EXPORT_SYMBOL vmlinux 0xabbde082 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabd58d41 bio_map_kern +EXPORT_SYMBOL vmlinux 0xabd7fd91 acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0xabdfb8d9 mmc_register_driver +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac14bb42 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xac233826 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xac3654a0 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xac383451 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xac3898ba ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xac4d7154 journal_start_commit +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac763b3f fsnotify_find_mark_entry +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 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad206de7 bdi_register_dev +EXPORT_SYMBOL vmlinux 0xad25fb12 __memcpy +EXPORT_SYMBOL vmlinux 0xad3da71d pci_get_slot +EXPORT_SYMBOL vmlinux 0xad408390 block_write_begin +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad4dafb4 read_cache_page_async +EXPORT_SYMBOL vmlinux 0xad689f4a lro_flush_pkt +EXPORT_SYMBOL vmlinux 0xad736537 inet_register_protosw +EXPORT_SYMBOL vmlinux 0xada996d7 arp_find +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadc1ee40 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xadef26b3 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xadf3c537 sock_create_lite +EXPORT_SYMBOL vmlinux 0xae20ade3 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0xae2381db spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0xae2e9f20 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xae324b50 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xae57dadf scsi_device_lookup +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 0xaeb2ec8d tcp4_gro_complete +EXPORT_SYMBOL vmlinux 0xaebac95a inet_getname +EXPORT_SYMBOL vmlinux 0xaec60597 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xaecb18c3 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0xaef61bae netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xaefcacd7 nonseekable_open +EXPORT_SYMBOL vmlinux 0xaf04f684 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xaf3bb212 try_to_release_page +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf480e5a invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0xaf51547a clocksource_register +EXPORT_SYMBOL vmlinux 0xaf72b8bd __bforget +EXPORT_SYMBOL vmlinux 0xaf889526 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xaf8a9b06 bdi_init +EXPORT_SYMBOL vmlinux 0xaf9cdc10 d_splice_alias +EXPORT_SYMBOL vmlinux 0xafb543dd security_task_getsecid +EXPORT_SYMBOL vmlinux 0xafb8c6ff copy_user_generic_string +EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn +EXPORT_SYMBOL vmlinux 0xafef8fa9 register_memory_notifier +EXPORT_SYMBOL vmlinux 0xb00ccc33 finish_wait +EXPORT_SYMBOL vmlinux 0xb0497d16 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xb04ea8f0 agp_rebind_memory +EXPORT_SYMBOL vmlinux 0xb05436e1 proc_symlink +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 0xb089da7e jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0xb0ab84ff i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0cb4fdc pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xb0e007e1 dquot_operations +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0f5e7f2 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xb10ec686 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +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 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1d25d98 splice_from_pipe_feed +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 0xb242e03e ndisc_mc_map +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb284aa4c ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xb29332f9 neigh_for_each +EXPORT_SYMBOL vmlinux 0xb2c36e10 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xb2dcba7e inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xb2e55898 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xb2f7468d ida_get_new +EXPORT_SYMBOL vmlinux 0xb2fd3a32 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb32658e6 set_pages_wb +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb358692b unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xb373229d __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xb37adb9e pcim_iounmap +EXPORT_SYMBOL vmlinux 0xb39de8f5 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3c357e3 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0xb3e207a1 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xb3f3bdac blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xb3ff1f69 free_pages_exact +EXPORT_SYMBOL vmlinux 0xb40e6e65 seq_bitmap +EXPORT_SYMBOL vmlinux 0xb4105d36 new_inode +EXPORT_SYMBOL vmlinux 0xb41e3b8c lro_receive_frags +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb426c331 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xb429978e pci_unregister_driver +EXPORT_SYMBOL vmlinux 0xb432e2f7 input_inject_event +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb444b422 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0xb44835a2 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xb45b13b4 bitmap_unplug +EXPORT_SYMBOL vmlinux 0xb45b24f6 k8_nb_ids +EXPORT_SYMBOL vmlinux 0xb45e772f neigh_seq_stop +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4a867a2 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xb4aa1881 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0xb4c865a7 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xb4c99e37 dev_addr_add +EXPORT_SYMBOL vmlinux 0xb4d8c8d3 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +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 0xb5546519 sk_release_kernel +EXPORT_SYMBOL vmlinux 0xb55a6bd7 should_remove_suid +EXPORT_SYMBOL vmlinux 0xb55bfe70 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xb56f1b5e vfs_rmdir +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5a70999 bio_endio +EXPORT_SYMBOL vmlinux 0xb5b4315b register_quota_format +EXPORT_SYMBOL vmlinux 0xb5b6c050 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xb5bc0c37 security_file_permission +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5d0876c __break_lease +EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction +EXPORT_SYMBOL vmlinux 0xb5f28b5f __any_online_cpu +EXPORT_SYMBOL vmlinux 0xb5fc49e0 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0xb60eb1f8 __napi_complete +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb65d9bb9 sget +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb67e4159 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6bd488d blk_init_tags +EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6cbe886 acpi_get_node +EXPORT_SYMBOL vmlinux 0xb6d5a5bf dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xb6ee24f4 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xb6f6de2f cad_pid +EXPORT_SYMBOL vmlinux 0xb7029dfe dm_dirty_log_type_unregister +EXPORT_SYMBOL vmlinux 0xb711ddf3 phy_register_fixup +EXPORT_SYMBOL vmlinux 0xb7512b5a generic_setattr +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb7596bb2 i2c_master_send +EXPORT_SYMBOL vmlinux 0xb76fd964 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xb77bd6be I_BDEV +EXPORT_SYMBOL vmlinux 0xb77fcbec input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0xb7927cb0 km_state_notify +EXPORT_SYMBOL vmlinux 0xb7adf2c9 devm_iounmap +EXPORT_SYMBOL vmlinux 0xb7becdb3 proc_dostring +EXPORT_SYMBOL vmlinux 0xb7c07fd2 ip6_frag_match +EXPORT_SYMBOL vmlinux 0xb7cbcc4f vmtruncate +EXPORT_SYMBOL vmlinux 0xb80395aa generic_block_bmap +EXPORT_SYMBOL vmlinux 0xb803ea33 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0xb812187d devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xb81d3490 do_munmap +EXPORT_SYMBOL vmlinux 0xb84b7355 pneigh_lookup +EXPORT_SYMBOL vmlinux 0xb854e584 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xb85f3bbe pv_lock_ops +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb8708596 path_get +EXPORT_SYMBOL vmlinux 0xb87336f2 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xb8748896 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0xb8928d94 netif_device_detach +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb89e62ec remove_wait_queue +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb92da4dd phy_stop +EXPORT_SYMBOL vmlinux 0xb956eff5 lookup_bdev +EXPORT_SYMBOL vmlinux 0xb97d4928 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xb97e789c fb_pan_display +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb9a72708 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xb9b73274 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xb9bc3725 ppp_unit_number +EXPORT_SYMBOL vmlinux 0xb9d4782e skb_copy +EXPORT_SYMBOL vmlinux 0xb9d77d07 pci_save_state +EXPORT_SYMBOL vmlinux 0xb9e0e292 sock_wmalloc +EXPORT_SYMBOL vmlinux 0xb9ee4b5f down_killable +EXPORT_SYMBOL vmlinux 0xb9fc29e2 thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba3759c2 udp_flush_pending_frames +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 0xbaa05037 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup +EXPORT_SYMBOL vmlinux 0xbaa5906a proto_unregister +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbac42042 journal_get_create_access +EXPORT_SYMBOL vmlinux 0xbad7d2da interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xbad88c3a nobh_write_begin +EXPORT_SYMBOL vmlinux 0xbafe281e blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xbb129a30 send_sig_info +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb21de0e elv_rb_del +EXPORT_SYMBOL vmlinux 0xbb2d7e57 sock_sendmsg +EXPORT_SYMBOL vmlinux 0xbb3e688e fb_blank +EXPORT_SYMBOL vmlinux 0xbb40869d pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb61c1db dst_release +EXPORT_SYMBOL vmlinux 0xbb677ff0 tcp_child_process +EXPORT_SYMBOL vmlinux 0xbb741ed6 override_creds +EXPORT_SYMBOL vmlinux 0xbb925ef0 unbind_con_driver +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba18688 scsi_device_get +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbdb55f0 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0xbbf9dfb2 journal_destroy +EXPORT_SYMBOL vmlinux 0xbbfe70dc scsi_target_resume +EXPORT_SYMBOL vmlinux 0xbc0c9261 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc265b65 tty_port_init +EXPORT_SYMBOL vmlinux 0xbc27eea8 udp_table +EXPORT_SYMBOL vmlinux 0xbc347675 dma_set_mask +EXPORT_SYMBOL vmlinux 0xbc613437 block_read_full_page +EXPORT_SYMBOL vmlinux 0xbc94e644 simple_write_begin +EXPORT_SYMBOL vmlinux 0xbc96c195 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xbc9cf4cb dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xbca2d4fc scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xbcabb9dc mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcd7a7ac pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xbd3790c1 input_grab_device +EXPORT_SYMBOL vmlinux 0xbd3ec336 inet_release +EXPORT_SYMBOL vmlinux 0xbd9aca28 skb_set_dev +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 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe0823c5 mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0xbe1ac787 __dquot_free_space +EXPORT_SYMBOL vmlinux 0xbe290584 loop_register_transfer +EXPORT_SYMBOL vmlinux 0xbe359542 mempool_create_node +EXPORT_SYMBOL vmlinux 0xbe453cc1 bio_alloc +EXPORT_SYMBOL vmlinux 0xbe599ac6 i2c_verify_client +EXPORT_SYMBOL vmlinux 0xbe842079 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xbed5990e set_device_ro +EXPORT_SYMBOL vmlinux 0xbed6d617 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbefb600d icmp_send +EXPORT_SYMBOL vmlinux 0xbf07c046 ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xbf191d97 set_pages_array_uc +EXPORT_SYMBOL vmlinux 0xbf28d477 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xbf5c1169 free_buffer_head +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfbcead6 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfd16dbd sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xbfdb60a8 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff6d950 gen_pool_alloc +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 0xc0269f05 nf_register_hook +EXPORT_SYMBOL vmlinux 0xc02ba837 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xc03f0f08 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xc0568eb9 deny_write_access +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc08dd4b3 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0aba53d swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0xc0b18006 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xc0dd13ab bio_integrity_split +EXPORT_SYMBOL vmlinux 0xc1268644 idr_init +EXPORT_SYMBOL vmlinux 0xc1379c2e end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xc14b3610 pci_get_class +EXPORT_SYMBOL vmlinux 0xc14c7659 sock_register +EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic +EXPORT_SYMBOL vmlinux 0xc1adb999 journal_stop +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc24b057f neigh_seq_start +EXPORT_SYMBOL vmlinux 0xc255471f console_stop +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc2a545ee ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0xc2aa517e compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0xc2b0defe kernel_read +EXPORT_SYMBOL vmlinux 0xc2b1211c blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xc2d1996a kern_path +EXPORT_SYMBOL vmlinux 0xc2d21cb4 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2fdbcb4 log_start_commit +EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu +EXPORT_SYMBOL vmlinux 0xc3465101 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xc35550f3 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xc369f187 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xc38d9c7a down_timeout +EXPORT_SYMBOL vmlinux 0xc3978808 xfrm_state_add +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3aefee1 dquot_destroy +EXPORT_SYMBOL vmlinux 0xc3cdc6e5 filp_close +EXPORT_SYMBOL vmlinux 0xc3e9bcf1 key_alloc +EXPORT_SYMBOL vmlinux 0xc3f1bfee vfs_symlink +EXPORT_SYMBOL vmlinux 0xc3ff5ea7 pci_clear_master +EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier +EXPORT_SYMBOL vmlinux 0xc4304d52 vfs_create +EXPORT_SYMBOL vmlinux 0xc44699cf __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xc464ca7f request_key_async +EXPORT_SYMBOL vmlinux 0xc489ac42 __put_cred +EXPORT_SYMBOL vmlinux 0xc49927e9 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc49fe5a8 set_user_nice +EXPORT_SYMBOL vmlinux 0xc4afaafb journal_create +EXPORT_SYMBOL vmlinux 0xc4cbd48e generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0xc4dff18b vfs_readlink +EXPORT_SYMBOL vmlinux 0xc4e2d475 pci_disable_msix +EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic +EXPORT_SYMBOL vmlinux 0xc4e9c01c cpu_active_mask +EXPORT_SYMBOL vmlinux 0xc4ed4561 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xc4f245b9 md_unregister_thread +EXPORT_SYMBOL vmlinux 0xc517e431 submit_bio +EXPORT_SYMBOL vmlinux 0xc521ccb8 tcp_close +EXPORT_SYMBOL vmlinux 0xc5291607 locks_remove_posix +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc53845e0 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xc53936be elevator_init +EXPORT_SYMBOL vmlinux 0xc53f65d4 icmpv6_send +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc558530d profile_pc +EXPORT_SYMBOL vmlinux 0xc559d1c9 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xc5844fb8 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0xc587da2b locks_copy_lock +EXPORT_SYMBOL vmlinux 0xc5acbf67 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5eed506 ps2_end_command +EXPORT_SYMBOL vmlinux 0xc603eeb9 __mutex_init +EXPORT_SYMBOL vmlinux 0xc6233f2e request_key +EXPORT_SYMBOL vmlinux 0xc6263196 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xc6911642 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0xc698049c dm_io +EXPORT_SYMBOL vmlinux 0xc6bfeb08 kobject_init +EXPORT_SYMBOL vmlinux 0xc6cfa881 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xc7145605 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xc71d6626 napi_get_frags +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc720ff1b netdev_features_change +EXPORT_SYMBOL vmlinux 0xc737d7eb bh_submit_read +EXPORT_SYMBOL vmlinux 0xc740c64a memchr +EXPORT_SYMBOL vmlinux 0xc746ab0a fb_show_logo +EXPORT_SYMBOL vmlinux 0xc76f7632 nf_log_unregister +EXPORT_SYMBOL vmlinux 0xc773088b xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xc796c81f input_free_device +EXPORT_SYMBOL vmlinux 0xc79a1fd2 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a24d76 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0xc7a2fd91 tcp_disconnect +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7d16c15 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xc7f0f2e4 inet_listen +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc8601c4b i8042_check_port_owner +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 0xc8acf990 netpoll_poll +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8bfd0d8 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0xc8fb36ce mpage_readpages +EXPORT_SYMBOL vmlinux 0xc908fcb6 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xc924f564 current_task +EXPORT_SYMBOL vmlinux 0xc927611f jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xc946e7ff generic_file_fsync +EXPORT_SYMBOL vmlinux 0xc94a5c0c __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xc956fc7b generic_write_checks +EXPORT_SYMBOL vmlinux 0xc97fc12b scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0xc98784e9 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9cc5401 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xc9cd1184 x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0xca308e1e dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xca5c31ab lock_may_write +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca6cdd75 __lock_buffer +EXPORT_SYMBOL vmlinux 0xca7f5636 netdev_state_change +EXPORT_SYMBOL vmlinux 0xca7f7995 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0xca822944 scsi_host_put +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel +EXPORT_SYMBOL vmlinux 0xcafbc30e pagevec_lookup +EXPORT_SYMBOL vmlinux 0xcb1f561f scsi_scan_host +EXPORT_SYMBOL vmlinux 0xcb35e706 skb_store_bits +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 0xcb8f07dc tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xcbb44a07 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc5c7145 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0xcc5fd4c4 rfkill_alloc +EXPORT_SYMBOL vmlinux 0xcc6b91d5 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc97f58e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0xcc9efcad dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0xcca8f6c7 inet_addr_type +EXPORT_SYMBOL vmlinux 0xcccca647 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xccf4deb6 dw_spi_remove_host +EXPORT_SYMBOL vmlinux 0xcd03ff11 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xcd302241 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xcd4ac3d8 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xcd519999 dm_exception_store_destroy +EXPORT_SYMBOL vmlinux 0xcd7fe12b dquot_quota_off +EXPORT_SYMBOL vmlinux 0xcda3f9cb vfs_readv +EXPORT_SYMBOL vmlinux 0xcda404fa get_agp_version +EXPORT_SYMBOL vmlinux 0xcda5882b blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0xcdb678ee udplite_prot +EXPORT_SYMBOL vmlinux 0xcdc45755 inode_add_bytes +EXPORT_SYMBOL vmlinux 0xcdfc8382 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0xce0e1a9b block_write_end +EXPORT_SYMBOL vmlinux 0xce123262 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce3a189d tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0xce3eec0f elv_add_request +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 0xce745ac4 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xce78ab3f sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xce92551c pci_dev_driver +EXPORT_SYMBOL vmlinux 0xcebc0743 alloc_trdev +EXPORT_SYMBOL vmlinux 0xceeb6fff tcp_shutdown +EXPORT_SYMBOL vmlinux 0xceecfd70 mempool_free +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf1030cb pci_set_power_state +EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error +EXPORT_SYMBOL vmlinux 0xcf661ad0 set_create_files_as +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcf7f4b68 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0xcf7faa3b ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0xcf9c2759 rtnl_create_link +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfc248d2 d_move +EXPORT_SYMBOL vmlinux 0xcfc37a00 truncate_pagecache +EXPORT_SYMBOL vmlinux 0xcfd07756 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xcfea4cdf ida_destroy +EXPORT_SYMBOL vmlinux 0xcffc1b25 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd024c489 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xd0452aee x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0xd0565b62 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0xd05a0179 check_disk_size_change +EXPORT_SYMBOL vmlinux 0xd070023b netlink_kernel_release +EXPORT_SYMBOL vmlinux 0xd076ebb8 dm_get_device +EXPORT_SYMBOL vmlinux 0xd078f58b inet_add_protocol +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd091f8c9 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0xd093ff2d scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0d4c1ff bio_integrity_enabled +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 0xd10d2fdf __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xd13fd7ca seq_release +EXPORT_SYMBOL vmlinux 0xd1470104 __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd15d0ba7 pcim_iomap +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 0xd1bb6930 pci_match_id +EXPORT_SYMBOL vmlinux 0xd1be6766 input_register_device +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd21523f1 elv_rb_find +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 0xd25c240f i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd262a324 dm_table_put +EXPORT_SYMBOL vmlinux 0xd284e982 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xd295b237 find_get_page +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 0xd32c7a43 dst_discard +EXPORT_SYMBOL vmlinux 0xd330ce45 kobject_set_name +EXPORT_SYMBOL vmlinux 0xd337b902 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xd3831e9b skb_checksum_help +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd3a07527 input_mt_create_slots +EXPORT_SYMBOL vmlinux 0xd3af979c memdup_user +EXPORT_SYMBOL vmlinux 0xd3b907b6 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xd3d5845f mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xd3eeb837 ipv4_specific +EXPORT_SYMBOL vmlinux 0xd3f8c720 send_sig +EXPORT_SYMBOL vmlinux 0xd4079e5b kobject_del +EXPORT_SYMBOL vmlinux 0xd47d3115 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xd4ae2ffe tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0xd4d57ad9 skb_split +EXPORT_SYMBOL vmlinux 0xd4dd2965 cdev_del +EXPORT_SYMBOL vmlinux 0xd4dd484d blk_make_request +EXPORT_SYMBOL vmlinux 0xd4f5d915 processors +EXPORT_SYMBOL vmlinux 0xd5085701 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd523de4d rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd5413999 init_task +EXPORT_SYMBOL vmlinux 0xd5487de3 tcf_hash_check +EXPORT_SYMBOL vmlinux 0xd54912fc noop_qdisc +EXPORT_SYMBOL vmlinux 0xd54a8f7d sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out +EXPORT_SYMBOL vmlinux 0xd56e5509 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xd57f8789 iommu_num_pages +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5b418b4 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xd5be31ef journal_abort +EXPORT_SYMBOL vmlinux 0xd5cb5022 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xd5e178a2 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xd5f867c5 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xd5f900b3 notify_change +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 0xd61d2f7f ip_route_output_key +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd6358004 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xd63e1a5c unmap_mapping_range +EXPORT_SYMBOL vmlinux 0xd6443942 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0xd694d6b5 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xd6964609 drop_super +EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6b7f2f2 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd7150a4d _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xd71e3b46 jbd2_journal_update_format +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 0xd7ed8661 pci_get_subsys +EXPORT_SYMBOL vmlinux 0xd7f7c7b0 d_validate +EXPORT_SYMBOL vmlinux 0xd81b00b8 generic_unplug_device +EXPORT_SYMBOL vmlinux 0xd81cd5a0 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xd8255565 open_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xd83f7096 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user +EXPORT_SYMBOL vmlinux 0xd87c4dff phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xd88dc3b1 unlock_buffer +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a701bd bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xd8bcf77c generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8ea8126 iov_iter_copy_from_user_atomic +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 0xd932b256 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0xd936efb6 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0xd9375692 bio_put +EXPORT_SYMBOL vmlinux 0xd940ac2a tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xd94322e7 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0xd95c6ef5 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xd97d9c25 security_path_rename +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd99abec1 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xd9f73091 spi_dv_device +EXPORT_SYMBOL vmlinux 0xda054097 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda1cd1c9 redraw_screen +EXPORT_SYMBOL vmlinux 0xda3d7c3b skb_gso_segment +EXPORT_SYMBOL vmlinux 0xda4629e4 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xda55f11b agp_bridge +EXPORT_SYMBOL vmlinux 0xda5661a3 add_wait_queue +EXPORT_SYMBOL vmlinux 0xda56a92a generic_write_end +EXPORT_SYMBOL vmlinux 0xda5d5030 dma_ops +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 0xdaa6ab26 d_alloc_name +EXPORT_SYMBOL vmlinux 0xdabe23b2 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xdabf4456 km_policy_notify +EXPORT_SYMBOL vmlinux 0xdac7ec1b tcp_poll +EXPORT_SYMBOL vmlinux 0xdad99aa1 pci_enable_device +EXPORT_SYMBOL vmlinux 0xdae89d77 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xdb0f6fbf get_sb_single +EXPORT_SYMBOL vmlinux 0xdb251d5e acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0xdb2aa1bb pci_set_mwi +EXPORT_SYMBOL vmlinux 0xdb31c2a8 dcache_dir_close +EXPORT_SYMBOL vmlinux 0xdb4110e4 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xdb5b3395 mmc_detect_change +EXPORT_SYMBOL vmlinux 0xdb63488a dev_disable_lro +EXPORT_SYMBOL vmlinux 0xdb8a96e9 ip_ct_attach +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 0xdbea9cac completion_done +EXPORT_SYMBOL vmlinux 0xdbf8216b put_mnt_ns +EXPORT_SYMBOL vmlinux 0xdc03c576 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc20dae7 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc638b94 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xdc6ef0a0 scsi_print_sense +EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family +EXPORT_SYMBOL vmlinux 0xdca38c07 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcb586cc qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0xdcba67fd simple_dir_operations +EXPORT_SYMBOL vmlinux 0xdcc9b840 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xdce1ce59 remove_proc_entry +EXPORT_SYMBOL vmlinux 0xdce98eae fb_get_mode +EXPORT_SYMBOL vmlinux 0xdd147bce pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xdd2cdf77 compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0xdd3211ad update_region +EXPORT_SYMBOL vmlinux 0xdd3655cb inet_put_port +EXPORT_SYMBOL vmlinux 0xdd42bc02 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xdd4d7885 page_symlink +EXPORT_SYMBOL vmlinux 0xdd616a83 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0xdd7429c6 bio_copy_user +EXPORT_SYMBOL vmlinux 0xddc64cb6 rtc_dev_update_irq_enable_emul +EXPORT_SYMBOL vmlinux 0xddca487f kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xdde82af5 dev_change_flags +EXPORT_SYMBOL vmlinux 0xddfe5478 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xde096332 dm_dirty_log_create +EXPORT_SYMBOL vmlinux 0xde0bdcff memset +EXPORT_SYMBOL vmlinux 0xde1f37dc pci_iounmap +EXPORT_SYMBOL vmlinux 0xde2a2945 simple_rename +EXPORT_SYMBOL vmlinux 0xde2a3596 scsi_block_when_processing_errors +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 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde983c2c free_netdev +EXPORT_SYMBOL vmlinux 0xde9a5fb7 agp_backend_release +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdea814ed inode_init_owner +EXPORT_SYMBOL vmlinux 0xdec042fc inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xdedc8a8f block_sync_page +EXPORT_SYMBOL vmlinux 0xdeee8b96 dcache_lock +EXPORT_SYMBOL vmlinux 0xdef9558c tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf42ead3 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf526cb4 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfacb49e __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xdfae91c1 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xdfb67aed fget +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdff9afb9 rfkill_set_states +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b17b70 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort +EXPORT_SYMBOL vmlinux 0xe0bc4fb2 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xe0d5bfa1 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xe0ef562e dm_table_get_mode +EXPORT_SYMBOL vmlinux 0xe0fea30f grab_cache_page_nowait +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 0xe147e5e1 ___pskb_trim +EXPORT_SYMBOL vmlinux 0xe148898d tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xe165d6f9 ps2_command +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe19a8851 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xe1d01090 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0xe1ef71ac pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xe1f58412 pci_claim_resource +EXPORT_SYMBOL vmlinux 0xe2366551 elevator_exit +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24050c7 scnprintf +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe27c53c1 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xe28d464a eth_change_mtu +EXPORT_SYMBOL vmlinux 0xe29b04e9 acpi_set_firmware_waking_vector64 +EXPORT_SYMBOL vmlinux 0xe2c076d3 block_invalidatepage +EXPORT_SYMBOL vmlinux 0xe2cb022d n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2d9a19d backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xe2dc3a7f generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xe2df164e proto_register +EXPORT_SYMBOL vmlinux 0xe2fcee4c block_write_full_page +EXPORT_SYMBOL vmlinux 0xe309650e sk_alloc +EXPORT_SYMBOL vmlinux 0xe311f636 scsi_remove_host +EXPORT_SYMBOL vmlinux 0xe322f849 __alloc_skb +EXPORT_SYMBOL vmlinux 0xe356c66a cpu_core_map +EXPORT_SYMBOL vmlinux 0xe35b4924 dev_get_flags +EXPORT_SYMBOL vmlinux 0xe3779515 generic_read_dir +EXPORT_SYMBOL vmlinux 0xe3914589 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0xe3b0192b vscnprintf +EXPORT_SYMBOL vmlinux 0xe3cc7938 generic_setxattr +EXPORT_SYMBOL vmlinux 0xe3d55c35 compat_mc_setsockopt +EXPORT_SYMBOL vmlinux 0xe3ea511f ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xe3ea7f29 mnt_unpin +EXPORT_SYMBOL vmlinux 0xe3f2d8af elv_queue_empty +EXPORT_SYMBOL vmlinux 0xe3f58f56 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0xe43307e4 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe456d99a __init_rwsem +EXPORT_SYMBOL vmlinux 0xe47a20ec fasync_helper +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe4ae2f98 bio_add_page +EXPORT_SYMBOL vmlinux 0xe4b24b8c __next_cpu +EXPORT_SYMBOL vmlinux 0xe4f57401 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0xe4fc677a fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xe50a2c86 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe52947e7 __phys_addr +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe538f7ca sock_setsockopt +EXPORT_SYMBOL vmlinux 0xe53ee230 phy_print_status +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe58fb1b2 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0xe5a1617b seq_path +EXPORT_SYMBOL vmlinux 0xe5a95782 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xe5aec2bc neigh_table_init +EXPORT_SYMBOL vmlinux 0xe5b41f2d sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xe5bff042 start_tty +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5dee724 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xe5deeb1e idr_for_each +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5ee46d6 blk_start_request +EXPORT_SYMBOL vmlinux 0xe61c41b5 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xe61e6dc2 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xe656ba3b i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xe67853f8 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0xe6822890 block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xe690b8fd __ipv6_isatap_ifid +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6a7fd89 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xe6c85402 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xe6d0a83c __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xe6ed0216 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xe6f27d60 ppp_dev_name +EXPORT_SYMBOL vmlinux 0xe6f8901b elv_rb_add +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe711d8c6 tty_free_termios +EXPORT_SYMBOL vmlinux 0xe71664e0 ps2_drain +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe72a7d8e sg_miter_stop +EXPORT_SYMBOL vmlinux 0xe7334f5c bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xe7392472 alloc_fddidev +EXPORT_SYMBOL vmlinux 0xe742df17 mpage_writepages +EXPORT_SYMBOL vmlinux 0xe74cf0a7 mempool_destroy +EXPORT_SYMBOL vmlinux 0xe76d5721 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xe77f6f14 seq_write +EXPORT_SYMBOL vmlinux 0xe78887cb security_inode_init_security +EXPORT_SYMBOL vmlinux 0xe78f39d3 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0xe7c342be clear_inode +EXPORT_SYMBOL vmlinux 0xe7cc3148 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d31172 blk_start_queue +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7d9dd43 register_netdev +EXPORT_SYMBOL vmlinux 0xe7de34ba cdrom_open +EXPORT_SYMBOL vmlinux 0xe7e83470 agp_free_page_array +EXPORT_SYMBOL vmlinux 0xe8003594 setup_new_exec +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node +EXPORT_SYMBOL vmlinux 0xe82a90ef ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xe82f7924 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xe8583614 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xe85c3da3 lock_fb_info +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe889b019 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xe88de325 block_commit_write +EXPORT_SYMBOL vmlinux 0xe8a3605f acpi_processor_set_thermal_limit +EXPORT_SYMBOL vmlinux 0xe8b23639 dquot_drop +EXPORT_SYMBOL vmlinux 0xe8c816f6 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0xe8d30799 rfkill_register +EXPORT_SYMBOL vmlinux 0xe8f46444 lock_rename +EXPORT_SYMBOL vmlinux 0xe909ce03 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe91edc0f ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xe9238193 end_page_writeback +EXPORT_SYMBOL vmlinux 0xe93a044d bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xe94023e4 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0xe9783697 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xe9855301 is_container_init +EXPORT_SYMBOL vmlinux 0xe988466d devm_ioremap +EXPORT_SYMBOL vmlinux 0xe98ac990 generic_removexattr +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +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 0xea32aa34 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xea5acffd dm_snap_origin +EXPORT_SYMBOL vmlinux 0xea7a59cb i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xea94a14f remove_arg_zero +EXPORT_SYMBOL vmlinux 0xeab48eb3 xrlim_allow +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 0xeb14696f close_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xeb1d0d31 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0xeb3b57c9 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0xeb683b96 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xeb7c2bdc tty_vhangup +EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n +EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp +EXPORT_SYMBOL vmlinux 0xebcb0afa mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xebcb20b0 mmc_resume_host +EXPORT_SYMBOL vmlinux 0xebd204f4 generic_file_llseek +EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull +EXPORT_SYMBOL vmlinux 0xebe38de8 module_put +EXPORT_SYMBOL vmlinux 0xebf1a0c0 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0xebffafab cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xec03dad2 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xec11d888 check_disk_change +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec4bc049 km_policy_expired +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec50540b open_exec +EXPORT_SYMBOL vmlinux 0xec67368d wireless_spy_update +EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0xec8e9393 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xecab3146 pnp_possible_config +EXPORT_SYMBOL vmlinux 0xeccae092 put_io_context +EXPORT_SYMBOL vmlinux 0xed696d62 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xed755e2b md_set_array_sectors +EXPORT_SYMBOL vmlinux 0xed84e6c9 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xed8c53ac _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xed8c59f6 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xeda38a4b pipe_to_file +EXPORT_SYMBOL vmlinux 0xedb468e9 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xedb47f02 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedeb44b5 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xedec3feb scsi_finish_command +EXPORT_SYMBOL vmlinux 0xedee9b98 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xedf606bb skb_trim +EXPORT_SYMBOL vmlinux 0xee2bc709 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee5cd7eb agp_allocate_memory +EXPORT_SYMBOL vmlinux 0xee7cf59d netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeaad048 blk_register_region +EXPORT_SYMBOL vmlinux 0xeebc99c0 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0xeeede9ae thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0xeef0c9a2 md_integrity_register +EXPORT_SYMBOL vmlinux 0xeef80f28 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xeefa7181 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xef0beca7 simple_unlink +EXPORT_SYMBOL vmlinux 0xef23c3b6 input_close_device +EXPORT_SYMBOL vmlinux 0xef2a3aa5 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xef347f0b cdev_add +EXPORT_SYMBOL vmlinux 0xef34e775 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xef50a955 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0xef62e85f mempool_alloc +EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefb4a7e4 disk_stack_limits +EXPORT_SYMBOL vmlinux 0xefc262f6 thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0xefce7b12 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe09759 pipe_unlock +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 0xf0113c8e fsnotify_put_group +EXPORT_SYMBOL vmlinux 0xf03c725f add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xf0415554 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xf046d31f ip_getsockopt +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf0723cea sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xf073d5ad ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xf079c151 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xf07f7160 scsi_device_resume +EXPORT_SYMBOL vmlinux 0xf0826185 set_binfmt +EXPORT_SYMBOL vmlinux 0xf09c7f68 __wake_up +EXPORT_SYMBOL vmlinux 0xf09d3f84 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0xf0a64560 sk_reset_timer +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0ef392d netif_receive_skb +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xf116d4b5 copy_in_user +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf127af2d skb_unlink +EXPORT_SYMBOL vmlinux 0xf1699e19 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf1887e46 eth_validate_addr +EXPORT_SYMBOL vmlinux 0xf1893b08 journal_start +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf198bfe4 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xf1d22946 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1dcc734 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1f7c142 pci_request_regions +EXPORT_SYMBOL vmlinux 0xf1fc7846 kernel_connect +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 0xf25a5617 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xf287fa66 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xf28cf71b mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2d61b28 inet_shutdown +EXPORT_SYMBOL vmlinux 0xf2daff76 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xf2e3f7d3 compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xf2ee97fd register_key_type +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 0xf335d843 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf33a8560 cdrom_release +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf37de227 set_pages_uc +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf38d284d tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xf38f2ef9 pv_cpu_ops +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf3b7c639 uart_match_port +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3d59ca6 rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xf3f4132b end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xf4003ff3 bio_kmalloc +EXPORT_SYMBOL vmlinux 0xf40a962f pcix_get_mmrbc +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 0xf472fbdb path_is_under +EXPORT_SYMBOL vmlinux 0xf4777d69 path_lookup +EXPORT_SYMBOL vmlinux 0xf4852349 blk_alloc_queue +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 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4b8c35a abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xf4de08b0 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +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 0xf55168f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xf55adc39 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xf5783039 km_new_mapping +EXPORT_SYMBOL vmlinux 0xf57ad089 set_pages_x +EXPORT_SYMBOL vmlinux 0xf59ae590 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xf5a5ead6 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xf5b63d15 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0xf5c2ff4b scsi_dma_map +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 0xf6141919 prepare_binprm +EXPORT_SYMBOL vmlinux 0xf62984ef ps2_handle_response +EXPORT_SYMBOL vmlinux 0xf63d4ae2 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0xf664e646 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xf670264a inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xf698564b netif_napi_add +EXPORT_SYMBOL vmlinux 0xf6a45227 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0xf6acc804 get_super +EXPORT_SYMBOL vmlinux 0xf6b5e5b1 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6d360b4 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf70a2c60 ps2_begin_command +EXPORT_SYMBOL vmlinux 0xf713bd05 pci_read_vpd +EXPORT_SYMBOL vmlinux 0xf755f665 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf766c24f d_prune_aliases +EXPORT_SYMBOL vmlinux 0xf77c6ece xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf791165f iget5_locked +EXPORT_SYMBOL vmlinux 0xf7a5c377 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0xf7bf85c6 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xf7c53374 schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0xf7ca38c5 register_cdrom +EXPORT_SYMBOL vmlinux 0xf7db21ad simple_pin_fs +EXPORT_SYMBOL vmlinux 0xf801ce8d qdisc_watchdog_init +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 0xf82d0e1e blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf837e67e inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xf87517f7 softnet_data +EXPORT_SYMBOL vmlinux 0xf877d284 scm_detach_fds +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 0xf89d51af bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xf8b4cd70 scsi_cmd_print_sense_hdr +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 0xf9129365 unregister_8022_client +EXPORT_SYMBOL vmlinux 0xf9256d36 input_get_keycode_big +EXPORT_SYMBOL vmlinux 0xf937bda0 cdev_alloc +EXPORT_SYMBOL vmlinux 0xf938d8b1 nlmsg_notify +EXPORT_SYMBOL vmlinux 0xf93d6b6f neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0xf9635df6 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xf963894c iterate_mounts +EXPORT_SYMBOL vmlinux 0xf97e1b36 scsi_execute +EXPORT_SYMBOL vmlinux 0xf9a44297 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xfa07c76c key_payload_reserve +EXPORT_SYMBOL vmlinux 0xfa0cfa8a cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xfa0f56f5 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xfa256a69 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xfa2bd247 vfs_unlink +EXPORT_SYMBOL vmlinux 0xfa43559a find_inode_number +EXPORT_SYMBOL vmlinux 0xfa5b26b4 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0xfa68ac3f pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0xfa733552 cont_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0xfa76dfc6 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xfa7d7701 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0xfa9a8f1d swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0xfacc20c9 tcp_connect +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb2de8da blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0xfb3ea712 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb73b914 blk_end_request_all +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfbb13e46 dw_spi_add_host +EXPORT_SYMBOL vmlinux 0xfbb63c6b dquot_file_open +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 0xfc0e6ecb journal_errno +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc85e5d5 inode_change_ok +EXPORT_SYMBOL vmlinux 0xfc974838 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xfc99283b mfd_remove_devices +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcdd7f99 set_disk_ro +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd067cd3 ilookup5 +EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfd97f32a acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0xfd98460c posix_lock_file +EXPORT_SYMBOL vmlinux 0xfd9c991b i2c_transfer +EXPORT_SYMBOL vmlinux 0xfd9ecb65 textsearch_unregister +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfda597bd sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfdb52ea2 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdc31221 textsearch_destroy +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 0xfe392bcd generic_segment_checks +EXPORT_SYMBOL vmlinux 0xfe5175e6 tty_unregister_device +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe675141 dm_exception_store_create +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 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 0xfed53143 dq_data_lock +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfee432be touch_atime +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 0xff33ffde filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xff404e9d __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xff418426 sock_i_ino +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff68b3fc tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xff6b4daa journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xff6d7dcd dcache_readdir +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 0xffadfd6c bio_map_user +EXPORT_SYMBOL vmlinux 0xffc0d7d8 read_cache_pages +EXPORT_SYMBOL vmlinux 0xffd56255 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffebaab1 skb_recycle_check +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 0x039d467b kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x06234e79 kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x08c888f4 emulator_write_emulated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x094ac8f4 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0bcf21c8 kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0ece886a kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x129d1acc kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12d1b23b kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1b3476f6 kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1d49835d kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e4580bb kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2322e039 kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x266dcb48 kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x28260280 kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2827f807 kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x288873c9 __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x296c4b0d load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2be05592 kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2c814c73 is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e92867f __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f40f4aa kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f98b932 kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3b376213 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3e20116c kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406813bc __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x43fd77c9 kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4757031c kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x480de99f kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x48e80385 kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4a7cbe69 is_error_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4b8d937b kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4f01932f gfn_to_memslot_unaliased +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5102cf94 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x523a2fae kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x546b4a6b kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x552b4da5 __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56214f73 kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56869095 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5affceb8 __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5c950555 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5eb42ded kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x67a0da1a kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x69783ecd kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6a7b8995 kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6f1f6b85 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7165cd0a kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x740c5e7c kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x790dcd58 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7f002180 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7fb25b66 kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x80cf497b kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x82236aea kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8542925b kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x87bb270b kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9227f4b3 __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x948c0aa3 kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x956d770b kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x95fcd6fa kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x96f9391c kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x997321f3 kvm_report_emulation_failure +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 0x9aa71c45 kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9bd09d91 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9d14c14a kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa361bc65 kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa8f7f0fd kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xabb80c93 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xae9389f0 kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb1dbf3e8 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb3ab5897 kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb46f9af7 emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb5b754da kvm_requeue_exception_e +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 0xbe869902 gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc823225a kvm_fast_pio_out +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 0xd296def9 kvm_is_error_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd56c0cea kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd5b64b8a kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd698c302 fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7be16af __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd81320a2 kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe000d710 kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe56026f6 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe9122aa6 kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xef01c694 gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf047c275 kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfc3861b5 kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfd98c144 kvm_set_cr3 +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 0xf3012137 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xff196661 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x1a7a83f8 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xd67d6657 async_raid6_2data_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 0x3b0a4ac1 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x48052fbd ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4dad984e ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5231c81f ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6c199d1a ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x73b12e27 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7c2e0f1f ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8d7c94c7 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9ee0dd87 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xae13d0a9 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xae2cca25 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xaf29524c ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xcf372c0a ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea944969 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3da95a19 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4a63fbe8 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x8e276ecc btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xabbf9d0c btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc6ac4908 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe7e0662c btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xebbaa915 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf5921eb6 btmrvl_add_card +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 0x5a506961 tpm_bios_log_teardown +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0xd1b89a93 tpm_bios_log_setup +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 0x0fa5836e gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x251a4a91 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2c8c47e9 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2f4b7ec1 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3148d18b gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x38fac3b5 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4d110c98 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x537016ce gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x678da6ae gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x688bd336 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x719b2cfd gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x842624d9 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc3c7bc61 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc8a06c84 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdb95e3d3 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe3d62095 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xef71c729 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf48bf488 gigaset_freecs +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 0x37a52be4 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x553fa139 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x5bad1dc6 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xbe1041d5 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xd5240203 sm501_misc_control +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 0x2fb6150d sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x312c38e6 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x3d844111 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5c41a072 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x712a6001 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xde701989 sdhci_remove_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 0x0af20720 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x3844720d deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x65af0078 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xe095e1ad add_mtd_blktrans_dev +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 0x518fec89 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x541b82d2 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x69fbfcf3 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x8ef2cde5 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xf5cb1a46 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 0x18158982 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level +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 0x1f767ff2 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3002a823 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3410f790 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x45b99c21 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x59401d77 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x66938d91 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6bf39d9c rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8c157783 rt2800_init_rfcsr +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x971e24fc rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa96c0573 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbbd2b018 rt2800_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbd6c2379 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc4bca012 rt2800_init_bbp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcd852742 rt2800_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcf9974eb rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdb5ff261 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdd7d9353 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe07a7fa8 rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe16c0b29 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe34aa534 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe5d3cc07 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf33eb676 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfd9677be rt2800_mac80211_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xffc6bf0d rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0e200db6 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1896c3bd rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2c555751 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x33850d6d rt2x00queue_map_txskb +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 0x6bfc7604 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6fad3ca4 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7d3fb10a rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x81691ce5 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8fc88f06 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x925430c2 rt2x00mac_stop +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 0xb7ed1ebd rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcd872d23 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd3e1ce03 rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe8f9f75d rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xebbedb06 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf1bbaf49 rt2x00lib_txdone +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 0x22ce7a28 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x2369a5bf rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x3da40309 rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x4503d415 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x734f2c11 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x82615799 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xc233c2f3 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf54d6904 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xfe0fdc1c rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1720869a rt2x00usb_vendor_request_large_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x20e12f43 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x25968e34 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x484fedd9 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6340ef39 rt2x00usb_kick_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x71f4fb56 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x73e7643a rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x91bcdb23 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x95c4c0e2 rt2x00usb_kill_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x95d4cc06 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xaa823f57 rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xbe419b69 rt2x00usb_suspend +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 0xe1c8ae60 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xef941ab3 rt2x00usb_uninitialize +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 0x18b5e454 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0793efb8 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x092c56b9 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0aaa3003 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x182b8200 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1973684d iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1a0b1b8f iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1bbc2faa iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1f5fbfb6 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x20864e6f __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3451b429 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x36404963 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3cbad0d6 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3ce23286 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x41014313 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x479e4eec __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4f831972 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x51ce1fb8 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x530bb775 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5bed023b iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5dafd595 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6f8aa192 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x70c7daaf iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x72f0afc6 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8665fb67 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8e864a27 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x917932c8 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9691f9f8 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa36eb8b4 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa381d33b iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa3bd60b3 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xadb7bab5 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb57d7e4f iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb6cebc16 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb926c5fb iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb97508e1 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd045224f iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd3cf1d00 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xded67165 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe24f4efe iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xedb5d733 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf2a70a60 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf951499d iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x06da5f5b iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x07ffbd67 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0a7eb38a iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1111dc91 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1b8c7900 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x255dbe1c iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x335fb8b2 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4b7454ca iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5c4e328a iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xda70310f iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe302d8b1 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe986f49f iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf1001489 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf15fa549 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfaebde5d iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfe5f9232 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1320912a sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1efd3803 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1ff37db6 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x26adb16c sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x30abb1b8 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3ff6eebf sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x57313402 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x585dcb3f sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x65dae5bb sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x68e42f0c sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x850bac32 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8cbe34cf sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9a6136b9 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa4c90657 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb95a2c54 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcc08fe43 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcd4d8aa8 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xde4af2d4 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdf950bd9 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe1dbff3c sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe7f872e5 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe97d9a04 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xff11a36b sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x36d6f230 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x3c83b23a srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x402cc662 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x902cfb81 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x97a9ec78 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xdb17bffc srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x05660571 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x07212206 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x19bd47fd scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x47d5678a scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x56528cf7 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x8c34b024 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9bb70f07 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd1028232 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe3f8f5e9 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x03868ea9 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0e72f5d1 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0e7de4d1 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0f44fd7d iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1045a01c iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1576650b iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1d9ce342 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x250be977 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x38b55dde iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x41246e5b iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6bb60757 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6c613b7f iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6d9c6f68 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8f5c0c33 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9b8daf3e iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa02f58da iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa844f78e iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xae64f864 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb81d4ccd iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbb27b84b iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd39d403d iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfa0e8670 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x3c02f65d sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x98902de1 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xb7ccc903 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xfb1c3fc0 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x044de149 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x0a15afe6 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x0cd535ab srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x0f808537 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xf07b4d04 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 0x377e2b97 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 0x116e8e4d usbip_task_init +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x12eedd87 usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x1f12da02 usbip_stop_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x29d02419 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x39c17fd7 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x474bc3fe usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x4a6241cb dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x6153a63b usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x75639ad5 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x8c16e76c usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x8f7d54c9 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xbe6ffe98 sockfd_to_socket +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 0xe343f89c usbip_start_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xed24ab97 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xef4eb0d8 usbip_dump_urb +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 0x44a3bc11 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xdc9d93a7 usbatm_usb_probe +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 0x1b33ec6d usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x20d2c1a6 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x39667284 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4333bc36 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x600819bd usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6875ba73 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x78e6f2af usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9073f24f ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9b0de151 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xac60b562 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb2ea65b8 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd4928003 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe16b8f60 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xec656405 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf0b077f4 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf109a7ec usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf1ec8918 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf28605af usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf7e224e9 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x158d25c1 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1a8516d2 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 0x1d974b3c usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x210fc06e usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x339be6c9 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x380a55f4 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3ee4be96 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x406cd86d usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x636a0995 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x68c7f045 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6b019952 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x72394e04 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7478d09a usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xac8b855e usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb1c42ef4 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb4fdccef usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbe7eb0de usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xce8f69da usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd1d05ea9 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xec6bea43 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf234e52a usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf42b0d66 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf8f5eb2f fill_inquiry_response +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 0x0653c5b4 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x0b26920f fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x191e08e8 fat_time_unix2fat +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 0x69a86fb5 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 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 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x314e0078 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7ddc8818 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x8fe63f8c nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x993db874 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf76e9201 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 0x25bc5480 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x35b975d6 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4018e0c0 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 0x725ade6d o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb2e64888 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbbad38cc o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf4e73770 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 0x31af8cea dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x6e4a0312 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x76663247 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x93413176 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 0xec897ffd dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfed2c338 dlm_unregister_domain +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 0x4a1d2308 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 0xfe0e7b95 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x05a48221 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x079a7a1e dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x09ae3e1c compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0d8937fa dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x17b4563f dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1be110ab dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x22947c19 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2cedb8f8 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x30b4e044 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3730000a dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3ca501e4 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3da8de40 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4265c879 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4e69ed2c compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5ba7babf dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5d80f47e dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5e43d87a dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x63b55476 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6d8a8dc5 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x74058945 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x75fb9d44 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x85a1a91b dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8625250d dccp_disconnect +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 0x8c40bc54 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8dff2736 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9319772a dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00a52b9 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb0bda78e dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc1fdf9df dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd12fe34f dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd190bc92 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd190f14a dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe3f2d393 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe6440cde dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf61ef0c6 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfab04d06 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x449e8a61 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x4c90d9a9 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7de65be0 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa1ce758b dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa531e235 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xebca1222 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xfdd5dbdb arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x97407a47 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 0x95e9cea9 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 0x09c2d85c nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x11934d79 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x1a264b29 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x46eb01bd nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x8bf42b76 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xa0957792 nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xcaa35889 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xf7e9cb72 nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x350a9090 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x5f5420c8 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x92d82ac8 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x9d426b8a tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xf66136d8 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x0d401a02 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1bbc22d3 l2tp_xmit_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x31430763 l2tp_udp_recv_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5813d164 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5df546d2 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x787b2d53 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x83e6aa51 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x925515ac l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x933618fc l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x948dfdaf l2tp_tunnel_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x94b9a2f1 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x956c82ce l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa0181ecf l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa4d5237a l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa9d9da7e l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb6a710de l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb795e966 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe12902a2 l2tp_session_free +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 0x06bef143 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x07b02077 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0de0783a nf_ct_expect_init +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 0x348893c1 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x399dc190 nf_conntrack_event_cb +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 0x4a0413c3 nf_conntrack_l4proto_udp6 +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 0x78327141 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f96138c nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x80ced3f9 nf_conntrack_l3proto_generic +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 0xc91e31d8 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x8f4618f9 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x087e7602 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x144d5dd7 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x15c3f396 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x193506e4 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x69132d4b nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7b93d85d nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb0057b3b nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xced37ee5 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xeeeb646d set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf999d6c9 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x1d469ad4 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x2543312e nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x80d8ae7d nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xa54ff0fc nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xe0dee5f7 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 0x041f4064 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x187361b1 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3b7b39ab nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x54d565db ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x65244a25 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6cb24df3 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x82a6c26b nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8ba212df nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9ea23ec8 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa8ac13e9 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xba986e8e ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd238b3d4 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xea0a4b57 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xe2cc4435 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x49da58bb nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xc5b1362f nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1881af4a nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x494ecb19 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x688a636d nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7d6b7107 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xbf1038c9 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xc0de5119 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x6df0533c nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0cb0ce93 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0f37c2a1 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2e2118b6 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3b35026d xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x480339da xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5d4440ab 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 0x8afe4893 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x927dfa28 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb4e453bc xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb8dcd829 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc17b6533 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc884da6b xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc89b730d xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xcbd20c49 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xcf653784 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xddc2e313 xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe5206f1a xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xea9ef532 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf6c88c09 xt_proto_fini +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 0x0824e757 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x0ff34d65 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x1de40e6f rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x2091ae6a rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x2b788af9 rds_page_copy_user +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 0x48625ff7 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x535e7b5f rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x63b243ab rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x6ee8a601 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x71ece9d8 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7e413ff8 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x867fabf2 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x8940a87a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0xaa234b2c rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xb22a3a21 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0xc25d9def rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xc2da8e38 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xca612001 rds_inc_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xd0e626ca rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xd7dac3c1 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xd7e917a3 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0xdac56aca rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0xe3e38b3e rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xe7a5d044 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xf58ccc3b rds_stats +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x3f6eab7f rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x9511ef6e 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 0x2e69b568 gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x31f6be85 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3d720af6 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6106d47e svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xafb608fd 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 0xb5f57594 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd3025821 gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd4439d8f gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xeee0966d gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xfcf130d9 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01e6d99f xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x021f9a0c xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02db43c7 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x038a6e6e xdr_encode_array2 +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 0x08993a53 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x098776b3 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a7b910c xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0af13b0c rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ca9dae0 rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ce4297a auth_unix_add_addr +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 0x1157a5e2 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x126c0649 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x160d8874 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x167f7969 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x18a82f12 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c0ed102 svc_sock_update_bufs +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 0x20bf3174 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23d4fb81 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ce41a8a sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d86cf66 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ee8bc05 svc_sock_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f8f2a9b rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x303fa36b rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30606133 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x306fa692 auth_unix_forget_old +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 0x35d73617 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36b9312e svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39eefbed svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3caed5b1 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d60da5e cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x45015ac6 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46f6ff11 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a9750b9 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4bbed6ae rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x540a3ea9 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57acfa36 svc_xprt_enqueue +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 0x5d7e1e6b rpc_queue_upcall +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 0x638e5922 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x651ecb9d rpc_sleep_on +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 0x687fc37a auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a6a2126 rpcauth_init_credcache +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 0x6c8eef3f rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f30a56d unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x703b6bbc xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7231219c rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7312fa7c rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7630118b svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77296f5f svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77410706 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77475e4b rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x775adaf6 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ae274be rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b4db5cb xprt_complete_rqst +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 0x80007197 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x835575f0 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85cda59b rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x874bbb60 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x875b4214 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x88d74a6a svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b4f01e5 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ccd40c3 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90123a56 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x944ee69e rpc_exit_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9450d63f svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x949355b5 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97e37bf2 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x997cddb2 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x99fe1aba rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9b4b268d svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cc07685 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d7a230b rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9eaac6ee sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f2f347b xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa083dc1b svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa08942b8 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0cb56fa svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4295879 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa48d40c6 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa8ca4b7 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaaec89f7 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xadc8c122 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xadc96f24 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaebd94ff read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaec06338 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1a06a3b xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb355b64b rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3e6634b svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4804cc0 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb524e82f xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb534e105 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb7a27e79 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb83b52e6 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb893f0b6 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb9be74cc xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb8a354c xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbdc2b79d xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc097b065 rpc_delay +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 0xc68d06df xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc89b4fcd rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc97bcea8 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcbf3923c rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc176aa9 svc_sock_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd8f8535 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0333a40 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0b2a683 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd54a9bd9 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5ef0bdf svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6ca6dce rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7905011 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7af70d4 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc136e7f rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf3714d6 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe112c875 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2e32c9c sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3e4130e xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe59e317b svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe77b632a svc_create +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 0xea43896f xprt_unregister_transport +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 0xef9c438f svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xefd5a0b3 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1dd5d19 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3e9bc4a svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf729ddaf rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa5ea6b9 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc432f01 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfdf73af5 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe8f2d30 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff0afce1 svc_sock_names +EXPORT_SYMBOL_GPL net/wimax/wimax 0x030548f8 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0b283cb4 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x1430d516 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x168e6a03 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x27745bd8 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6642978a wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x69e0ae3a wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x72713793 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x8ca4ade6 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x932fed44 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xcb2314b3 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0xee85160f wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf63b455e wimax_msg_data_len +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 0x268f30de ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x2fc45f2b ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x9694e265 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xb7cf9bcd ipcomp_init_state +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 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x0084441f dm_rh_update_states +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 0x00f94fde register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x0110b3d1 register_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0x0117d615 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x011bdcd1 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x01378d91 attribute_container_classdev_to_container +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 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 0x01f17b23 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x02474f30 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x03a3f86d unregister_jprobe +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 0x04093f3d ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x04431b13 generic_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x0494ab32 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x04a4c1dd lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x04ae6784 br_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04cb6c21 unregister_ftrace_event +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 0x05303e8b cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x05316322 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x05361af8 tcp_cong_avoid_ai +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 0x05a86ea5 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x05d137a4 __inet_inherit_port +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 0x06df03cb ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x0707e0ff sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x072f0b0f crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x073743c5 dm_region_hash_create +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 0x07c916fc ring_buffer_reset_cpu +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 0x081f3e9b tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x0827c923 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x0838ccc5 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x0853bf55 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x08547025 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x0893baed rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x08a85c30 crypto_register_alg +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 0x09231820 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0926c1ed regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x094bfede queue_work +EXPORT_SYMBOL_GPL vmlinux 0x0951bd6e find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x095d762b regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x09625800 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x098f5041 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x09a0b0c0 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x09c64cb6 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x0a1d83f0 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x0a9b5ce4 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x0aae1a82 ring_buffer_size +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 0x0b376235 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x0b393a71 vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x0b4212e7 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x0b6b9cc7 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x0b6d0342 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x0b6dfe54 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x0b7a51eb inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0bac9195 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x0becbdd8 scsi_internal_device_block +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 0x0c60d9f8 blkdev_ioctl +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 0x0d2813f5 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x0d281ed3 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x0d3e113f securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x0d4e73c5 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x0d7e30b2 ring_buffer_free_read_page +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 0x0e2ee1c3 scsi_schedule_eh +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 0x0ee19ca9 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0efdfb46 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x0f028725 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x0f3ea398 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x0f962190 sata_set_spd +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 0x11022367 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x1125a51d usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x118d61ba virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x119cdcf9 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +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 0x12af264a ata_pci_device_do_suspend +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 0x134995ac dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x1360d523 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x1395453a ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0x13a770cf class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13cc7bb9 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x13e39744 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x14061ff0 pci_num_vf +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 0x1485d56f pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x148a0677 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x14d3fbb4 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x14d978aa ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x14e1310f gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x14ec39e6 unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x14eeaa27 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x14f306f9 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x1559e2b1 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x1560753c skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x156088fe crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 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 0x16404373 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x1655d059 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x166b2de5 trace_event_raw_init +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 0x1755cd64 cpuidle_unregister_device +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 0x17dc7e45 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x17f55a9c synchronize_srcu_expedited +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 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x1918940a vfs_lock_file +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 0x19736e94 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x1987bda2 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x1992e7b4 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x199884b1 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x199abb45 vfs_setxattr +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 0x1a1e042b inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x1a25bee0 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a6c1817 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x1a7804d1 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x1a84c5d4 inet_twsk_alloc +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 0x1b4ae1b1 eventfd_ctx_fileget +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 0x1c132b3d uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x1c339dfe sysfs_remove_link +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 0x1d2cc425 md_new_event +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 0x1e19f572 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x1e359831 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x1e4468ff skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x1e67765a wm8350_reg_read +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 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1fadbd4f __dma_request_channel +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 0x20d22764 iommu_found +EXPORT_SYMBOL_GPL vmlinux 0x214bb103 ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x21a6761d devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x21ad8d06 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x21b6e871 sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0x21c4ddf1 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x21fd56f1 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x2206e2b7 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x2231fdc2 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x223a3d1d usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x227c2523 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22fad139 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x23023f63 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x234658d2 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23d263a7 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x23e78345 tty_wakeup +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 0x250e8f30 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0x2533181d fuse_sync_release +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 0x25fa5da3 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x262ca3f3 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x262e29dd sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x2634d590 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x264acb57 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x26802c0a tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x2691e0ca fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x26ac5e50 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x270c9232 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x271372d8 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x27949c94 acpi_smbus_register_callback +EXPORT_SYMBOL_GPL vmlinux 0x279c2c35 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x27a14535 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x27bc680c ring_buffer_discard_commit +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 0x28ce925d sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x291bc1f7 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x2959ed57 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x295ab608 dm_unregister_path_selector +EXPORT_SYMBOL_GPL vmlinux 0x2976ca5d fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x297940d7 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x297c06dd transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x2991b2fc queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x299a1e6d sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x2a0a4724 bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x2a1538ca lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x2a4b6706 fl6_sock_lookup +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 0x2ae31954 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x2afac5da blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x2b1d9b53 ata_ehi_push_desc +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 0x2c50fbf1 __srcu_notifier_call_chain +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 0x2ccd6ffa inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d3a32bd blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x2d4bea24 wm8994_bulk_read +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 0x2dfdfcf8 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x2e245807 dm_region_hash_destroy +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 0x2fbd0ffa ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x3008c566 inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0x30167838 add_timer_on +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 0x319f0909 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x31bc5570 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x32084797 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x323fcdad scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x329a6b9d wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x32a3dfd2 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32f16df1 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x330d38e2 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x3328968e put_device +EXPORT_SYMBOL_GPL vmlinux 0x33466533 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x334b53b0 class_compat_unregister +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 0x34188929 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x341a754a vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x343e95be crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x34db2d35 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x3512df00 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x358dd73c inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x35cee10f sata_std_hardreset +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 0x36860096 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x36864ef1 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x369ab43a inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x36b5169c transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x36df6deb __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x36e35477 device_rename +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 0x375ca536 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x376e6977 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x378268a4 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x37e44ec5 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x37f1ffbf gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x384053e7 erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0x38571782 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x386fdb8a __xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0x387fb83d bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0x38d1c6fd cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x38d8bf6e bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x38eb4e7b usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x395d7d7a ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x39e27f81 device_create +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a2eea97 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x3a7acfdd save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x3a9c4eae transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x3aa548d4 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x3aa74cd9 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x3ac82860 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x3b0b0104 bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0x3b253128 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3b7b5c3e dev_attr_em_message_type +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 0x3c5ec296 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x3c70f9b0 inet6_destroy_sock +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 0x3ca3814b ref_module +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 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 0x3d7d2566 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3d8b46b5 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x3d8c85fd __blkdev_driver_ioctl +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 0x3e06f6a4 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x3e1b68eb ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x3e46203a ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x3e7738bd securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x3ea0b0aa spi_write_then_read +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 0x3f6c3c3f perf_event_release_kernel +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 0x3fe17755 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x401a09f2 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x4020e223 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x405ec7c4 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x40620597 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x40a631f5 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x41079fe0 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x412f73ad rtnl_link_unregister +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 0x41f355ba sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x4244fece ata_port_pbar_desc +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 0x42eee679 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x43499a39 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x435c3055 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x43dd1a7d cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x4404b75e rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x4404b9d8 ring_buffer_iter_empty +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 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x44ab13e2 device_move +EXPORT_SYMBOL_GPL vmlinux 0x44ec2a04 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x4509aa86 ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x45234eea sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x4537ef07 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x459d607b xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x45a48eb4 dm_rh_recovery_prepare +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 0x4678f6c1 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x467b1391 dm_rh_get_region_key +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 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 0x47cd5b9b ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x47d8d51c scsi_nl_add_driver +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 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 0x48fddf21 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x498741c6 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49a58bfb crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x49d39d2e __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4a4dd2c9 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x4aaeae30 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x4b1a2def kern_mount_data +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 0x4bddf2b9 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x4beebca0 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x4c27abd1 __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x4c316815 pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x4c6e51a7 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c820674 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x4cf3bf2b proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x4d0c1f92 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x4d328d22 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4d4ffe8e ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x4d7d8dfc ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x4d92036f fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x4d9d25c2 dm_rh_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0x4dad07e5 xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x4de1b378 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x4df11e80 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4e359984 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x4eb23923 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f993b28 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x4fb3dcb7 mmput +EXPORT_SYMBOL_GPL vmlinux 0x4fc56cce iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x50026b42 __module_address +EXPORT_SYMBOL_GPL vmlinux 0x5063a06f pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x507de8c6 add_memory +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x50b319ce cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x50ba3bec acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0x50d1f870 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0x50d530c2 pm_runtime_enable +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 0x5105d3b4 xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0x5136023f disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x513d03ee blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x51b368d9 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x51c8eb6d da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x51d63c5b blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x52015d4b rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x52643f6c inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x529b3ce1 ata_dev_pair +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 0x53485d7c d_materialise_unique +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 0x53be329d __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x540eef8a register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x5441cad4 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +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 0x549feb97 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x54a987bd usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x54e9af02 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x550da5be ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x552fe54a scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x553134ad sdio_f0_readb +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 0x55d5c666 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x55f2580b __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x561c634a wmi_evaluate_method +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 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 0x56608217 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x5668f607 skb_pull_rcsum +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 0x56bce7e0 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x572fa04d inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x57380f59 sdio_writew +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 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57db7e6b usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x581c522e setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x5877a546 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x590e9c0d ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x59292074 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +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 0x5a48fba2 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a8f245d crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x5aee5712 __mmdrop +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 0x5b52dcff sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x5b71bd2f crypto_drop_spawn +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 0x5c3a680d ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x5c97b6d5 dev_change_net_namespace +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 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5d8af4b6 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x5d93b7fa pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x5d9fb581 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5deee05c skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x5df2b1d7 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x5e2bb01b __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x5e550562 crypto_register_instance +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 0x5f7d529c bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x600bd376 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x6028706d eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x60555ddc blk_rq_check_limits +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 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x6129c621 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x61710210 xenbus_map_ring_valloc +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 0x61de88a0 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x61e9a973 cpufreq_get_measured_perf +EXPORT_SYMBOL_GPL vmlinux 0x6210df48 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x621ffdb7 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x625b0cc9 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x62743201 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x627a705f rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x62cc2e6c hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0x62e50d98 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x62eaae54 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x63122610 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x63a6bc6d ring_buffer_read +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 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 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 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x662afbd6 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6665056f platform_device_register_data +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66a3a931 scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x6770807c ata_eh_qc_retry +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 0x67fcd1d1 securityfs_create_file +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 0x68790129 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x688281b3 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x6885d93a inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68ad4a38 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x68fc5988 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6924f647 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x6925a382 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x694617b7 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x696201ca acpi_bus_trim +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 0x6a4ee150 ipv6_find_tlv +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 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b5f0e9e default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x6b74f52c scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6b81432a macvlan_handle_frame_hook +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 0x6be38b18 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x6be62dfd probe_kernel_read +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 0x6c654e1a cpuidle_enable_device +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 0x6d24f936 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d3adc8c xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0x6d65b6df sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x6d6ca255 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x6d823192 inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x6db7ec90 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x6dc0b8a0 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x6dc502da fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x6dc8771d sync_page_io +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 0x6e061fc2 dm_put +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 0x6e8714f5 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f4ff930 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x702ba4c1 da903x_clr_bits +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 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 0x7150aa45 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x7169e9c0 acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0x71b15461 pid_vnr +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 0x724ca9b2 screen_glyph +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 0x735a2777 ata_acpi_cbl_80wire +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 0x745e2759 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x74612b3d ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x747be397 driver_add_kobj +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 0x7547f51f ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x754a4613 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7569cf03 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x757fa842 raw_hash_sk +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 0x75b79aa6 inet6_csk_bind_conflict +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 0x76546d35 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x765ddf37 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x766669ea xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x76864d96 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x7692f397 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x76a9801a ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x76ba4fab disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x76d571d3 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x77104d8a regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +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 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 0x79261ade ip6_local_out +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 0x794e13bf scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x7977ca4b crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x79ab1776 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x79b015c2 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7a26be88 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7a50940c tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x7a70d095 ata_host_detach +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 0x7b2ae949 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x7b8f6e5f virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x7c5e4823 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x7cbbdc1f da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7ccd8705 ring_buffer_free +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 0x7dccc9c7 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x7dd58e37 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7df10579 blk_queue_rq_timeout +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 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 0x7f305cef find_vpid +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 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 0x80b0f492 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x80ddbc87 rtnl_kill_links +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 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x8152f705 inet_csk_reqsk_queue_prune +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 0x822d7db9 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x825cab22 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x82608327 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82a5d7f9 inet_twsk_schedule +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 0x831db88a rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x83323c49 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x835376bf platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x8354342a simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x83970d5a ata_base_port_ops +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 0x84154cbe ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x842bbc51 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x855aa938 ring_buffer_record_enable +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 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 0x86d5a940 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_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 0x87ad0c3a ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x87c148f5 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x87c62ced security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8854650f dm_rh_get_region_size +EXPORT_SYMBOL_GPL vmlinux 0x885c63b6 pciserial_remove_ports +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 0x88c1f4d7 fib_rules_unregister +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 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x8928139f sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x8967450c ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x89bc2aac ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x89f671c3 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x89f73b3c crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x8a12daea ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x8a227156 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x8a3f8e8f crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8a4ba082 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8a61b2af skb_segment +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 0x8a9d982e tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x8ab3ad80 pm_request_resume +EXPORT_SYMBOL_GPL vmlinux 0x8adf3014 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x8b39cf9d unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x8b51df74 register_user_hw_breakpoint +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 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 0x8cdc6078 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x8d0ddbb7 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x8d2566cf wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x8d263203 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x8d45eefb xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x8d56cb01 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x8d7c5d83 shmem_file_setup +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 0x8e38842c spi_alloc_device +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 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f7d851d dm_send_uevents +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 0x8fb5c044 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x8ffcbc44 sysfs_get_dirent +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 0x90370592 dm_rh_dec +EXPORT_SYMBOL_GPL vmlinux 0x9059cead fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x906869cc pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x9068ff3b __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x9074ed7c dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x907a1cf4 dm_rh_region_context +EXPORT_SYMBOL_GPL vmlinux 0x908a0b84 tcp_twsk_destructor +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 0x90c60045 ip6_dst_blackhole +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 0x911f0b65 dm_rh_bio_to_region +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 0x91d293fe pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x91d54c41 gpio_free_array +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 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x93260715 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x9342e5e4 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x93861eee crypto_hash_walk_first +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 0x944399a2 dm_disk +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 0x951531ac rtnl_put_cacheinfo +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 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x9595c503 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x95b65302 sysdev_unregister +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 0x96aea3e6 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x96c78f96 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96d97d8f inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x9733b017 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x974ad6b0 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x9761df8d debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x979dfb3e srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x97c3cba1 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x97d8ac58 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x97e6d716 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x97ea8f51 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x98099e88 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x9809da9b platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x9883b121 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x98d04b21 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9923b7fd firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x996e1ac6 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x99c1a662 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x9a02b4c0 dm_rh_start_recovery +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a4d1034 idle_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x9a4efa4c ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x9a9d4675 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x9b1535bd dm_rh_get_state +EXPORT_SYMBOL_GPL vmlinux 0x9b575b8a srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x9b993a85 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x9b9a371b ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9c0a7bf9 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x9c2de449 memory_add_physaddr_to_nid +EXPORT_SYMBOL_GPL vmlinux 0x9c2ed62d leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x9c439216 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x9c529e00 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9ce2495a tty_prepare_flip_string_flags +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 0x9d555a12 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x9d825809 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x9d9aa1c3 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x9e026d6c posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x9e475367 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x9e5450ab sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x9e5aec32 user_read +EXPORT_SYMBOL_GPL vmlinux 0x9e5dc001 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x9e6ad5c0 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f92db31 acpi_processor_set_pdc +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fdcac6b kick_process +EXPORT_SYMBOL_GPL vmlinux 0x9fe14ca5 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x9fed952f usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xa01f75df dm_register_path_selector +EXPORT_SYMBOL_GPL vmlinux 0xa062ffd0 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xa07746c1 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xa079ed24 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xa07a42e7 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xa08e0fa1 inet6_csk_xmit +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 0xa1675131 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0xa17915e7 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xa19ef38e do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xa209ea7a usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0xa21c68dc klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xa2bb0e30 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xa2d6d18b disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa3179c62 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xa33a7b49 ring_buffer_lock_reserve +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 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 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 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa5c3df46 ata_link_next +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 0xa6647379 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xa6ba77bf crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xa6bae256 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xa761efa8 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0xa7809bdf usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0xa7b8601f crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xa7bf976c ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0xa82db118 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa869ce3c spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xa869f8ef inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0xa88ac06a add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xa89935ed tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0xa8a5b653 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xa8a9ab78 platform_bus_type +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 0xa92d9a52 dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL vmlinux 0xa957fbad platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xa9c02a0b register_net_sysctl_table +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 0xa9f3f261 net_ipv4_ctl_path +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 0xaad43656 scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0xaadddf21 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xaade7b2f drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0xaae8a96a sata_link_resume +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 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 0xab9e2920 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xab9e8c45 user_match +EXPORT_SYMBOL_GPL vmlinux 0xabcb8d16 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0xabd93029 inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xabdedac0 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xac5e102d pci_sriov_migration +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 0xacdac6af ata_sas_queuecmd +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 0xad255cbe inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xad499ca9 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xad5dc373 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad8f2ab6 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0xada7557d ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0xadae6e3c sock_prot_inuse_get +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 0xae346981 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xae69abff led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xae75c4ed inet_csk_compat_getsockopt +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 0xaef51cf9 ata_cable_80wire +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 0xaf7354c6 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xafc64fb8 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xafe845e8 iommu_attach_device +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 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 0xb10eb9d3 ata_std_postreset +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 0xb1bc6d6a cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0xb1c55406 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xb21a9813 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xb241e846 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0xb26875f0 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xb28d3499 xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xb29708d8 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xb2a9f693 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0xb2b5bba9 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb2f106ec fb_deferred_io_init +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 0xb33dca9b ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xb38b05d0 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write +EXPORT_SYMBOL_GPL vmlinux 0xb3ec8780 task_current_syscall +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 0xb55620f7 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5985be5 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0xb5c98ac0 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0xb5e58a7d udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb5f07448 tcp_set_state +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 0xb686e404 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6b793ad shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xb6d5542e inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0xb6e7b582 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb7464005 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xb7527422 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb75c5a68 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xb76bc57e skb_morph +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 0xb847d0f4 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0xb868e730 usb_interrupt_msg +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 0xb948007d dm_rh_recovery_start +EXPORT_SYMBOL_GPL vmlinux 0xb94db510 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb9561687 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xba0882b5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xba4167d3 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbaf75e7e ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb1c5231 ata_sff_prereset +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 0xbbfd6511 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0xbc3bdaf0 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbcded53e ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0xbcf0a134 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0xbd041963 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0xbd1b900b ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xbd230133 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xbd4f790a alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd768cb3 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xbd88827d i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0xbdbc32b4 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xbdc7bfb4 xfrm_audit_policy_add +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 0xbe2d411e bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0xbe546e23 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xbe608951 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0xbe7c7193 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbead4956 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xbeba8c6f acpi_pci_find_root +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 0xc03bdc64 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xc0563f72 sysfs_remove_files +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 0xc0d1fdbc hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc0d518a9 fuse_conn_kill +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 0xc1317a5a scsi_bus_type +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 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 0xc2575627 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0xc257e4b3 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc2645623 set_cpus_allowed_ptr +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 0xc33727d2 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xc34ad7b2 ring_buffer_time_stamp +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 0xc3a6615c ring_buffer_empty +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 0xc4b80f04 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xc4ce6189 idle_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc506e4d8 inet_unhash +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 0xc5a2d31b ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0xc5ab309c ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xc60f4dd4 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc622c1e3 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0xc62a764c device_attach +EXPORT_SYMBOL_GPL vmlinux 0xc648b345 platform_get_irq +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 0xc7b102aa inode_add_to_lists +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 0xc89691df __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xc8a29d54 xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xc8cd2e24 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0xc8e9eb75 sata_scr_valid +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 0xc95de0ac tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xc9addf61 get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0xc9c1d56e dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xc9c70863 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL vmlinux 0xc9d84444 md_do_sync +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 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcacca77d __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xcad6ebc3 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xcaebf1ad scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0xcafb0754 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0xcb04f8f1 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0xcb49f836 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xcb558a00 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xcb66aa3a free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xcb79b9ee find_module +EXPORT_SYMBOL_GPL vmlinux 0xcb9ed4a5 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +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 0xcd078a46 ata_timing_compute +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 0xcdd5a894 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xcdec6973 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xcdedc133 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xcdffb8af regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xce080082 swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0xce1edccc __sock_recv_timestamp +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 0xce8dc736 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0xcea36f01 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0xceb68dcd rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xcecb49e9 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xcefef846 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xcf5d7217 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0xcf733bce ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcf8182a7 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcfe2cea1 blk_abort_queue +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 0xd0428c95 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xd054f1ad pm_request_idle +EXPORT_SYMBOL_GPL vmlinux 0xd06827d8 sysfs_add_file_to_group +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 0xd0dadd57 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd103bea4 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd15d4847 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd16e2833 tty_perform_flush +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 0xd2a92917 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd2d4d881 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL vmlinux 0xd3166cfe perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd337c637 inet_hash +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 0xd3a1fc13 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0xd3d01a41 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0xd3d340b0 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0xd3dc57c4 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd42c894c ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xd488b549 scsi_unregister_device_handler +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 0xd5435ca4 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0xd54f49f7 pci_assign_unassigned_bridge_resources +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 0xd60c0151 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0xd6314211 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xd643bd6f mmu_notifier_unregister +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 0xd7229425 css_id +EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd76f9b06 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +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 0xd7faf5b5 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xd8021a21 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd84acec6 raw_seq_start +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 0xd89f1cde tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xd8c585f7 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xd91b8d91 regulator_get_exclusive +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 0xd9d622bf dm_rh_delay +EXPORT_SYMBOL_GPL vmlinux 0xd9e30833 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xd9fe4c4a debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda29f8b0 wmi_set_block +EXPORT_SYMBOL_GPL vmlinux 0xda37cb61 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xda5ba1bb scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xda5d99f6 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xdad14982 do_add_mount +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 0xdb520763 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdb841be8 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xdc1ebca9 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xdc1f8f2e register_timer_hook +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 0xdcf7235a hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0xdd1893fd devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xdd3ca60e anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xdd486d8a regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0xdd82a953 mce_chrdev_ops +EXPORT_SYMBOL_GPL vmlinux 0xdde147ec add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xdded25c0 ata_scsi_simulate +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 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 0xdf84b8ba ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0xdff9c53d cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0xdffd2e3c uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe0ce4984 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL vmlinux 0xe0f433f4 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xe113f493 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xe19255ea dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xe1c9799c __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xe1d0c536 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xe1e5e11f class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xe1ec68a4 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xe23a42f9 each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2a1158f class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xe2da3eb8 register_wide_hw_breakpoint +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 0xe3efa386 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xe4428977 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xe4866c6d xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xe4a2d6ad sk_detach_filter +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 0xe57cb3d9 __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe6024054 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe61d5fe5 console_drivers +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 0xe68507f7 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0xe6a7c46d sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe6f47e98 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +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 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe8390852 tc35892_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe86d206f hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0xe8ace109 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xe8be895e register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0xe8cb16ec __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xe93b736a platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9440c17 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xea00671a inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea121469 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea2ec8ba rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea544c18 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xea5c815a dm_rh_inc_pending +EXPORT_SYMBOL_GPL vmlinux 0xea7982bf blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xeab222ba pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xead3b64d pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb2b7f67 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xeb4531fd rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xeb626442 ring_buffer_entries +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 0xec3c6ffe cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xec543e11 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0xecc093c0 dm_rh_flush +EXPORT_SYMBOL_GPL vmlinux 0xed0da4b9 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xed5dc528 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0xed68910e ata_cable_40wire +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 0xee7a917f dm_rh_recovery_end +EXPORT_SYMBOL_GPL vmlinux 0xee7dcdd9 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xef0b97d5 relay_close +EXPORT_SYMBOL_GPL vmlinux 0xef1c2c43 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef2be47a fib_rules_cleanup_ops +EXPORT_SYMBOL_GPL vmlinux 0xef4a7bfe crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0xef51e5b9 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xef5e8c32 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef9d66d6 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xefd4e66b wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xf0418136 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0xf0680cd5 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf0734909 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0xf080f5b7 ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xf0c6e3eb tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xf0ef9b8f sk_clone +EXPORT_SYMBOL_GPL vmlinux 0xf106504e ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xf10bc06a usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xf11a52c0 ring_buffer_reset +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 0xf22a94ed uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xf23121dc __inet_lookup_established +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 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf35a004f ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf35b2f7a class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xf395b63e cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0xf39efaca kobject_uevent +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 0xf4506104 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0xf455da64 ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf4922989 mnt_drop_write +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 0xf4cb8fb8 fs_kobj +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 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5c09718 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0xf6129941 dm_underlying_device_busy +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 0xf6fdde2f ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0xf717c2de usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xf72292a2 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xf73861b3 gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0xf7558a6c vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xf76384d4 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xf7af13ca ata_link_abort +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 0xf80a9e80 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0xf818fb5e fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0xf85c612d map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf898f1eb sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0xf8b22dc2 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf9156526 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0xf91a50f6 ip6_sk_dst_lookup +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 0xf990164b inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0xf9924426 arch_add_memory +EXPORT_SYMBOL_GPL vmlinux 0xf99a10af hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9ffd54a scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa0374d6 dm_rh_stop_recovery +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +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 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb69f327 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0xfb78a086 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xfb8084da usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xfb87e0cf __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xfb882fb7 wmi_query_block +EXPORT_SYMBOL_GPL vmlinux 0xfb954507 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0xfba929de tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xfbb74668 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xfbbec4c0 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0xfbdafe26 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc15ae96 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0xfc387e0e blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0xfc5607df tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xfc7b6098 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfcaf3ab8 xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xfcb3953a set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xfcbee8af ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xfd13468a elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfd2008b8 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0xfd3d0581 ata_acpi_gtm_xfermask +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 0xfd8f28cf platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xfd9b8d92 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0xfdb70c93 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xfdc839d8 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0xfdcdf605 pciserial_suspend_ports +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 0xfe49a928 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xfe6cbb0a ata_host_register +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 0xfed6444c pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xfef5b152 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xfefa2adb input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0xff0af65f dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0xff0b21b7 md_allow_write +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 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffa9ed57 inet_hashinfo_init --- linux-2.6.35.orig/debian.master/abi/2.6.35-28.49/amd64/virtual.modules +++ linux-2.6.35/debian.master/abi/2.6.35-28.49/amd64/virtual.modules @@ -0,0 +1,503 @@ +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 +auth_rpcgss +autofs4 +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 +fscache +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 +lockd +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 +nfs +nfs_acl +nfsd +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 +sunrpc +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 +vmware_balloon +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-28.49/amd64/server.modules +++ linux-2.6.35/debian.master/abi/2.6.35-28.49/amd64/server.modules @@ -0,0 +1,2840 @@ +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 +dell-wmi-aio +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-28.49/amd64/generic.modules +++ linux-2.6.35/debian.master/abi/2.6.35-28.49/amd64/generic.modules @@ -0,0 +1,2846 @@ +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 +dell-wmi-aio +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-28.49/amd64/generic +++ linux-2.6.35/debian.master/abi/2.6.35-28.49/amd64/generic @@ -0,0 +1,11150 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0x138cdb10 kvm_read_guest_atomic +EXPORT_SYMBOL arch/x86/kvm/kvm 0x502934b8 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 0x5a9966d8 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x28dbf81a 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 0x013c5ef1 drm_sg_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x023e0305 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x036bb530 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x09b377c1 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0bac0884 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0cb3008b drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ccad1fd drm_mode_find_dmt +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 0x1308bda9 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x162867a3 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a06038a drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ab63267 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1abf31fe drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b22a7df drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b9439be drm_mode_create +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 0x2108ec95 drm_get_resource_start +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21822c4d drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25f1c3a3 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26cf9c4d drm_encoder_init +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 0x2a32ea4d drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ae93152 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c0dc0e6 drm_gem_object_release +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 0x3042d75e drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x309c6845 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30ad1209 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3751c8fd drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37bc1f63 drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37bd8def drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x386e90d8 drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39319394 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3aeb31ae drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b497b11 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3dbebf0f drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e7cd19a drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3fc017d8 drm_lock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44a137af drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x45141a7a drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x462e5da5 drm_framebuffer_cleanup +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 0x4831d2c2 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a344a38 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e46f7e8 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x518e5282 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53f3c3af drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54bbf231 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54ed53d8 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54f411ce drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x564ee7b8 drm_get_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x56ee358e drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x592d8870 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5bf5d3d5 drm_get_drawable_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5edd8642 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f11cca0 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f808798 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6972bf0e drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x69e898a7 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a2de014 drm_debugfs_create_files +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 0x6d35ab3b drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e950f34 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc44881 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7084c2f6 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x713e7d84 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x715d9ab6 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x719b3c5b drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d52f111 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7ecbc110 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81020a74 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x869b301c drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x88ff2f0e drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b882457 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f475905 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f4a4335 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x903dd43e drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9209d304 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x94266771 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9499875d drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9abc0448 drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9bfbadaa drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4b03224 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4f1b276 drm_core_ioremap_wc +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 0xa6324b60 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa73febc2 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa78310bf drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa97a376e drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb108f598 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb29b171e drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb7792b44 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb80e5b36 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb85b1264 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8a03679 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8d75f70 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbdfd0e4e drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc12050e1 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc243112d drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc78301f5 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc78be0f4 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca4482c1 drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcaabb0b7 drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb6241f4 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xccbd2ec1 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0455c49 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd494c539 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4be93dc drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd57bba73 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5c7fb86 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd63d6819 drm_core_get_map_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc3a4f6a drm_lock_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdcd9bae0 drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd46eecb drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdda9d66e drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf3c8c37 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf9d8ebb drm_irq_install +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 0xe48fb0ab drm_agp_chipset_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe50f163a drm_master_get +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 0xee8b587b drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf021b62c drm_mode_detachmode_crtc +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 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 0xf474b271 drm_get_resource_len +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf5c2070e drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb5020ac drm_i_have_hw_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc187412 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc575d92 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdaf018f drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe3c88bf drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffdd750b drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x11133f65 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x12abe029 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x18aedac7 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x374aac00 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x47fa9251 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4aea5ff1 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4d57839d drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4d8891c8 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x527ba75c drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x52ae4aa5 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5e86d062 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5fa40ff1 drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x61c88b74 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x64ee3340 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x67714836 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6bd725f8 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6c8d08a4 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7ee4a260 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8aca876b drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8ed5e60a drm_fb_helper_setcmap +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 0xa3e42e73 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb5132d36 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb6ee4e70 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbdfad36e drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc7a2953f drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd9eebe9a drm_kms_helper_poll_fini +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 0x42563833 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x475199a5 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x89ec0c6a rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 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 0x0a7389ae rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x276fff99 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2ee89271 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3858fe8d rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3a0540ab rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x58114b26 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5ff6da69 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6a8c908f rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7434599b rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x74ed441c rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x848598e8 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9185a594 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xaa57135d rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbe804d34 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcc20a1f4 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd815f877 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe55ac64f rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xeb317f57 rdma_reject +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 0x15f5f6b3 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x1dcaf442 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x7786a660 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xce30a1e4 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xeb6a76c9 mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xf319346e 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 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 0x01366ca7 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xb963340d isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xe412aff8 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 0x1e669012 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1fc2c981 confirm_Bsend +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 0x2cf74417 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x37eee51a mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x382778dc mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ef163b9 mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4c928c98 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x51c74ffa get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5894b2c3 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x63679afd queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7955a519 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x814dad69 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x81db1e28 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x98cb0f70 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa99fb5f8 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb2c036b6 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbf579bc9 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd6f28d7c recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd9fef16d mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe11aac51 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe3e01e1f create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe6636f55 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf4404837 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfa4bc47f mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL drivers/md/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL drivers/media/IR/ir-core 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 0x3da0d9ed dib7000p_attach +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 0xa1750ad6 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd524469e dib7000p_pid_filter +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 0x06ffb9b2 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0733c9a9 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x09918a1d mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4f6c2876 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x56c9388d mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6042fc48 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x669ca7f6 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7875fc5d mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x808f3b27 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x857efddc mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x886e284d mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xaad12eb5 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xada97374 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xafc7f65f mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb7062b61 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc1299b06 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc2115895 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcbbb28ae mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcd3794b8 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcdd36a50 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcde8ff96 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcfa368c0 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd6d16cd5 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xde6f0db0 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdff49a02 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe33c6427 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf1088f8a mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf23a7614 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf8793782 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0c9408e5 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1258c831 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x20370706 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x20915c62 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2dbd7702 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x33047752 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3dfadf08 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x40c83c4a mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4424ccf2 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4452795c mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x452b3424 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x45896543 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x52e5680e mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6955a35a mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6dfbc275 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x79225b47 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8aeffba4 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa39b8436 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa3eb34d4 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xba17cab7 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcdbaa282 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd36d4e01 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe5fac5d6 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xeb36bef5 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf6a48226 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xff19e49e mptscsih_taskmgmt_complete +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 0x88f56d27 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 0xe7f63e25 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x 0x7d7488d1 bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x3120e1c0 cnic_register_driver +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x20b6d36d cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x35f168f8 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x623ab482 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x79359eac cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7c41ac48 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8bc0ffb9 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x99543099 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa609eba6 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa9f86102 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xae9d01be t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc078698c cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc1e77a70 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc7e32900 cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe96d358d t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe9ca42ee cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xec5b5823 t3_l2t_send_slow +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 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 0x7fccbcce cxgb4_ofld_send +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 0x9ffbd4b7 cxgb4_pktgl_to_skb +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 0x054c6304 register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xdb20742c pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xdfd4bfcc 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 0x1a9c45f4 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x327183c8 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4092ca5f libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5aa0b660 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5bdbaa66 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6468b871 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x653c4d3f libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6892eb27 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x730c2198 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x73770539 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8a51eb93 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x98e1dc6d libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb3daed3e libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb66f5685 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb86f5c22 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc0fcd433 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd2138678 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd97383d2 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe1cc49cd libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe7fc7b1e libipw_is_valid_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 0x01154f78 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1a0835c0 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1e6e6ef0 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x46720a23 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xaea9ef30 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xba8512ef fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xfdbf70c6 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x053cf086 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x16a8caa5 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x24cb7ef3 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x24ede91d fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2a4d2ea4 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2ea79a9a fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2fb3afb4 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x313c1bda fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x34c8fe4e fc_fabric_logoff +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 0x3dd45d97 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4e787fa4 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5777cc47 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x577d9750 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x57a39b10 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5c34c2d3 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5d836c86 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x66f17c63 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x673c6cc2 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6812c28f fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x87e223f9 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8cdcf51b fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8e6ed398 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9f1e3a78 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa35fdf9e fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa7a5c4f4 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaa452552 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb2f2b0f4 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb377f0a2 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc5440e61 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb3af767 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd807f818 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xddc950d4 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xde4f7a85 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe26039ba fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe541febf fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xec94eabd _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xee58da0d fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf5a3cc8f fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf84d9523 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfae7f7e7 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfd25fb87 fc_set_rport_loss_tmo +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 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x13214df7 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x17b79674 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x206db7fd osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x27e9b663 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x28f4305e osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x38107095 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3890270e osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3e83680a osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3f073dfd osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x40cc7729 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x43472264 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4543aa44 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5174c0d4 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x58cd4f93 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6e081938 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7fd8a7c7 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8335ed7e osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8a413d87 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9b137286 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9e5d49d9 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xade6ebdb osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xadff2fa1 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc008dab6 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc2ff8cda osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcee25103 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd46d6bfb osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd61066b9 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd73d16bd osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdfa7409c osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf293d8d5 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf8780bab osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfb1c44e1 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/osd 0x0fe18a0f osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x1742e52d osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x6326f8e3 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x6781abe2 osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0xc2cc74c4 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xee71de54 osduld_register_test +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x0f9444a9 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x362a2d6c qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5a5cb901 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5b65617e qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xc10d459d qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf8f3c7c2 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/raid_class 0x3b11b692 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x7d168e10 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xd02af619 raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x08109852 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x15f28e3c fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x681727eb fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x81b0a208 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x841bf7a9 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x87d245a1 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa2e1d212 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb11dbc2e fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbc998a66 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc42e337e scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xce57a738 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf694b202 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xff318ebe fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x08249afd sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1eeab126 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2222dd49 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2eccbee7 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2ffde8e8 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3d7ad910 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x587d10a4 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x58a46229 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x655dbb3d sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x68c23da7 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7340b91a sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7ab5a90d sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7b0aa4ab scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x864761d6 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa1508dc8 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa84e1a19 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaad64941 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb19b780d sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbd799ed0 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcbd25dc8 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd0eedb14 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd196ee51 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd9f8ae7f sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xecdab83e sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf7b09c39 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xff1f8bf6 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x34ec63e3 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x40ecf7a6 spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x41d9613d spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xae2381db spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xd9f73091 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 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 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 0x6c414d9a ieee80211_txb_free_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 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 0xd3cc9f9a ieee80211_rx_mgt_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 0xe6acee0e ieee80211_rx_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 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 0x0f546bfa vme_slave_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x0ff6c01d vme_dma_list_exec +EXPORT_SYMBOL drivers/staging/vme/vme 0x151c623d vme_irq_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x1c24403f vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x26ce631c vme_irq_generate +EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf vme_lm_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x43e2f154 vme_master_read +EXPORT_SYMBOL drivers/staging/vme/vme 0x47070d15 vme_master_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x51807b5d vme_slot_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x589e2553 vme_dma_list_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f vme_dma_pci_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x717cc9fc vme_bus_type +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 0x87654621 vme_irq_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/staging/vme/vme 0x9a3dfee8 vme_register_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/staging/vme/vme 0x9d279035 vme_master_write +EXPORT_SYMBOL drivers/staging/vme/vme 0xa09d045f vme_get_size +EXPORT_SYMBOL drivers/staging/vme/vme 0xa21ba6e1 vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0xae3f11f9 vme_unregister_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0xc8352002 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xca6c16d3 vme_irq_handler +EXPORT_SYMBOL drivers/staging/vme/vme 0xcc5b0af0 vme_slave_set +EXPORT_SYMBOL drivers/staging/vme/vme 0xcdc22ba9 vme_dma_request +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 0xeccbeafc vme_dma_free_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xee7438f0 vme_lm_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xf1b1bb11 vme_free_consistent +EXPORT_SYMBOL drivers/staging/vme/vme 0xf5040c95 vme_dma_list_add +EXPORT_SYMBOL drivers/staging/vme/vme 0xfad7345f vme_register_bridge +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc +EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free +EXPORT_SYMBOL drivers/telephony/ixj 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 0x3bae990c usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x43489220 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x44e8a6f1 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6d759d3c usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x83f6f4e1 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x875245d6 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa0856890 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa3656776 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xaa99f12e usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xab1bfc06 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xab82e2e3 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb6cfe8a2 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe861d40b usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf99fc4b5 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x384b4675 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xf18eb844 usb_serial_resume +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 0x6ea98e6c w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xa8106045 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xe4ce1bcb w1_add_master_device +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 0x20f17b76 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x6d72d5fd aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xd3c6c9b4 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xea29b5bf atrtr_get_dev +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x33945374 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x3537740c vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x5363a1ad register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x577a2656 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x6f03009a atm_charge +EXPORT_SYMBOL net/atm/atm 0x9acf6680 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xcd4f7239 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0xd96fe1c7 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xe201f843 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xf40121ca vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xf6914257 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0xfb92599e atm_dev_deregister +EXPORT_SYMBOL net/ax25/ax25 0x0479d44f ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x151f780c ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x18b5fe57 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x3ba61ee8 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x5e69d146 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x61ce4507 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x83272bf3 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x97dfa55b ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x9a0fa004 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xb0977fdf ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/bluetooth/bluetooth 0x014c6108 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0238956f bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x04dac41a hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0754c715 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x120cee6e bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x177176d4 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x181bf821 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x29bc7972 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x355bee97 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x378b5fab hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x39120699 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3bae789d hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x487a57dc hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4f55bc39 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x51fb17d4 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5ed10903 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5fb638a1 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6fe14a40 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x94f17d9d hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9a3c6c45 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9d0c96e0 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa064d608 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa81f9a12 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xacf89372 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xae4f8fa6 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb34e0f4f hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbf287d57 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc4bbb4fd hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd64305ac hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xde673db0 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdf512f61 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xed742759 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0xcf9d2e41 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x59a7c75e ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x5d70cfdf ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x7064ebc2 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 0x05487a5b can_proto_register +EXPORT_SYMBOL net/can/can 0xbabd510b can_rx_register +EXPORT_SYMBOL net/can/can 0xc173e9bb can_proto_unregister +EXPORT_SYMBOL net/can/can 0xc3d4cc23 can_send +EXPORT_SYMBOL net/can/can 0xef21ac4e can_rx_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x0ecc02f9 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x1791e767 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x286ef6b1 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x45d512f0 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4676f18c ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x51970bc2 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x8127db83 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x812a5c6f wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb2ee0544 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc19dd208 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc6b098dc wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe032c5b6 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xec327219 wpan_phy_for_each +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x571695f5 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x88f38b25 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xacb242f3 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x62c49572 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x7057feb4 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xe283b096 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1b99bda2 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1f3dbe60 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x8c2ef103 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x932e1bd3 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb481140b nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xbfd6fa47 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf2d34338 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/tunnel4 0x161fec2c xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xe9c8724f xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x524dcac0 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x8639b47a ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xa52bc524 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xac39e452 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0x64246974 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x8135e53d xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x02df34e1 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x0d6f65d9 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x5a90f569 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 0x26da7c57 l2tp_recv_common +EXPORT_SYMBOL net/l2tp/l2tp_core 0xf3f07d3b l2tp_tunnel_destruct +EXPORT_SYMBOL net/lapb/lapb 0x01c40cca lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x4bb81629 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x4fe45f2a lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x53f83c5d lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x5a402b4b lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x8727a4a7 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x9102ef9a lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xf10dfc6b 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 0x20f5f439 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x27058cb3 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3229b7ba unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3957bf64 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x39ea98a9 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8103a3ec register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9225c34e ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x94031279 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xae5f7894 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb3125b92 ip_vs_skb_replace +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xcb9e7f69 ip_vs_conn_put +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 0x1ec8095a xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x2cf84781 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x490bd159 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x4f2cb657 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6c0fa0ac xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x6d94f20a xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x9cb23230 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xaebbb7f6 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xc518e244 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xd5c0a910 xt_unregister_match +EXPORT_SYMBOL net/phonet/phonet 0x01a5e7c7 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x150d9f4d phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x1af8247d phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x6f8d9f8a pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0xa58c50f1 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0xa6bdfb11 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xbb48ce64 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0xef3904e0 pn_sock_hash +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x171881ad rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2026cc6f key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2a18d763 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2c491ff7 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4e2d6a0a rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5a9a4882 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6b3d0e67 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8181981e rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x87a0e8f4 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9258d3c9 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x971a5b63 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa903c9c3 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb5771bfd rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb837eb3a rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe1ac9ae5 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf754becf 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 0x25363cc6 wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0x826301cf wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x00701304 cfg80211_get_bss +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 0x0cdde2a1 ieee80211_amsdu_to_8023s +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 0x20a896e5 ieee80211_data_from_8023 +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 0x3e103e6b ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x400b66e7 cfg80211_rx_action +EXPORT_SYMBOL net/wireless/cfg80211 0x45b69859 cfg80211_classify8021d +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 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 0x9a393558 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x9c2d5910 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0xb286192e wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xb6cdd209 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xbacc204e __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xbd799190 ieee80211_data_to_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 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 0x257bf912 dm_mem_cache_free +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x3c8d51f5 dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x60613804 dm_mem_cache_client_destroy +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x92c2ce62 dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xac68901f dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xc7f3df7b dm_mem_cache_shrink +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x000d910f bio_clone +EXPORT_SYMBOL vmlinux 0x001ef709 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x0024da32 km_query +EXPORT_SYMBOL vmlinux 0x004e7639 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x004fd42c kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0094d65f vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x00959dd2 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x00bd9d31 add_timer +EXPORT_SYMBOL vmlinux 0x00ce14ba register_snap_client +EXPORT_SYMBOL vmlinux 0x00db9ecf md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x00ea8a65 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x00f1d319 d_delete +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01140251 pid_task +EXPORT_SYMBOL vmlinux 0x016a08fd rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01a51267 udp_disconnect +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 0x01e7fb18 serio_close +EXPORT_SYMBOL vmlinux 0x01ee2b5c pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x01f0204d mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x01f1fb57 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x024b52bf dquot_resume +EXPORT_SYMBOL vmlinux 0x025e8b05 thaw_process +EXPORT_SYMBOL vmlinux 0x025f748f tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x02936f07 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x02974b8a skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02aff2f4 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0x02b16500 __blockdev_direct_IO_newtrunc +EXPORT_SYMBOL vmlinux 0x02cbe5aa inet_del_protocol +EXPORT_SYMBOL vmlinux 0x02cf2687 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02e01fa8 mddev_congested +EXPORT_SYMBOL vmlinux 0x03168f5d init_timer_key +EXPORT_SYMBOL vmlinux 0x032c66ee mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x032edd35 tty_insert_flip_string_flags +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 0x03579a4d sockfd_lookup +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x0395f439 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03eac609 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x03fee42d __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x043941d6 __ps2_command +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04bc9c67 md_check_recovery +EXPORT_SYMBOL vmlinux 0x04d44a62 kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04ec3f0d blk_execute_rq +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x052b9558 install_exec_creds +EXPORT_SYMBOL vmlinux 0x053c504a dm_exception_store_type_unregister +EXPORT_SYMBOL vmlinux 0x0540ce28 tcp4_gro_receive +EXPORT_SYMBOL vmlinux 0x0549ac06 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x05599304 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x0562bf8a km_report +EXPORT_SYMBOL vmlinux 0x058c38c1 get_write_access +EXPORT_SYMBOL vmlinux 0x05a29260 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x05e20f65 sk_stream_error +EXPORT_SYMBOL vmlinux 0x05e28d43 __first_cpu +EXPORT_SYMBOL vmlinux 0x0612c6c2 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x061ca5ac mmc_card_awake +EXPORT_SYMBOL vmlinux 0x06255bf7 input_allocate_device +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06896cbd dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x06a485f2 __krealloc +EXPORT_SYMBOL vmlinux 0x06ab60c0 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x06bdc701 set_pages_nx +EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x06d97558 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x06dde1dd md_done_sync +EXPORT_SYMBOL vmlinux 0x06f7e500 dm_io_client_resize +EXPORT_SYMBOL vmlinux 0x06f87914 read_dev_sector +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x076442aa slow_work_cancel +EXPORT_SYMBOL vmlinux 0x07653dcd generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x078d5d0f __pci_register_driver +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong +EXPORT_SYMBOL vmlinux 0x079f1558 blk_insert_request +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07bc8b02 key_revoke +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07d9bc34 sock_tx_timestamp +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 0x0865dfac neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x089ffb88 dm_dirty_log_destroy +EXPORT_SYMBOL vmlinux 0x08d53e4c wake_up_process +EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x08e5dbed pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x08f3776e journal_get_write_access +EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x095ea04f ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x096600ed phy_find_first +EXPORT_SYMBOL vmlinux 0x096c8a2f dentry_open +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +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 0x09b685ec dquot_disable +EXPORT_SYMBOL vmlinux 0x09bf1e6e _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c57d4a dm_snap_cow +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 0x09e17579 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x0a03125a wireless_send_event +EXPORT_SYMBOL vmlinux 0x0a03bf7d remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x0a1cb972 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a52ff5a d_alloc_root +EXPORT_SYMBOL vmlinux 0x0a60216b __netif_schedule +EXPORT_SYMBOL vmlinux 0x0aa5b4ed netpoll_print_options +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0af3b665 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x0b0d36b6 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b0ed270 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x0b11db0f sk_dst_check +EXPORT_SYMBOL vmlinux 0x0b1adc87 blk_integrity_unregister +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 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0bbf5adb irq_stat +EXPORT_SYMBOL vmlinux 0x0bd16139 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x0c0baedc uart_unregister_driver +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 0x0c66d245 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x0c67319d tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x0c791cd5 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c97fd37 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cc29cdb blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x0cc7f956 edac_mce_register +EXPORT_SYMBOL vmlinux 0x0d2c5e2e put_tty_driver +EXPORT_SYMBOL vmlinux 0x0d37c144 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d4b2fde follow_down +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d6a6181 register_console +EXPORT_SYMBOL vmlinux 0x0d7ad88a dm_exception_store_type_register +EXPORT_SYMBOL vmlinux 0x0d9f4e5b ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dce8745 vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0x0de8747a simple_lookup +EXPORT_SYMBOL vmlinux 0x0de8e721 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x0def7c64 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x0dff8eee skb_insert +EXPORT_SYMBOL vmlinux 0x0e0ed6bc phy_disconnect +EXPORT_SYMBOL vmlinux 0x0e174aa7 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x0e224591 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x0e2bbb91 km_state_expired +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e5a02cd jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x0e5e6719 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x0e75565a neigh_compat_output +EXPORT_SYMBOL vmlinux 0x0e75663a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x0e7f2460 add_disk +EXPORT_SYMBOL vmlinux 0x0ebebe14 groups_free +EXPORT_SYMBOL vmlinux 0x0ebf36a8 dm_put_device +EXPORT_SYMBOL vmlinux 0x0ed8cc7b acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x0f43f831 sync_blockdev +EXPORT_SYMBOL vmlinux 0x0f5d6b4d kmalloc_caches +EXPORT_SYMBOL vmlinux 0x0f7b585a rfkill_blocked +EXPORT_SYMBOL vmlinux 0x0f7cc1b7 tty_hangup +EXPORT_SYMBOL vmlinux 0x0f86a2e9 dquot_commit +EXPORT_SYMBOL vmlinux 0x0f927b37 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x0fac778d take_over_console +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fc5e8eb radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x0fc6fea2 blk_free_tags +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ffe6d7d serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x101289d7 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x1015064f iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x104d7125 padata_stop +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x10865ad1 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint +EXPORT_SYMBOL vmlinux 0x109fbc71 fb_class +EXPORT_SYMBOL vmlinux 0x10b63df1 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x10bac516 input_set_capability +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10df97a7 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +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 0x11459c5c scsi_block_requests +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x1190b1f2 seq_putc +EXPORT_SYMBOL vmlinux 0x119a66b3 ilookup +EXPORT_SYMBOL vmlinux 0x11ab89a5 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x11ba34f7 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x11cf63bf skb_append +EXPORT_SYMBOL vmlinux 0x11d8c5d6 register_md_personality +EXPORT_SYMBOL vmlinux 0x11e94dda pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0x11edef79 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x11f09313 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x120ee165 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x12281cf0 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x122c493f __skb_checksum_complete +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 0x128d114c eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x12983e9f bdi_register +EXPORT_SYMBOL vmlinux 0x129ceef6 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x12a461b7 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x12e0bd85 phy_start +EXPORT_SYMBOL vmlinux 0x12f26bb8 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x12fb94bf eth_header_cache +EXPORT_SYMBOL vmlinux 0x1306508e genphy_suspend +EXPORT_SYMBOL vmlinux 0x1328965f uart_get_baud_rate +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 0x13b769f9 d_add_ci +EXPORT_SYMBOL vmlinux 0x13bb15e3 set_trace_device +EXPORT_SYMBOL vmlinux 0x13bee55c journal_revoke +EXPORT_SYMBOL vmlinux 0x13e19043 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x13e8bae5 ht_create_irq +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x1436917d down_write +EXPORT_SYMBOL vmlinux 0x1437b983 compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x147cf951 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x14954225 con_is_bound +EXPORT_SYMBOL vmlinux 0x149d0d61 alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x14a72141 dma_supported +EXPORT_SYMBOL vmlinux 0x14b12b02 nf_reinject +EXPORT_SYMBOL vmlinux 0x14b54776 dentry_unhash +EXPORT_SYMBOL vmlinux 0x14c89ab7 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x14ce0ed4 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x14d2f829 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x14e462a6 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x1508b517 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x153cfaa3 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x1567affe bmap +EXPORT_SYMBOL vmlinux 0x1576eb3c mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x159417da mdiobus_write +EXPORT_SYMBOL vmlinux 0x15af33f4 create_mnt_ns +EXPORT_SYMBOL vmlinux 0x15b35d92 register_framebuffer +EXPORT_SYMBOL vmlinux 0x15d8c8aa edac_mce_unregister +EXPORT_SYMBOL vmlinux 0x15e204d2 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x15eb7266 ndisc_build_skb +EXPORT_SYMBOL vmlinux 0x16074984 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x160c5d4d no_llseek +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x161241f5 __f_setown +EXPORT_SYMBOL vmlinux 0x1619993f neigh_update +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x164394cb tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x16592094 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x165b4c91 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x16963abd key_task_permission +EXPORT_SYMBOL vmlinux 0x16a62b97 sg_miter_start +EXPORT_SYMBOL vmlinux 0x16af320a blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x16dff2b8 tty_set_operations +EXPORT_SYMBOL vmlinux 0x16ee290e tcf_register_action +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x17175757 commit_creds +EXPORT_SYMBOL vmlinux 0x1719638c udp_sendmsg +EXPORT_SYMBOL vmlinux 0x173cee67 serio_reconnect +EXPORT_SYMBOL vmlinux 0x173d8644 igrab +EXPORT_SYMBOL vmlinux 0x174e17fa set_anon_super +EXPORT_SYMBOL vmlinux 0x1755f2e1 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x175f82e1 key_validate +EXPORT_SYMBOL vmlinux 0x1763f015 ida_remove +EXPORT_SYMBOL vmlinux 0x1779a825 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x178730a6 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x1789bfc8 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x17b26c32 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x17b39019 unregister_snap_client +EXPORT_SYMBOL vmlinux 0x17c34405 tcf_em_register +EXPORT_SYMBOL vmlinux 0x17c85a66 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x17cacf3d blk_end_request +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x1820e67d ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x1849454e module_refcount +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x185c2825 md_barrier_request +EXPORT_SYMBOL vmlinux 0x186b5f29 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x186e5982 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x18777861 fb_set_var +EXPORT_SYMBOL vmlinux 0x189b6bac memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x18a5b497 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x18a94385 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x18b72573 register_kmmio_probe +EXPORT_SYMBOL vmlinux 0x18b77f6e xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x18d7ab0c __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x1901c218 block_truncate_page +EXPORT_SYMBOL vmlinux 0x1902397e dquot_quota_on_path +EXPORT_SYMBOL vmlinux 0x1929efe2 journal_clear_err +EXPORT_SYMBOL vmlinux 0x192e5873 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x195159c4 netpoll_setup +EXPORT_SYMBOL vmlinux 0x19683990 slow_work_sleep_till_thread_needed +EXPORT_SYMBOL vmlinux 0x1983fe7e proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x198bcfe7 unregister_console +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19b16064 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x19e0ee24 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x19f79e64 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x1a1585cf blk_plug_device +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a8a845e idle_nomwait +EXPORT_SYMBOL vmlinux 0x1a8f6c16 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x1a925a66 down +EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in +EXPORT_SYMBOL vmlinux 0x1aa1020b sock_no_connect +EXPORT_SYMBOL vmlinux 0x1aac8792 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x1ab16378 audit_log_format +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ae8d0dd xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b2b924c __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x1b3c41aa security_inode_readlink +EXPORT_SYMBOL vmlinux 0x1b5ab808 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b6c897b prepare_creds +EXPORT_SYMBOL vmlinux 0x1b6d2556 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b967ed5 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1be8e711 blk_init_queue +EXPORT_SYMBOL vmlinux 0x1beb0d31 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x1bf369f9 kthread_bind +EXPORT_SYMBOL vmlinux 0x1c0662e1 console_start +EXPORT_SYMBOL vmlinux 0x1c113364 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x1c16e9fe gen_new_estimator +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c3234e3 md_write_start +EXPORT_SYMBOL vmlinux 0x1c36616d posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x1c381704 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x1c5619bd __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x1c5eacf7 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1c9f3bff scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x1ca808ba arp_send +EXPORT_SYMBOL vmlinux 0x1cb999a9 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x1cc1797f con_copy_unimap +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cd5b742 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x1d2ab136 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d300be1 input_register_handle +EXPORT_SYMBOL vmlinux 0x1d34ca27 tty_check_change +EXPORT_SYMBOL vmlinux 0x1d91efc4 nobh_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x1d95a71e udp_proc_register +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 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1ded3949 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x1def2c35 get_disk +EXPORT_SYMBOL vmlinux 0x1e036c98 acpi_set_gpe +EXPORT_SYMBOL vmlinux 0x1e03a39f poll_freewait +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e2a1482 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x1e2e427f cpumask_next_and +EXPORT_SYMBOL vmlinux 0x1e3f5e28 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x1e4c1884 kfree_skb +EXPORT_SYMBOL vmlinux 0x1e68b7e2 sock_wake_async +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e7bcc2e i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x1e87b3f5 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x1e8a4747 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x1e9c6ed6 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x1e9eaedc security_inode_permission +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1eb01149 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x1ecfde6b inode_claim_rsv_space +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 0x1f5b604b sk_receive_skb +EXPORT_SYMBOL vmlinux 0x1f8c98f8 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x1fc8051b i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fd59798 vfs_link +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005cf97 tty_unregister_driver +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 0x203c354c generic_ro_fops +EXPORT_SYMBOL vmlinux 0x205c5ef3 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x20bdf1f6 register_filesystem +EXPORT_SYMBOL vmlinux 0x20be2b86 compat_ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x20dd618b bd_release +EXPORT_SYMBOL vmlinux 0x20dee933 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x20e519ea blk_sync_queue +EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum +EXPORT_SYMBOL vmlinux 0x20f180dd alloc_fcdev +EXPORT_SYMBOL vmlinux 0x2104021f inet6_bind +EXPORT_SYMBOL vmlinux 0x21285a8a netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x2151767e tty_port_close +EXPORT_SYMBOL vmlinux 0x215a6415 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x21843721 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x2191cd25 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x21b4ab01 dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x21c527f8 thaw_super +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21f2b445 simple_statfs +EXPORT_SYMBOL vmlinux 0x2202bc98 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x220bd2b7 pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x220da6e2 simple_release_fs +EXPORT_SYMBOL vmlinux 0x222bff54 inode_permission +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x2250c367 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x22570a40 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x226ef1ba __scsi_add_device +EXPORT_SYMBOL vmlinux 0x227fcd85 mdiobus_read +EXPORT_SYMBOL vmlinux 0x228728d4 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x228ff057 filp_open +EXPORT_SYMBOL vmlinux 0x2297b7ab scsi_device_put +EXPORT_SYMBOL vmlinux 0x22a0703d file_remove_suid +EXPORT_SYMBOL vmlinux 0x22a571be write_one_page +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22c9e734 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x22d73c78 phy_sanitize_settings +EXPORT_SYMBOL vmlinux 0x22da60d6 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x22f59dc3 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x2314ad38 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul +EXPORT_SYMBOL vmlinux 0x232856a2 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x23435fbd dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x234509f3 strncat +EXPORT_SYMBOL vmlinux 0x234b4e42 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x234f85f4 abort_creds +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x236c8c64 memcpy +EXPORT_SYMBOL vmlinux 0x238197ce stop_tty +EXPORT_SYMBOL vmlinux 0x2384757b dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x23927c59 tcp_md5_hash_header +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 0x240c32b3 dm_dirty_log_type_register +EXPORT_SYMBOL vmlinux 0x2436313f pci_disable_device +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x24699041 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x2482c32d rt6_lookup +EXPORT_SYMBOL vmlinux 0x24d433c8 dev_addr_del +EXPORT_SYMBOL vmlinux 0x24ddd89a __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x24ef8d17 skb_kill_datagram +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 0x2578e8df acpi_bus_add +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25a34959 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x25c4d571 mapping_tagged +EXPORT_SYMBOL vmlinux 0x25e5939e fb_set_suspend +EXPORT_SYMBOL vmlinux 0x25ec1b28 strlen +EXPORT_SYMBOL vmlinux 0x26061d11 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x261ad215 proc_mkdir +EXPORT_SYMBOL vmlinux 0x2626461c tcf_exts_change +EXPORT_SYMBOL vmlinux 0x262e1431 invalidate_partition +EXPORT_SYMBOL vmlinux 0x2637d513 __seq_open_private +EXPORT_SYMBOL vmlinux 0x26467b22 iget_failed +EXPORT_SYMBOL vmlinux 0x2684d8e7 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x269637e4 arp_broken_ops +EXPORT_SYMBOL vmlinux 0x269b69a6 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x26d6c0b6 mempool_create +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x2706b431 inet_bind +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +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 0x275949f7 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x277b90ff rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x2792c018 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x27a7332b fifo_set_limit +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c33efe csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x27c3d7e5 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic +EXPORT_SYMBOL vmlinux 0x27d5e3a7 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x2802e520 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x285599eb qdisc_reset +EXPORT_SYMBOL vmlinux 0x28599d80 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll +EXPORT_SYMBOL vmlinux 0x2864fe92 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x28693dcc mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x287660c7 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x288e3278 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x288e5c5f bio_split +EXPORT_SYMBOL vmlinux 0x289b5e35 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28eaf133 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x28faaafa wait_on_page_bit +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 0x295da123 __lookup_one_len +EXPORT_SYMBOL vmlinux 0x2993871c scsi_host_get +EXPORT_SYMBOL vmlinux 0x29a71db6 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x29b7f640 register_netdevice +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29ecb26f fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x29f4c6fe blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x2a2285ec _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x2a281a3f xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a49a20e file_update_time +EXPORT_SYMBOL vmlinux 0x2a57778f pci_find_capability +EXPORT_SYMBOL vmlinux 0x2a8716d0 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x2abbf17e bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x2accdaa4 pci_find_bus +EXPORT_SYMBOL vmlinux 0x2ad6ce00 lock_may_read +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b1c200c kick_iocb +EXPORT_SYMBOL vmlinux 0x2b200d96 vmap +EXPORT_SYMBOL vmlinux 0x2b2718f7 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x2b6214f0 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x2b8d592e xfrm_state_walk +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 0x2bbe91b8 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x2be3c340 journal_load +EXPORT_SYMBOL vmlinux 0x2bef4fdb dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c0fb478 hippi_change_mtu +EXPORT_SYMBOL vmlinux 0x2c353474 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x2c4031bb dev_driver_string +EXPORT_SYMBOL vmlinux 0x2c4ce4cf dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x2c606929 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x2c82294d dump_trace +EXPORT_SYMBOL vmlinux 0x2c86b261 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x2c8e060f page_follow_link_light +EXPORT_SYMBOL vmlinux 0x2cc92161 devm_free_irq +EXPORT_SYMBOL vmlinux 0x2ccf5c72 xfrm_input +EXPORT_SYMBOL vmlinux 0x2cd9d683 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d15f130 revalidate_disk +EXPORT_SYMBOL vmlinux 0x2d3b575f panic_notifier_list +EXPORT_SYMBOL vmlinux 0x2d5528c9 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x2d68b4b5 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2da2da17 block_prepare_write +EXPORT_SYMBOL vmlinux 0x2db3f09a inet_stream_ops +EXPORT_SYMBOL vmlinux 0x2db40640 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x2db80625 keyring_clear +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2de0792c tty_devnum +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2e06111d cpu_present_mask +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x2e5713ca dev_mc_flush +EXPORT_SYMBOL vmlinux 0x2e8886cd alloc_disk_node +EXPORT_SYMBOL vmlinux 0x2ea6ccd9 __nla_put +EXPORT_SYMBOL vmlinux 0x2ed23d7f generic_show_options +EXPORT_SYMBOL vmlinux 0x2ee0c6ca ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x2ef93579 skb_dequeue +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f26f76e dquot_enable +EXPORT_SYMBOL vmlinux 0x2f4bccf9 dm_table_event +EXPORT_SYMBOL vmlinux 0x2f88f53a blk_put_request +EXPORT_SYMBOL vmlinux 0x2f8afef5 vfs_readdir +EXPORT_SYMBOL vmlinux 0x2f8b8ae3 alloc_disk +EXPORT_SYMBOL vmlinux 0x2fa5a500 memcmp +EXPORT_SYMBOL vmlinux 0x2ff063b5 acpi_get_name +EXPORT_SYMBOL vmlinux 0x300cec22 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x3014edf8 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x305f3e19 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x30612cd3 get_user_pages +EXPORT_SYMBOL vmlinux 0x3062c349 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x306d4469 __inet6_hash +EXPORT_SYMBOL vmlinux 0x3083ebdd vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0x309305f2 unlock_rename +EXPORT_SYMBOL vmlinux 0x30bdffd4 uart_register_driver +EXPORT_SYMBOL vmlinux 0x30beeec5 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x30c7507e skb_copy_expand +EXPORT_SYMBOL vmlinux 0x30c75199 downgrade_write +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30e9ceba alloc_file +EXPORT_SYMBOL vmlinux 0x30efeef7 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x30fdf08d open_by_devnum +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 0x31a5a89b register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +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 0x3231e275 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x323b211b dev_uc_init +EXPORT_SYMBOL vmlinux 0x32450ef3 thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0x325f5066 qdisc_list_del +EXPORT_SYMBOL vmlinux 0x326616d2 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc +EXPORT_SYMBOL vmlinux 0x327dfef8 idr_replace +EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint +EXPORT_SYMBOL vmlinux 0x328dfbe1 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x3294b615 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x32d88c20 register_qdisc +EXPORT_SYMBOL vmlinux 0x334211db scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x335e6963 nf_log_register +EXPORT_SYMBOL vmlinux 0x336b7c86 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x336fdaab netif_carrier_off +EXPORT_SYMBOL vmlinux 0x33860a53 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x33923a8a locks_init_lock +EXPORT_SYMBOL vmlinux 0x33b7d76f agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33bde63b xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x33d9f0cc ip6_route_output +EXPORT_SYMBOL vmlinux 0x33e08aeb simple_link +EXPORT_SYMBOL vmlinux 0x33f8d41e dmam_pool_create +EXPORT_SYMBOL vmlinux 0x340a6cc1 compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0x3411142f tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x341eab27 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long +EXPORT_SYMBOL vmlinux 0x345d7ff1 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x346dea03 agp_flush_chipset +EXPORT_SYMBOL vmlinux 0x347968cc inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x347f937d tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34c41e61 __kfree_skb +EXPORT_SYMBOL vmlinux 0x352eafd4 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x353427c9 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x353ca2b3 acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x356a2049 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x3582ed17 vfs_stat +EXPORT_SYMBOL vmlinux 0x35888f4c tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x35aa7573 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x35b0650f vsnprintf +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35c31276 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x361a5a7f sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x361fd6fa fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x3634428f page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x3653e637 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x3658834e get_sb_ns +EXPORT_SYMBOL vmlinux 0x36745edd simple_setattr +EXPORT_SYMBOL vmlinux 0x3679f08d set_page_dirty +EXPORT_SYMBOL vmlinux 0x36843d67 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x36870c5e tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x368fa683 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x36a10e45 sk_reset_txq +EXPORT_SYMBOL vmlinux 0x36a5a7bc pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x36de98fb bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x3701a196 csum_partial_copy_to_user +EXPORT_SYMBOL vmlinux 0x372db1f6 seq_lseek +EXPORT_SYMBOL vmlinux 0x373b0ebf sock_i_uid +EXPORT_SYMBOL vmlinux 0x373bb944 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x37490142 blk_get_request +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 0x37b79e9b unregister_key_type +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37cc39d4 datagram_poll +EXPORT_SYMBOL vmlinux 0x37d907ac dqget +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37fb08bd tcf_hash_search +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x382ea3f8 vc_resize +EXPORT_SYMBOL vmlinux 0x3855c876 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x38604208 set_blocksize +EXPORT_SYMBOL vmlinux 0x38884dbe agp_put_bridge +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38c45022 journal_force_commit_nested +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 0x390db598 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x3911a3c3 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x3960428e follow_up +EXPORT_SYMBOL vmlinux 0x396ac4f2 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x397d7da8 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x398e147e genphy_config_advert +EXPORT_SYMBOL vmlinux 0x3995f0e1 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x399719e1 do_splice_from +EXPORT_SYMBOL vmlinux 0x39a73af0 eth_header_parse +EXPORT_SYMBOL vmlinux 0x39c24e5b i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x39edd4c2 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x3a05abe2 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a7173ac complete_all +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3ad5f178 names_cachep +EXPORT_SYMBOL vmlinux 0x3ae00ded kthread_create +EXPORT_SYMBOL vmlinux 0x3af48398 dget_locked +EXPORT_SYMBOL vmlinux 0x3af9cae9 idr_remove +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b39160e vm_map_ram +EXPORT_SYMBOL vmlinux 0x3b442bcc tty_port_close_end +EXPORT_SYMBOL vmlinux 0x3b4cd8fb input_release_device +EXPORT_SYMBOL vmlinux 0x3b649129 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x3b76b061 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x3bb3c3fb inet_frag_kill +EXPORT_SYMBOL vmlinux 0x3bbd4ace pnp_device_attach +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c7b2083 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cae0dad udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x3cb78da1 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x3cde6997 generic_file_open +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cf89d7f cpu_info +EXPORT_SYMBOL vmlinux 0x3d096979 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x3d2aafd1 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x3d573f5d abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x3d6713ec splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d822b24 writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x3d8728bb memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x3d9ee9f0 clear_page +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3da66717 tc_classify +EXPORT_SYMBOL vmlinux 0x3dafd62c sk_wait_data +EXPORT_SYMBOL vmlinux 0x3db2e258 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x3db8b01c tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x3dc7dbf7 page_put_link +EXPORT_SYMBOL vmlinux 0x3dc99b5a unlock_new_inode +EXPORT_SYMBOL vmlinux 0x3dcccca6 simple_write_end +EXPORT_SYMBOL vmlinux 0x3dcebf8d blk_complete_request +EXPORT_SYMBOL vmlinux 0x3df336ac dev_set_mtu +EXPORT_SYMBOL vmlinux 0x3df9c029 mnt_pin +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 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e464231 lookup_one_len +EXPORT_SYMBOL vmlinux 0x3e4826a5 devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x3e5851b6 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e8ce20f pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3eb131f6 file_permission +EXPORT_SYMBOL vmlinux 0x3ec60e8a input_set_keycode_big +EXPORT_SYMBOL vmlinux 0x3ecc3e16 x86_hyper +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ee79054 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x3efbbe81 sock_no_accept +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f2ff18f ppp_channel_index +EXPORT_SYMBOL vmlinux 0x3f3bc1c4 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f4ab3ff qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x3f5e7b61 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x3f622645 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x3f90b193 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x3fa913da strspn +EXPORT_SYMBOL vmlinux 0x3fc7627d inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x3fdef153 save_mount_options +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ff9df63 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x3ffff745 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x40195b71 tty_register_driver +EXPORT_SYMBOL vmlinux 0x40230d64 security_path_mknod +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x40627a95 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x40879284 tcp_v4_destroy_sock +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 0x40b07260 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40da98e3 __elv_add_request +EXPORT_SYMBOL vmlinux 0x40dfaa2d register_gifconf +EXPORT_SYMBOL vmlinux 0x40ecd4e4 pskb_copy +EXPORT_SYMBOL vmlinux 0x40f59ca8 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x410a4e39 kernel_bind +EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp +EXPORT_SYMBOL vmlinux 0x41408088 kobject_put +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4157da1f jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x41669741 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x417ca493 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x4184e77b phy_driver_register +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41c9a981 handle_sysrq +EXPORT_SYMBOL vmlinux 0x41d06715 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x41f1b43b i8253_lock +EXPORT_SYMBOL vmlinux 0x420a6ab8 up_write +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x424cd8dc neigh_lookup +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x426a9874 skb_checksum +EXPORT_SYMBOL vmlinux 0x427dbe87 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x428abd21 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +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 0x42cc8b6d dqput +EXPORT_SYMBOL vmlinux 0x43027acf blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43099626 pci_release_region +EXPORT_SYMBOL vmlinux 0x43176415 d_genocide +EXPORT_SYMBOL vmlinux 0x4318f6b8 compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0x43198857 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x432b5198 sb_min_blocksize +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 0x43742aa0 tty_mutex +EXPORT_SYMBOL vmlinux 0x43909ae1 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x43973fb0 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get +EXPORT_SYMBOL vmlinux 0x43be35f3 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x43d7cb76 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x43db0c08 llc_sap_close +EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg +EXPORT_SYMBOL vmlinux 0x44099c43 submit_bh +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x4455e565 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x44a81d5f acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44cf4255 module_layout +EXPORT_SYMBOL vmlinux 0x44e95d81 dev_get_stats +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x450337fa inetdev_by_index +EXPORT_SYMBOL vmlinux 0x4510aa17 agp_find_bridge +EXPORT_SYMBOL vmlinux 0x4511f6bd netlink_set_err +EXPORT_SYMBOL vmlinux 0x452cfc24 agp_enable +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 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 0x45a98958 __getblk +EXPORT_SYMBOL vmlinux 0x45a9cf2d do_sync_write +EXPORT_SYMBOL vmlinux 0x45be938e secpath_dup +EXPORT_SYMBOL vmlinux 0x45c3c0ce skb_find_text +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45dce379 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x46087e4a dquot_commit_info +EXPORT_SYMBOL vmlinux 0x464ce151 set_pages_array_wb +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x4670fd25 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x467b0f08 abx500_register_ops +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 0x46ddaff1 security_path_unlink +EXPORT_SYMBOL vmlinux 0x4709ad8d phy_enable_interrupts +EXPORT_SYMBOL vmlinux 0x47134d65 thaw_bdev +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 0x474d3711 scsi_execute_req +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 0x4799479c pci_dev_get +EXPORT_SYMBOL vmlinux 0x479bbb07 vfs_write +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 0x47eacec5 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x47eb658e unregister_netdev +EXPORT_SYMBOL vmlinux 0x480bd6bb kmem_cache_alloc_notrace +EXPORT_SYMBOL vmlinux 0x481267c7 tcp_v4_remember_stamp +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 0x4840fd7b aio_put_req +EXPORT_SYMBOL vmlinux 0x48563367 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x4867401a __breadahead +EXPORT_SYMBOL vmlinux 0x4871889a jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x48854d0a skb_seq_read +EXPORT_SYMBOL vmlinux 0x489a945c tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x48e493e8 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x4908b721 netpoll_send_skb +EXPORT_SYMBOL vmlinux 0x491caf83 napi_frags_finish +EXPORT_SYMBOL vmlinux 0x49255787 key_unlink +EXPORT_SYMBOL vmlinux 0x492ab060 follow_pfn +EXPORT_SYMBOL vmlinux 0x49375448 scsi_init_io +EXPORT_SYMBOL vmlinux 0x4937d9ec vfs_llseek +EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x494e3393 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x4961cd4b padata_start +EXPORT_SYMBOL vmlinux 0x4973a063 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x497db9e4 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x498d7883 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x498fd593 llc_sap_find +EXPORT_SYMBOL vmlinux 0x49a0de29 dev_remove_pack +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 0x4a221d49 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x4a224b0b blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a5199e5 slow_work_unregister_user +EXPORT_SYMBOL vmlinux 0x4a533982 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x4a7d467e genl_register_ops +EXPORT_SYMBOL vmlinux 0x4a87ea6e ll_rw_block +EXPORT_SYMBOL vmlinux 0x4a928944 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x4a970db8 kill_fasync +EXPORT_SYMBOL vmlinux 0x4aa43da2 kdb_current_task +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4ab14575 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4ace5a0f bdev_read_only +EXPORT_SYMBOL vmlinux 0x4ad4256c qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x4aed350d get_sb_bdev +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b02cd96 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b0a19df dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x4b19ecc0 do_sync_read +EXPORT_SYMBOL vmlinux 0x4b1cea4a nf_register_hooks +EXPORT_SYMBOL vmlinux 0x4b2dbd19 tty_throttle +EXPORT_SYMBOL vmlinux 0x4b2ff1db thermal_cooling_device_unregister +EXPORT_SYMBOL vmlinux 0x4b377278 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x4b77a400 sk_free +EXPORT_SYMBOL vmlinux 0x4b7e255d noop_llseek +EXPORT_SYMBOL vmlinux 0x4b8a447d cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x4ba20399 neigh_create +EXPORT_SYMBOL vmlinux 0x4ba82c4e dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c1c7562 agp_create_memory +EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp +EXPORT_SYMBOL vmlinux 0x4c4d53af unregister_quota_format +EXPORT_SYMBOL vmlinux 0x4c4fa9c0 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x4c4fef19 kernel_stack +EXPORT_SYMBOL vmlinux 0x4c774151 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x4c95e40f dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cd2c832 __netdev_alloc_page +EXPORT_SYMBOL vmlinux 0x4cdaea32 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x4ce97d5d blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x4cfb9b6b i2c_use_client +EXPORT_SYMBOL vmlinux 0x4d46d842 file_fsync +EXPORT_SYMBOL vmlinux 0x4d4ac6b3 fd_install +EXPORT_SYMBOL vmlinux 0x4d552e61 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x4d642c2e blk_peek_request +EXPORT_SYMBOL vmlinux 0x4d867c1d eth_type_trans +EXPORT_SYMBOL vmlinux 0x4d8970e1 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x4dbd0d47 skb_queue_head +EXPORT_SYMBOL vmlinux 0x4dc07553 generic_setlease +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dda110c generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x4dda726b match_strlcpy +EXPORT_SYMBOL vmlinux 0x4de470d0 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x4deab7bb find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e10c342 sock_rfree +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 0x4e8acbfd sock_create +EXPORT_SYMBOL vmlinux 0x4e99c48f cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x4ea88d1c bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x4ec3838a journal_force_commit +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4f197c52 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x4f1c9554 __scm_destroy +EXPORT_SYMBOL vmlinux 0x4f1caf92 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f29d68d unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x4f2ed17b sock_no_getname +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 0x4f8ac162 lro_flush_all +EXPORT_SYMBOL vmlinux 0x4f8b5ddb _copy_to_user +EXPORT_SYMBOL vmlinux 0x4fb59ecb make_bad_inode +EXPORT_SYMBOL vmlinux 0x4fc667a6 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x4fd46ff4 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x50166463 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x5039530a jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x503b8dea dquot_release +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x505873f4 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x5059faa4 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x50621198 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x5067085c dquot_quota_on +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x506e6f2f _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x507eead0 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x50843854 inet_accept +EXPORT_SYMBOL vmlinux 0x509d01eb kernel_sendpage +EXPORT_SYMBOL vmlinux 0x50b28115 inet_ioctl +EXPORT_SYMBOL vmlinux 0x50b84e5b ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5140ff84 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x5150c219 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x5151af26 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x5179c6eb mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL vmlinux 0x51c1d4e8 __free_pages +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e03d3a xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x520407ae bio_integrity_clone +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 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x5287b81c sk_filter +EXPORT_SYMBOL vmlinux 0x5294aaeb otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52b93bd3 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x52c3bd88 security_path_truncate +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +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 0x532eab0d dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x533e0ec0 kstat +EXPORT_SYMBOL vmlinux 0x53433183 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x5363976b skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x5391b813 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x53a02924 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x53a19541 freeze_super +EXPORT_SYMBOL vmlinux 0x53b25905 init_special_inode +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53d0fcdf bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x540085d9 elv_abort_queue +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x542ce6b7 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x54383fe2 generic_getxattr +EXPORT_SYMBOL vmlinux 0x543e9ed2 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x5446b03a inet_recvmsg +EXPORT_SYMBOL vmlinux 0x545de314 dput +EXPORT_SYMBOL vmlinux 0x546be192 journal_extend +EXPORT_SYMBOL vmlinux 0x547831ab i8042_install_filter +EXPORT_SYMBOL vmlinux 0x54832714 mutex_unlock +EXPORT_SYMBOL vmlinux 0x54a14eeb remove_inode_hash +EXPORT_SYMBOL vmlinux 0x54b0b628 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x54ca2cf0 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x54df40df tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x5514e1c2 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x551b508e scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x551c4578 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x554d14a9 invalidate_inodes +EXPORT_SYMBOL vmlinux 0x554f11a8 iput +EXPORT_SYMBOL vmlinux 0x5562d57d padata_do_serial +EXPORT_SYMBOL vmlinux 0x556cdf01 arp_create +EXPORT_SYMBOL vmlinux 0x5573e358 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x5594a724 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x559bd3d4 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x55a15bba rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0x55b8bc63 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x55bf6a56 pci_choose_state +EXPORT_SYMBOL vmlinux 0x55ccdd02 filemap_flush +EXPORT_SYMBOL vmlinux 0x55da0a0f xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x55dded25 mmc_align_data_size +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 0x560be487 give_up_console +EXPORT_SYMBOL vmlinux 0x56116d62 audit_log_start +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x56209471 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x56337ca3 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5638fea0 blk_remove_plug +EXPORT_SYMBOL vmlinux 0x563b7803 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x56432394 user_revoke +EXPORT_SYMBOL vmlinux 0x5643f5e5 bio_init +EXPORT_SYMBOL vmlinux 0x5658179e idr_get_new +EXPORT_SYMBOL vmlinux 0x56a03fe7 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x56b847b1 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56d57b8c dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x56d8e526 serio_rescan +EXPORT_SYMBOL vmlinux 0x56db3d06 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x56df5a59 mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0x56f494e0 smp_call_function +EXPORT_SYMBOL vmlinux 0x56fc650f mutex_lock +EXPORT_SYMBOL vmlinux 0x5717c55b mpage_writepage +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x573d2646 input_flush_device +EXPORT_SYMBOL vmlinux 0x574d3266 xfrm_policy_delete +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 0x578cd336 __bio_clone +EXPORT_SYMBOL vmlinux 0x578edd26 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x57937126 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x5794ee21 kill_litter_super +EXPORT_SYMBOL vmlinux 0x57b09822 up +EXPORT_SYMBOL vmlinux 0x57b31996 netif_rx +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57b85d36 sg_miter_next +EXPORT_SYMBOL vmlinux 0x57bb6a6a redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57dde3af kernel_accept +EXPORT_SYMBOL vmlinux 0x57ea3c8c dma_pool_create +EXPORT_SYMBOL vmlinux 0x5806d76c bdget +EXPORT_SYMBOL vmlinux 0x582c1af0 journal_init_inode +EXPORT_SYMBOL vmlinux 0x58336209 eth_header +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x58645b1c blkdev_put +EXPORT_SYMBOL vmlinux 0x58698615 lro_receive_skb +EXPORT_SYMBOL vmlinux 0x587c70d8 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x589699fb tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x58bc1d8c i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x58d979ea pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x58db1437 dw_spi_resume_host +EXPORT_SYMBOL vmlinux 0x58fd6e6c pci_pme_capable +EXPORT_SYMBOL vmlinux 0x592507a3 blkdev_fsync +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 0x5946dba4 task_nice +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59d13164 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59ddacc9 user_path_at +EXPORT_SYMBOL vmlinux 0x59f37e5e copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x5a016611 journal_forget +EXPORT_SYMBOL vmlinux 0x5a01bc28 __scm_send +EXPORT_SYMBOL vmlinux 0x5a0de549 jbd2_journal_get_create_access +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 0x5a663db5 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x5a66ecc3 inet6_getname +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a9cf284 md_write_end +EXPORT_SYMBOL vmlinux 0x5a9fa675 bio_free +EXPORT_SYMBOL vmlinux 0x5aaef4fc scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x5ab8dfd0 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x5ab9f1ba __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5ae8fc7d register_sysrq_key +EXPORT_SYMBOL vmlinux 0x5aef6658 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x5af53550 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x5b025235 bioset_create +EXPORT_SYMBOL vmlinux 0x5b0fccb9 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x5b4c6297 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b53bfcd napi_gro_frags +EXPORT_SYMBOL vmlinux 0x5b5a2a32 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x5b6183a7 default_llseek +EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x5b7a81fd clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x5b87038f nf_setsockopt +EXPORT_SYMBOL vmlinux 0x5b9883bd do_truncate +EXPORT_SYMBOL vmlinux 0x5c10ff0d __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x5c328565 simple_fill_super +EXPORT_SYMBOL vmlinux 0x5c3d1ce1 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x5c3efff9 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x5c435b73 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x5c46b681 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x5c5af7b5 pci_bus_type +EXPORT_SYMBOL vmlinux 0x5c740736 framebuffer_release +EXPORT_SYMBOL vmlinux 0x5c9a1629 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x5ca00072 compat_sock_get_timestampns +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 0x5cdda7c2 pci_dev_put +EXPORT_SYMBOL vmlinux 0x5cfacf82 napi_gro_receive +EXPORT_SYMBOL vmlinux 0x5cfc13c8 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x5d050f78 kill_anon_super +EXPORT_SYMBOL vmlinux 0x5d07cf8e lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0x5d113035 vm_stat +EXPORT_SYMBOL vmlinux 0x5d22ef65 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x5d2fa0e6 ip6_xmit +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +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 0x5dd991ba tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x5e09ca75 complete +EXPORT_SYMBOL vmlinux 0x5e11b29d lookup_hash +EXPORT_SYMBOL vmlinux 0x5e247cec vfs_mkdir +EXPORT_SYMBOL vmlinux 0x5e41d2c9 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x5e73b39d d_find_alias +EXPORT_SYMBOL vmlinux 0x5e88b40b security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e9c02f2 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5ee6c140 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x5ef6fccc sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x5f21ba5b _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x5f28f65b sock_create_kern +EXPORT_SYMBOL vmlinux 0x5f31edc5 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x5f6bfa49 nf_log_packet +EXPORT_SYMBOL vmlinux 0x5f6d93eb skb_make_writable +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fa6cd1b clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x5fbdbb3c uart_update_timeout +EXPORT_SYMBOL vmlinux 0x5fc2971b bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x5fd2298e strnstr +EXPORT_SYMBOL vmlinux 0x5fdf4a4b bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x5fec312b __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities +EXPORT_SYMBOL vmlinux 0x6003fbcd napi_skb_finish +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601a17a5 dqstats +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x6031643e skb_put +EXPORT_SYMBOL vmlinux 0x605c8bde radix_tree_delete +EXPORT_SYMBOL vmlinux 0x60795836 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x6090556c register_con_driver +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60d2f62c tty_register_device +EXPORT_SYMBOL vmlinux 0x60ddbbd5 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n +EXPORT_SYMBOL vmlinux 0x611485ff kill_block_super +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x612cbe21 key_type_keyring +EXPORT_SYMBOL vmlinux 0x61419f7d blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x61445330 seq_read +EXPORT_SYMBOL vmlinux 0x61470150 dquot_acquire +EXPORT_SYMBOL vmlinux 0x614a9529 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0x614b53b7 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x615a3dcb mod_timer +EXPORT_SYMBOL vmlinux 0x618911fc numa_node +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61da8a81 key_negate_and_link +EXPORT_SYMBOL vmlinux 0x61e904a4 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x61f46538 __register_chrdev +EXPORT_SYMBOL vmlinux 0x61f8d5b2 ppp_input_error +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x621a62c3 blk_unplug +EXPORT_SYMBOL vmlinux 0x6223cafb _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x622a7b94 simple_setsize +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x625dc2f0 fail_migrate_page +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 0x62afc8e9 lock_super +EXPORT_SYMBOL vmlinux 0x62c729a0 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x62ce4e6a kernel_listen +EXPORT_SYMBOL vmlinux 0x62d6bcb9 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x637849b1 security_file_mmap +EXPORT_SYMBOL vmlinux 0x63991214 jbd2_journal_get_write_access +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 0x642dc40b fsync_bdev +EXPORT_SYMBOL vmlinux 0x6443d74d _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x64441217 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x6449fd41 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x645aed0b arp_xmit +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 0x6491c137 f_setown +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x649bd10d phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x64b14fd2 seq_release_private +EXPORT_SYMBOL vmlinux 0x64c259e7 sock_map_fd +EXPORT_SYMBOL vmlinux 0x64e90ef0 del_timer +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x64f8b6fb mdiobus_register +EXPORT_SYMBOL vmlinux 0x65022a24 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x650affac nobh_writepage +EXPORT_SYMBOL vmlinux 0x650bcff5 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x6522228f nobh_write_end +EXPORT_SYMBOL vmlinux 0x653d55f6 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x657985bb security_d_instantiate +EXPORT_SYMBOL vmlinux 0x657a26fd xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x6596877d unlock_page +EXPORT_SYMBOL vmlinux 0x65b30c2c inet_frags_init +EXPORT_SYMBOL vmlinux 0x65c82f02 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x66059401 find_vma +EXPORT_SYMBOL vmlinux 0x6629ef8e max8925_set_bits +EXPORT_SYMBOL vmlinux 0x66466be9 get_io_context +EXPORT_SYMBOL vmlinux 0x66473160 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x6660d7b1 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66cedd97 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x66e071f5 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0x66eadd27 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x67057ecc udp_poll +EXPORT_SYMBOL vmlinux 0x670c0597 down_interruptible +EXPORT_SYMBOL vmlinux 0x672144bd strlcpy +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x6739a885 dev_txq_stats_fold +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x6743f447 mmc_host_enable +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 0x67b4cac3 sk_run_filter +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67bf8f81 remove_from_page_cache +EXPORT_SYMBOL vmlinux 0x67c85676 dquot_transfer +EXPORT_SYMBOL vmlinux 0x67e7ae56 elv_register_queue +EXPORT_SYMBOL vmlinux 0x680c730e i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x6819c9ad ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x682d0ac1 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x68344e86 netlink_unicast +EXPORT_SYMBOL vmlinux 0x6851a83b netlink_dump_start +EXPORT_SYMBOL vmlinux 0x685cf233 x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x6885df5e xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x68891aab unregister_cdrom +EXPORT_SYMBOL vmlinux 0x68f0e7dc generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0x691001b5 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +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 0x699737c4 page_readlink +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69a3601d blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x69a42838 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x69b2919d fsnotify_obtain_group +EXPORT_SYMBOL vmlinux 0x69c48f08 bdput +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 0x69ff9578 acpi_root_dir +EXPORT_SYMBOL vmlinux 0x6a027f5c __lock_page +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a0dccc7 dev_load +EXPORT_SYMBOL vmlinux 0x6a1131db unload_nls +EXPORT_SYMBOL vmlinux 0x6a168ea6 tty_write_room +EXPORT_SYMBOL vmlinux 0x6a23ca92 phy_detach +EXPORT_SYMBOL vmlinux 0x6a3ba975 idr_find +EXPORT_SYMBOL vmlinux 0x6a3cdb85 generic_listxattr +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a8d9563 fput +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 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6ae616c8 genphy_resume +EXPORT_SYMBOL vmlinux 0x6afb29ce sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x6afe0bd1 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x6b0d876c kset_register +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b21cf90 __nla_reserve +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 0x6b7c5b53 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x6b9795ca slow_work_register_user +EXPORT_SYMBOL vmlinux 0x6ba6248c d_instantiate +EXPORT_SYMBOL vmlinux 0x6bb12738 tty_port_open +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bc56c67 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6be00bc6 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x6bf79764 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x6bf84cf0 __page_cache_alloc +EXPORT_SYMBOL vmlinux 0x6bf8d133 down_trylock +EXPORT_SYMBOL vmlinux 0x6c0987f7 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x6c130bf6 skb_push +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 0x6c436bb3 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x6c49f983 bio_pair_release +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 0x6c7ae77c scsi_get_command +EXPORT_SYMBOL vmlinux 0x6cb57b03 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x6cbe7632 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x6cbfa047 bd_claim +EXPORT_SYMBOL vmlinux 0x6cd79558 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x6ce58142 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x6ce7ded2 __napi_schedule +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 0x6d3028d7 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x6d334118 __get_user_8 +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d534b51 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d70f3e0 load_nls +EXPORT_SYMBOL vmlinux 0x6d79d5e5 sock_update_classid +EXPORT_SYMBOL vmlinux 0x6d7b3c46 generic_writepages +EXPORT_SYMBOL vmlinux 0x6d889da3 tty_kref_put +EXPORT_SYMBOL vmlinux 0x6d8f9639 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x6d9a4e86 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x6da0c608 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x6dade432 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x6db3451c try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x6dc0def6 replace_mount_options +EXPORT_SYMBOL vmlinux 0x6de6bf83 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6dfffc31 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x6e212bff kill_pid +EXPORT_SYMBOL vmlinux 0x6e21b365 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x6e2c3b83 tcp_ioctl +EXPORT_SYMBOL vmlinux 0x6e38160b blk_stack_limits +EXPORT_SYMBOL vmlinux 0x6e69cb21 consume_skb +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e802324 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x6e8641a2 key_link +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6f21c55b skb_clone +EXPORT_SYMBOL vmlinux 0x6f32db3e tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x6f33fe4c dev_close +EXPORT_SYMBOL vmlinux 0x6f36242b gen_pool_create +EXPORT_SYMBOL vmlinux 0x6f3a35db unregister_con_driver +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f6d2961 keyring_search +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6faae914 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x6fc3686d jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fcf3f0e aio_complete +EXPORT_SYMBOL vmlinux 0x6fd4b809 dm_table_get +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x7045f7ed blkdev_issue_flush +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 0x70887357 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x708c8ade writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x708df7f1 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x7096725b freeze_bdev +EXPORT_SYMBOL vmlinux 0x70b3984c mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x70b8b9d8 vc_cons +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70e0969b dev_alloc_name +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 0x713575e5 d_path +EXPORT_SYMBOL vmlinux 0x714200aa pipe_lock +EXPORT_SYMBOL vmlinux 0x7156a875 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71721640 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71ad50aa iget_locked +EXPORT_SYMBOL vmlinux 0x71bb41e4 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x71c4b101 napi_reuse_skb +EXPORT_SYMBOL vmlinux 0x71f19f90 serio_open +EXPORT_SYMBOL vmlinux 0x71f6eb38 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x721c8ace pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x723f85b5 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x7240f212 vfs_getattr +EXPORT_SYMBOL vmlinux 0x7242e96d strnchr +EXPORT_SYMBOL vmlinux 0x724665ba input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x726fdb93 vga_get +EXPORT_SYMBOL vmlinux 0x72927451 __find_get_block +EXPORT_SYMBOL vmlinux 0x729c53c1 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x72a98fdb copy_user_generic_unrolled +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte +EXPORT_SYMBOL vmlinux 0x72ce0243 netdev_set_master +EXPORT_SYMBOL vmlinux 0x72e40846 tcp_prot +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x73252f64 seq_open_private +EXPORT_SYMBOL vmlinux 0x7334a278 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x733a1093 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x73437d02 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x737c1563 put_page +EXPORT_SYMBOL vmlinux 0x73872e5e _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x7389c9a8 acpi_bus_get_power +EXPORT_SYMBOL vmlinux 0x738dd132 padata_alloc +EXPORT_SYMBOL vmlinux 0x7395c16e scsi_put_command +EXPORT_SYMBOL vmlinux 0x739e1998 is_bad_inode +EXPORT_SYMBOL vmlinux 0x73a77add simple_transaction_release +EXPORT_SYMBOL vmlinux 0x73a8bb88 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x73b12bca default_file_splice_read +EXPORT_SYMBOL vmlinux 0x73f2b877 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x740b0a5a journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x742fe035 nla_append +EXPORT_SYMBOL vmlinux 0x743004a5 unlock_super +EXPORT_SYMBOL vmlinux 0x74425e02 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte +EXPORT_SYMBOL vmlinux 0x744e738f fddi_type_trans +EXPORT_SYMBOL vmlinux 0x745917a3 do_SAK +EXPORT_SYMBOL vmlinux 0x746272a0 set_security_override +EXPORT_SYMBOL vmlinux 0x7479a3ad inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x747a27ab __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x7482ec48 audit_log_end +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74ee4714 ppp_input +EXPORT_SYMBOL vmlinux 0x75155042 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x752f908a ip_route_input_common +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x7546c24b cfb_imageblit +EXPORT_SYMBOL vmlinux 0x754ab3d2 in6_dev_finish_destroy +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 0x757a269f get_sb_nodev +EXPORT_SYMBOL vmlinux 0x758b2464 sock_no_listen +EXPORT_SYMBOL vmlinux 0x75999375 security_path_rmdir +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75cc5893 security_path_chown +EXPORT_SYMBOL vmlinux 0x75ecee3a vm_insert_page +EXPORT_SYMBOL vmlinux 0x75fa266c scsi_unregister +EXPORT_SYMBOL vmlinux 0x75fbdefd acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760a8bc9 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x763c54ed pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x7650cdaf generic_fillattr +EXPORT_SYMBOL vmlinux 0x765f1703 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x766c5cd6 bdevname +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 0x76a3377b soft_cursor +EXPORT_SYMBOL vmlinux 0x76a400d9 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x76aad48c mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x76adc6e8 mntput_no_expire +EXPORT_SYMBOL vmlinux 0x76b88b17 write_inode_now +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76c07ad9 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x76c4ecf5 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x76c6494b set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d5ab9f scsi_remove_target +EXPORT_SYMBOL vmlinux 0x76f3f8a5 num_k8_northbridges +EXPORT_SYMBOL vmlinux 0x76fe3c6c d_invalidate +EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x775e4831 security_path_link +EXPORT_SYMBOL vmlinux 0x77a04379 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x77a6836e sock_wfree +EXPORT_SYMBOL vmlinux 0x77a71491 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x77ad8ec8 set_pages_array_wc +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77cecaac dquot_initialize +EXPORT_SYMBOL vmlinux 0x77cfff62 block_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77e660e1 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77f53abc acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x781ea1ce phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x782acba5 crc_t10dif +EXPORT_SYMBOL vmlinux 0x782ce6eb filemap_fault +EXPORT_SYMBOL vmlinux 0x782e80df acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x783aa21a llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x784c3e00 write_cache_pages +EXPORT_SYMBOL vmlinux 0x784e1806 blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0x785a962e rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x7866e78f uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x78764f4e pv_irq_ops +EXPORT_SYMBOL vmlinux 0x78800dd2 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0x78804983 cdev_init +EXPORT_SYMBOL vmlinux 0x78808fa5 sk_common_release +EXPORT_SYMBOL vmlinux 0x78961aa0 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x789ea6dd generic_write_sync +EXPORT_SYMBOL vmlinux 0x78ba1f5a del_gendisk +EXPORT_SYMBOL vmlinux 0x78bf84e5 dm_register_target +EXPORT_SYMBOL vmlinux 0x78dc6b04 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x78de23ac xfrm_register_km +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x79047808 compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x7910b47e simple_transaction_get +EXPORT_SYMBOL vmlinux 0x7947cd55 pci_get_device +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 0x79816d76 scsi_register +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79e0434e remap_pfn_range +EXPORT_SYMBOL vmlinux 0x7a03f9e8 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol +EXPORT_SYMBOL vmlinux 0x7a36f856 sock_init_data +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a706a1e skb_copy_bits +EXPORT_SYMBOL vmlinux 0x7a82ff34 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x7aa7bd38 pnp_is_active +EXPORT_SYMBOL vmlinux 0x7abc267b abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x7ac00fd7 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip +EXPORT_SYMBOL vmlinux 0x7ae73de1 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7aedc1ea tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x7aee92f0 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7b167ce8 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x7b3e32ba pci_restore_state +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b555e2c agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x7b684e23 __bread +EXPORT_SYMBOL vmlinux 0x7b68b23f jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x7b69a966 d_rehash +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 0x7baaf310 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x7bc795bb ip_dev_find +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7be70818 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x7bf17115 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x7bf74c55 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x7c00103f bio_sector_offset +EXPORT_SYMBOL vmlinux 0x7c040eaa inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x7c21e8a1 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x7c3845ba inet_select_addr +EXPORT_SYMBOL vmlinux 0x7c41adad bdi_destroy +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c5f5d62 scsi_print_command +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c7838da sync_inode +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 0x7cd81101 xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x7d087c75 pci_write_vpd +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d15c226 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x7d286360 block_page_mkwrite +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 0x7dae012b sk_stop_timer +EXPORT_SYMBOL vmlinux 0x7dba0471 dev_mc_init +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7dd490d3 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x7dd554fc unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x7dd9f304 skb_tx_hash +EXPORT_SYMBOL vmlinux 0x7dfa5b28 simple_readpage +EXPORT_SYMBOL vmlinux 0x7dfcbb93 __page_symlink +EXPORT_SYMBOL vmlinux 0x7e00d6d3 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x7e2e8a24 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x7e311ad1 backlight_force_update +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e49e7a4 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x7e7d9500 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7eb8a455 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x7eba6564 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy +EXPORT_SYMBOL vmlinux 0x7ee160eb jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x7ee2f02d nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x7eebdeee posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x7ef7d2ca blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x7f01fdc2 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x7f114141 complete_and_exit +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f40c76d alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x7f4bfc16 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x7f5d4c35 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x7f5ee63d ether_setup +EXPORT_SYMBOL vmlinux 0x7f647f4d security_path_mkdir +EXPORT_SYMBOL vmlinux 0x7f74d8b8 genphy_update_link +EXPORT_SYMBOL vmlinux 0x7f75194e simple_rmdir +EXPORT_SYMBOL vmlinux 0x7f75b9de fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x7f7c4968 md_error +EXPORT_SYMBOL vmlinux 0x7f7f893b compat_mc_getsockopt +EXPORT_SYMBOL vmlinux 0x7f9b7e8e __devm_request_region +EXPORT_SYMBOL vmlinux 0x7fb04167 journal_update_format +EXPORT_SYMBOL vmlinux 0x7fbde41b bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x7fbf62c2 force_sig +EXPORT_SYMBOL vmlinux 0x8006641d md_register_thread +EXPORT_SYMBOL vmlinux 0x8012c1e1 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x80177dde iunique +EXPORT_SYMBOL vmlinux 0x8055f5d2 rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0x80627b91 napi_complete +EXPORT_SYMBOL vmlinux 0x8066b0ec dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x80891d5b blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x809ebada security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x80a891b7 cdev_index +EXPORT_SYMBOL vmlinux 0x80aec810 uart_resume_port +EXPORT_SYMBOL vmlinux 0x80d5e41d pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x80f94724 get_phy_device +EXPORT_SYMBOL vmlinux 0x811d8be0 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x814ea4e4 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x81505a59 inode_init_once +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x81701874 have_submounts +EXPORT_SYMBOL vmlinux 0x8191ae58 phy_attach +EXPORT_SYMBOL vmlinux 0x8194dc31 serial8250_register_port +EXPORT_SYMBOL vmlinux 0x81a7578d sock_release +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81d5ee34 ip_fragment +EXPORT_SYMBOL vmlinux 0x81d8cfee dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x81fe1266 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x81ff75cd inet_dev_addr_type +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 0x822e8961 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x82364c66 mpage_readpage +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x82529367 seq_printf +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x82782eef path_put +EXPORT_SYMBOL vmlinux 0x8279e76a unregister_qdisc +EXPORT_SYMBOL vmlinux 0x828cecd5 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x82a1e5d5 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82b4f46b jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x82e2021f __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x82ec4493 dev_alloc_skb +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 0x831d9ba1 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x83372a23 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x83636ee3 wait_for_completion +EXPORT_SYMBOL vmlinux 0x836ed5dd generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x837443c7 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x837b3b97 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x837f1aa9 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x83878da3 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83a73444 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x83ae46cd sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x83aece17 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x83eb26ea hippi_mac_addr +EXPORT_SYMBOL vmlinux 0x84246634 scsi_free_command +EXPORT_SYMBOL vmlinux 0x844c5506 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x845e7bdc ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x84844807 phy_disable_interrupts +EXPORT_SYMBOL vmlinux 0x849cc193 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x84a3930c clocksource_unregister +EXPORT_SYMBOL vmlinux 0x84caf949 bdi_unregister +EXPORT_SYMBOL vmlinux 0x84d61413 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x84e0e2c2 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x84f2eb5d i2c_release_client +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x856dab93 set_current_groups +EXPORT_SYMBOL vmlinux 0x85827517 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x859ad9e1 journal_init_dev +EXPORT_SYMBOL vmlinux 0x85abc85f strncmp +EXPORT_SYMBOL vmlinux 0x85b608e7 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x860a11cd agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x860ebcab find_lock_page +EXPORT_SYMBOL vmlinux 0x862e3737 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x8631f188 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x864ec13e mmc_add_host +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x866754d5 slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x866ada38 hippi_type_trans +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86c7146d vfs_fstat +EXPORT_SYMBOL vmlinux 0x86cc6ef3 pci_map_rom +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 0x87687893 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x876d9b69 mdiobus_free +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x87728909 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87a45ee9 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87ac3bf3 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x87b0aac7 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x87d30f9c __neigh_event_send +EXPORT_SYMBOL vmlinux 0x87d7aaeb pci_remove_bus +EXPORT_SYMBOL vmlinux 0x87f150ed i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x881cd49e jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0x8838c333 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x8860b310 simple_empty +EXPORT_SYMBOL vmlinux 0x886c8557 misc_deregister +EXPORT_SYMBOL vmlinux 0x8871d735 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x88941a06 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x88b85fc9 tty_unthrottle +EXPORT_SYMBOL vmlinux 0x88c89905 find_or_create_page +EXPORT_SYMBOL vmlinux 0x88f898a6 input_get_keycode +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x892c730e page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x89386484 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x897ca7ba load_nls_default +EXPORT_SYMBOL vmlinux 0x89aacf6b netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x89b841e0 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x89bdef83 register_exec_domain +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 0x89fed334 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x8a01259a dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x8a25c47f tcp_make_synack +EXPORT_SYMBOL vmlinux 0x8a3a3346 migrate_page +EXPORT_SYMBOL vmlinux 0x8a6cc07d dquot_alloc +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a906692 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x8a9723a6 netdev_bonding_change +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 0x8ad0d6ec vfs_statfs +EXPORT_SYMBOL vmlinux 0x8add6d90 flush_signals +EXPORT_SYMBOL vmlinux 0x8b0df1b4 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x8b10c2f2 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b3fcf47 vfs_mknod +EXPORT_SYMBOL vmlinux 0x8b43a7d8 skb_pull +EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b605bea init_buffer +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup +EXPORT_SYMBOL vmlinux 0x8b913863 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x8b922c0f __strnlen_user +EXPORT_SYMBOL vmlinux 0x8b9566ee __destroy_inode +EXPORT_SYMBOL vmlinux 0x8b95a171 tcf_hash_create +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 0x8bc844d9 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x8bc98c31 search_binary_handler +EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long +EXPORT_SYMBOL vmlinux 0x8bdb80fa init_net +EXPORT_SYMBOL vmlinux 0x8be0ee2b netif_napi_del +EXPORT_SYMBOL vmlinux 0x8be95937 dev_add_pack +EXPORT_SYMBOL vmlinux 0x8bf69403 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c22e3d4 padata_free +EXPORT_SYMBOL vmlinux 0x8c5483b0 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x8c55139d pci_set_master +EXPORT_SYMBOL vmlinux 0x8c658c41 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x8c66c8f3 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x8c75e300 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x8ca46b71 pci_iomap +EXPORT_SYMBOL vmlinux 0x8ca84ac5 scsi_add_device +EXPORT_SYMBOL vmlinux 0x8cbb42e7 gen_pool_add +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cce1ba3 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x8cdd0549 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x8cfb9394 dm_table_get_size +EXPORT_SYMBOL vmlinux 0x8d42762d tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x8d4dcdc9 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d7ba4f3 journal_flush +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8d9f5cfe pci_select_bars +EXPORT_SYMBOL vmlinux 0x8db8df56 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x8dbac33d tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x8dc17226 d_lookup +EXPORT_SYMBOL vmlinux 0x8dcd9b5a agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x8dceac0f may_umount_tree +EXPORT_SYMBOL vmlinux 0x8dd80ef6 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x8ddfdb73 generic_make_request +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e14f05e vga_put +EXPORT_SYMBOL vmlinux 0x8e3c91ce compat_ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk +EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq +EXPORT_SYMBOL vmlinux 0x8e7b28f0 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x8e8040fd lease_modify +EXPORT_SYMBOL vmlinux 0x8e970f03 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8eb92222 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x8ece18a1 arp_tbl +EXPORT_SYMBOL vmlinux 0x8ee52522 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8f05ee7d sock_no_poll +EXPORT_SYMBOL vmlinux 0x8f0a0ef6 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x8f1703a5 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x8f2371ba percpu_counter_destroy +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 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f67cfce jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f7d33cc blk_rq_init +EXPORT_SYMBOL vmlinux 0x8f849406 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fa768f4 kthread_stop +EXPORT_SYMBOL vmlinux 0x8fb5d2d2 tcp_check_req +EXPORT_SYMBOL vmlinux 0x8fc1fb10 current_fs_time +EXPORT_SYMBOL vmlinux 0x8fc94bb0 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x8fdebe41 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x8fdee367 may_umount +EXPORT_SYMBOL vmlinux 0x8ff9c8b1 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x9021b097 del_timer_sync +EXPORT_SYMBOL vmlinux 0x903dd5aa __brelse +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x904d25ae journal_set_features +EXPORT_SYMBOL vmlinux 0x904f7cda dev_gro_receive +EXPORT_SYMBOL vmlinux 0x907ec5c7 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x908bc0bc hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0x908e0c06 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system +EXPORT_SYMBOL vmlinux 0x90a552a8 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active +EXPORT_SYMBOL vmlinux 0x90be12e7 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x90ce13a8 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x90f2d4dc tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x9105842f phy_connect +EXPORT_SYMBOL vmlinux 0x9111f785 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x9129503d thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0x91443a30 bio_integrity_free +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x914fd177 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x91670ad3 dm_io_client_create +EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong +EXPORT_SYMBOL vmlinux 0x917909bb tcp_parse_options +EXPORT_SYMBOL vmlinux 0x9180411c idr_destroy +EXPORT_SYMBOL vmlinux 0x91abd92a vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x91d2b6a5 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x91d7ac56 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x91e3b101 scsi_print_result +EXPORT_SYMBOL vmlinux 0x92130492 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool +EXPORT_SYMBOL vmlinux 0x922e168e tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x92392cd9 iov_shorten +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x9244689d pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x924ee1e5 key_put +EXPORT_SYMBOL vmlinux 0x926e1ff6 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x927078fc seq_open +EXPORT_SYMBOL vmlinux 0x92cce7d1 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x93439c8f generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x934c7eec pcim_pin_device +EXPORT_SYMBOL vmlinux 0x9369aebd input_open_device +EXPORT_SYMBOL vmlinux 0x937ef5f8 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x938c37fc security_path_chmod +EXPORT_SYMBOL vmlinux 0x938ca17d rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x938dce33 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93ad45a5 gen_pool_free +EXPORT_SYMBOL vmlinux 0x93c1df26 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x93c5f16b pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93f21199 nf_afinfo +EXPORT_SYMBOL vmlinux 0x93f3e52b acpi_extract_package +EXPORT_SYMBOL vmlinux 0x93f83d5c __blk_end_request +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x9411da22 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x94292fa2 textsearch_register +EXPORT_SYMBOL vmlinux 0x9436ae57 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x943aeca9 journal_ack_err +EXPORT_SYMBOL vmlinux 0x9492b386 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +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 0x94cb1e50 inode_init_always +EXPORT_SYMBOL vmlinux 0x94d1452a sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +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 0x9546cf2c d_alloc +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 0x956bafef tty_port_put +EXPORT_SYMBOL vmlinux 0x9573a8c1 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x9585c63f scsi_scan_target +EXPORT_SYMBOL vmlinux 0x95c87772 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x95ceb864 key_update +EXPORT_SYMBOL vmlinux 0x95d27b1d i2c_master_recv +EXPORT_SYMBOL vmlinux 0x9616a5a9 mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x961d04ac nla_put +EXPORT_SYMBOL vmlinux 0x961ffa45 agp_copy_info +EXPORT_SYMBOL vmlinux 0x964954f2 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x9664c267 agp_generic_enable +EXPORT_SYMBOL vmlinux 0x9695db88 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x969b83f4 generic_readlink +EXPORT_SYMBOL vmlinux 0x96a2d0c3 get_fs_type +EXPORT_SYMBOL vmlinux 0x96b97e26 vfs_fsync +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96e2e370 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n +EXPORT_SYMBOL vmlinux 0x972d9bfd jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x97943b07 acpi_device_hid +EXPORT_SYMBOL vmlinux 0x97a58c57 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x97b5e263 netlink_ack +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97f92ce6 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x9804a6ee phy_attach_direct +EXPORT_SYMBOL vmlinux 0x98093e76 idr_get_next +EXPORT_SYMBOL vmlinux 0x981bba2a free_task +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x988b6123 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init +EXPORT_SYMBOL vmlinux 0x98b6667e tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x98d47d46 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x98d85698 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x99274a14 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x993984f0 deactivate_super +EXPORT_SYMBOL vmlinux 0x993c779a fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x9946a68c mark_page_accessed +EXPORT_SYMBOL vmlinux 0x9947c532 blkdev_get +EXPORT_SYMBOL vmlinux 0x99634cd6 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x99799f1e blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x997bb5f5 poll_initwait +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999a05db scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99a8a1fb skb_pad +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 0x9a05838e free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a2b9b47 compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x9aabc564 crc16 +EXPORT_SYMBOL vmlinux 0x9aad1624 vfs_follow_link +EXPORT_SYMBOL vmlinux 0x9aaead9c tty_name +EXPORT_SYMBOL vmlinux 0x9ad5376e rtnl_notify +EXPORT_SYMBOL vmlinux 0x9ad83536 inode_setattr +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b5a31e0 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x9b82fb54 agp_free_memory +EXPORT_SYMBOL vmlinux 0x9ba19327 copy_io_context +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bc7478c input_set_keycode +EXPORT_SYMBOL vmlinux 0x9bf450df __register_binfmt +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan +EXPORT_SYMBOL vmlinux 0x9c1f2fe6 set_groups +EXPORT_SYMBOL vmlinux 0x9c34e116 put_disk +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c4a48c5 bd_set_size +EXPORT_SYMBOL vmlinux 0x9ca95a0e sort +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cc5be2b cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x9cced061 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x9cd550af scsi_mode_sense +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 0x9d253c38 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x9d28621d do_splice_to +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d390b3f journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d4523c6 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x9d495a30 destroy_EII_client +EXPORT_SYMBOL vmlinux 0x9d524347 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x9d5f1905 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x9d68db4c skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x9d9fe7f0 journal_restart +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 0x9df31311 bioset_free +EXPORT_SYMBOL vmlinux 0x9df7b550 flush_old_exec +EXPORT_SYMBOL vmlinux 0x9e07968c dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x9e551d60 journal_check_available_features +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e755b3c xfrm_state_insert +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 0x9ec58eb8 vfs_rename +EXPORT_SYMBOL vmlinux 0x9ecafe10 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x9ecb4e66 netif_device_attach +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 0x9f2d613e param_set_bool +EXPORT_SYMBOL vmlinux 0x9f405e61 bdget_disk +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f6e19ab mem_section +EXPORT_SYMBOL vmlinux 0x9f92efc4 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f9fac4b dm_table_get_md +EXPORT_SYMBOL vmlinux 0x9fbf984f xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x9fd8e6bd tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe6eba1 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x9ff19a35 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x9ffed2d9 simple_getattr +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 0xa066fcee mmc_remove_host +EXPORT_SYMBOL vmlinux 0xa068eead swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0xa06f6747 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xa08563fe vfs_read +EXPORT_SYMBOL vmlinux 0xa0a2a5be inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xa0a41a27 rtc_lock +EXPORT_SYMBOL vmlinux 0xa0ae432b proc_dointvec +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0c8469c posix_test_lock +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 0xa0d816aa sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0fbcbf7 scsi_eh_finish_cmd +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 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa1228bf0 inet6_release +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa154f7e7 acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0xa172f91d udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xa1805725 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xa182beb6 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xa1a78823 down_read_trylock +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba4b95 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa1c3f0ad tcp_v4_send_check +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 0xa1dd4b07 compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa21197c4 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xa2391d9a acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0xa25dc825 dev_open +EXPORT_SYMBOL vmlinux 0xa2a19d2e __invalidate_device +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2d6ed8f scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa32870ab dst_destroy +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 0xa3951ed1 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0xa3a5be95 memmove +EXPORT_SYMBOL vmlinux 0xa3fbd575 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0xa42ff6a9 alloc_pages_current +EXPORT_SYMBOL vmlinux 0xa43025f7 insert_inode_locked +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa44bcecd neigh_destroy +EXPORT_SYMBOL vmlinux 0xa459dab4 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xa4631584 i2c_register_driver +EXPORT_SYMBOL vmlinux 0xa476141a posix_acl_permission +EXPORT_SYMBOL vmlinux 0xa47fb533 unregister_nls +EXPORT_SYMBOL vmlinux 0xa48a8c62 set_bh_page +EXPORT_SYMBOL vmlinux 0xa4a63746 udp_ioctl +EXPORT_SYMBOL vmlinux 0xa4b3112a ftrace_event_seq +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4e3dc58 neigh_table_clear +EXPORT_SYMBOL vmlinux 0xa4f51946 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0xa4fbfc9a get_gendisk +EXPORT_SYMBOL vmlinux 0xa5174dfe udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xa52261c6 fb_validate_mode +EXPORT_SYMBOL vmlinux 0xa52603e5 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0xa54ae9ef kill_pgrp +EXPORT_SYMBOL vmlinux 0xa559ddb0 sock_no_bind +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa586393e read_cache_page +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5a52db1 tty_shutdown +EXPORT_SYMBOL vmlinux 0xa5e787c0 napi_frags_skb +EXPORT_SYMBOL vmlinux 0xa603e668 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0xa62a9372 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa66e5c5e generic_permission +EXPORT_SYMBOL vmlinux 0xa66e7735 brioctl_set +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa69108b1 cont_write_begin +EXPORT_SYMBOL vmlinux 0xa6a04581 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0xa6cdadec unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa7027f71 bio_unmap_user +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes +EXPORT_SYMBOL vmlinux 0xa76ae374 cap_file_mmap +EXPORT_SYMBOL vmlinux 0xa7cf5f63 ppp_register_channel +EXPORT_SYMBOL vmlinux 0xa80e2742 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xa816c525 schedule_work_on +EXPORT_SYMBOL vmlinux 0xa8521eda alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xa85fb072 ab3100_event_register +EXPORT_SYMBOL vmlinux 0xa8796b23 blk_run_queue +EXPORT_SYMBOL vmlinux 0xa886a958 krealloc +EXPORT_SYMBOL vmlinux 0xa89eec5e vfs_writev +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 0xa8d9ad4a __scsi_put_command +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa960cad6 ip_setsockopt +EXPORT_SYMBOL vmlinux 0xa972f84f set_bdi_congested +EXPORT_SYMBOL vmlinux 0xa9816a93 kmem_cache_size +EXPORT_SYMBOL vmlinux 0xa98def5e ip_defrag +EXPORT_SYMBOL vmlinux 0xa9a45b44 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0xa9bc4c86 mempool_resize +EXPORT_SYMBOL vmlinux 0xa9bd2676 __vmalloc +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 0xaa3aa099 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0xaa4b0820 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaa94dd7e __rta_fill +EXPORT_SYMBOL vmlinux 0xaab9a307 security_path_symlink +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xaaf5229c udp_prot +EXPORT_SYMBOL vmlinux 0xaaf9f7a7 ps2_init +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab0cadd1 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab6fafb1 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xab7a4622 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xab8d5f1e __lru_cache_add +EXPORT_SYMBOL vmlinux 0xaba259f1 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xaba6e6f9 release_sock +EXPORT_SYMBOL vmlinux 0xabbde082 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabd58d41 bio_map_kern +EXPORT_SYMBOL vmlinux 0xabd7fd91 acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0xabdfb8d9 mmc_register_driver +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac14bb42 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xac233826 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xac3654a0 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xac383451 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xac3898ba ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xac4d7154 journal_start_commit +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac763b3f fsnotify_find_mark_entry +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 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad206de7 bdi_register_dev +EXPORT_SYMBOL vmlinux 0xad25fb12 __memcpy +EXPORT_SYMBOL vmlinux 0xad3da71d pci_get_slot +EXPORT_SYMBOL vmlinux 0xad408390 block_write_begin +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad4dafb4 read_cache_page_async +EXPORT_SYMBOL vmlinux 0xad689f4a lro_flush_pkt +EXPORT_SYMBOL vmlinux 0xad736537 inet_register_protosw +EXPORT_SYMBOL vmlinux 0xada996d7 arp_find +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadc1ee40 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xadef26b3 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xadf3c537 sock_create_lite +EXPORT_SYMBOL vmlinux 0xae20ade3 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0xae2e9f20 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xae324b50 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xae57dadf scsi_device_lookup +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 0xaeb2ec8d tcp4_gro_complete +EXPORT_SYMBOL vmlinux 0xaebac95a inet_getname +EXPORT_SYMBOL vmlinux 0xaec60597 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xaecb18c3 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0xaef61bae netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xaefcacd7 nonseekable_open +EXPORT_SYMBOL vmlinux 0xaf04f684 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xaf3bb212 try_to_release_page +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf480e5a invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0xaf51547a clocksource_register +EXPORT_SYMBOL vmlinux 0xaf72b8bd __bforget +EXPORT_SYMBOL vmlinux 0xaf889526 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xaf8a9b06 bdi_init +EXPORT_SYMBOL vmlinux 0xaf9cdc10 d_splice_alias +EXPORT_SYMBOL vmlinux 0xafb543dd security_task_getsecid +EXPORT_SYMBOL vmlinux 0xafb8c6ff copy_user_generic_string +EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn +EXPORT_SYMBOL vmlinux 0xb00ccc33 finish_wait +EXPORT_SYMBOL vmlinux 0xb0497d16 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xb04ea8f0 agp_rebind_memory +EXPORT_SYMBOL vmlinux 0xb05436e1 proc_symlink +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 0xb089da7e jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0xb0ab84ff i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0cb4fdc pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xb0e007e1 dquot_operations +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0f5e7f2 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xb10ec686 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +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 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1d25d98 splice_from_pipe_feed +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 0xb242e03e ndisc_mc_map +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb284aa4c ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xb29332f9 neigh_for_each +EXPORT_SYMBOL vmlinux 0xb2c36e10 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xb2dcba7e inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xb2e55898 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xb2f7468d ida_get_new +EXPORT_SYMBOL vmlinux 0xb2fd3a32 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb32658e6 set_pages_wb +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb358692b unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xb373229d __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xb37adb9e pcim_iounmap +EXPORT_SYMBOL vmlinux 0xb39de8f5 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3c357e3 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0xb3e207a1 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xb3f3bdac blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xb3ff1f69 free_pages_exact +EXPORT_SYMBOL vmlinux 0xb40e6e65 seq_bitmap +EXPORT_SYMBOL vmlinux 0xb4105d36 new_inode +EXPORT_SYMBOL vmlinux 0xb41e3b8c lro_receive_frags +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb426c331 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xb429978e pci_unregister_driver +EXPORT_SYMBOL vmlinux 0xb432e2f7 input_inject_event +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb444b422 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0xb44835a2 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xb45b13b4 bitmap_unplug +EXPORT_SYMBOL vmlinux 0xb45b24f6 k8_nb_ids +EXPORT_SYMBOL vmlinux 0xb45e772f neigh_seq_stop +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4a867a2 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xb4aa1881 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0xb4c865a7 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xb4c99e37 dev_addr_add +EXPORT_SYMBOL vmlinux 0xb4d8c8d3 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +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 0xb5546519 sk_release_kernel +EXPORT_SYMBOL vmlinux 0xb55a6bd7 should_remove_suid +EXPORT_SYMBOL vmlinux 0xb55bfe70 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xb56f1b5e vfs_rmdir +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5a70999 bio_endio +EXPORT_SYMBOL vmlinux 0xb5b4315b register_quota_format +EXPORT_SYMBOL vmlinux 0xb5b6c050 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xb5bc0c37 security_file_permission +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5d0876c __break_lease +EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction +EXPORT_SYMBOL vmlinux 0xb5f28b5f __any_online_cpu +EXPORT_SYMBOL vmlinux 0xb5fc49e0 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0xb60eb1f8 __napi_complete +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb65d9bb9 sget +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb67e4159 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6bd488d blk_init_tags +EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6cbe886 acpi_get_node +EXPORT_SYMBOL vmlinux 0xb6d5a5bf dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xb6ee24f4 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xb6f6de2f cad_pid +EXPORT_SYMBOL vmlinux 0xb7029dfe dm_dirty_log_type_unregister +EXPORT_SYMBOL vmlinux 0xb711ddf3 phy_register_fixup +EXPORT_SYMBOL vmlinux 0xb7512b5a generic_setattr +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb7596bb2 i2c_master_send +EXPORT_SYMBOL vmlinux 0xb76fd964 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xb77bd6be I_BDEV +EXPORT_SYMBOL vmlinux 0xb77fcbec input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0xb7927cb0 km_state_notify +EXPORT_SYMBOL vmlinux 0xb7adf2c9 devm_iounmap +EXPORT_SYMBOL vmlinux 0xb7becdb3 proc_dostring +EXPORT_SYMBOL vmlinux 0xb7c07fd2 ip6_frag_match +EXPORT_SYMBOL vmlinux 0xb7cbcc4f vmtruncate +EXPORT_SYMBOL vmlinux 0xb80395aa generic_block_bmap +EXPORT_SYMBOL vmlinux 0xb803ea33 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0xb812187d devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xb81d3490 do_munmap +EXPORT_SYMBOL vmlinux 0xb84b7355 pneigh_lookup +EXPORT_SYMBOL vmlinux 0xb854e584 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xb85f3bbe pv_lock_ops +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb8708596 path_get +EXPORT_SYMBOL vmlinux 0xb87336f2 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xb8748896 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0xb8928d94 netif_device_detach +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb89e62ec remove_wait_queue +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb92da4dd phy_stop +EXPORT_SYMBOL vmlinux 0xb956eff5 lookup_bdev +EXPORT_SYMBOL vmlinux 0xb97d4928 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xb97e789c fb_pan_display +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb9a72708 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xb9b73274 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xb9bc3725 ppp_unit_number +EXPORT_SYMBOL vmlinux 0xb9d4782e skb_copy +EXPORT_SYMBOL vmlinux 0xb9d77d07 pci_save_state +EXPORT_SYMBOL vmlinux 0xb9e0e292 sock_wmalloc +EXPORT_SYMBOL vmlinux 0xb9ee4b5f down_killable +EXPORT_SYMBOL vmlinux 0xb9fc29e2 thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba3759c2 udp_flush_pending_frames +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 0xbaa05037 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup +EXPORT_SYMBOL vmlinux 0xbaa5906a proto_unregister +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbac42042 journal_get_create_access +EXPORT_SYMBOL vmlinux 0xbad7d2da interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xbad88c3a nobh_write_begin +EXPORT_SYMBOL vmlinux 0xbafe281e blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xbb129a30 send_sig_info +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb21de0e elv_rb_del +EXPORT_SYMBOL vmlinux 0xbb2d7e57 sock_sendmsg +EXPORT_SYMBOL vmlinux 0xbb3e688e fb_blank +EXPORT_SYMBOL vmlinux 0xbb40869d pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb61c1db dst_release +EXPORT_SYMBOL vmlinux 0xbb677ff0 tcp_child_process +EXPORT_SYMBOL vmlinux 0xbb741ed6 override_creds +EXPORT_SYMBOL vmlinux 0xbb925ef0 unbind_con_driver +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba18688 scsi_device_get +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbdb55f0 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0xbbf9dfb2 journal_destroy +EXPORT_SYMBOL vmlinux 0xbbfe70dc scsi_target_resume +EXPORT_SYMBOL vmlinux 0xbc0c9261 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc265b65 tty_port_init +EXPORT_SYMBOL vmlinux 0xbc27eea8 udp_table +EXPORT_SYMBOL vmlinux 0xbc347675 dma_set_mask +EXPORT_SYMBOL vmlinux 0xbc613437 block_read_full_page +EXPORT_SYMBOL vmlinux 0xbc94e644 simple_write_begin +EXPORT_SYMBOL vmlinux 0xbc96c195 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xbc9cf4cb dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xbca2d4fc scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xbcabb9dc mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcd7a7ac pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xbd3790c1 input_grab_device +EXPORT_SYMBOL vmlinux 0xbd3ec336 inet_release +EXPORT_SYMBOL vmlinux 0xbd9aca28 skb_set_dev +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 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe0823c5 mmc_card_can_sleep +EXPORT_SYMBOL vmlinux 0xbe1ac787 __dquot_free_space +EXPORT_SYMBOL vmlinux 0xbe290584 loop_register_transfer +EXPORT_SYMBOL vmlinux 0xbe359542 mempool_create_node +EXPORT_SYMBOL vmlinux 0xbe453cc1 bio_alloc +EXPORT_SYMBOL vmlinux 0xbe599ac6 i2c_verify_client +EXPORT_SYMBOL vmlinux 0xbe842079 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xbed5990e set_device_ro +EXPORT_SYMBOL vmlinux 0xbed6d617 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbefb600d icmp_send +EXPORT_SYMBOL vmlinux 0xbf07c046 ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xbf191d97 set_pages_array_uc +EXPORT_SYMBOL vmlinux 0xbf28d477 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xbf5c1169 free_buffer_head +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfbcead6 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfd16dbd sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xbfdb60a8 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff6d950 gen_pool_alloc +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 0xc0269f05 nf_register_hook +EXPORT_SYMBOL vmlinux 0xc02ba837 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xc03f0f08 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xc0568eb9 deny_write_access +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc08dd4b3 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0aba53d swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0xc0b18006 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xc0dd13ab bio_integrity_split +EXPORT_SYMBOL vmlinux 0xc1268644 idr_init +EXPORT_SYMBOL vmlinux 0xc1379c2e end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xc14b3610 pci_get_class +EXPORT_SYMBOL vmlinux 0xc14c7659 sock_register +EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic +EXPORT_SYMBOL vmlinux 0xc1adb999 journal_stop +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc24b057f neigh_seq_start +EXPORT_SYMBOL vmlinux 0xc255471f console_stop +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc2a545ee ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0xc2aa517e compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0xc2b0defe kernel_read +EXPORT_SYMBOL vmlinux 0xc2b1211c blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xc2d1996a kern_path +EXPORT_SYMBOL vmlinux 0xc2d21cb4 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2fdbcb4 log_start_commit +EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu +EXPORT_SYMBOL vmlinux 0xc3465101 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xc35550f3 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xc369f187 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xc38d9c7a down_timeout +EXPORT_SYMBOL vmlinux 0xc3978808 xfrm_state_add +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3aefee1 dquot_destroy +EXPORT_SYMBOL vmlinux 0xc3cdc6e5 filp_close +EXPORT_SYMBOL vmlinux 0xc3e9bcf1 key_alloc +EXPORT_SYMBOL vmlinux 0xc3f1bfee vfs_symlink +EXPORT_SYMBOL vmlinux 0xc3ff5ea7 pci_clear_master +EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier +EXPORT_SYMBOL vmlinux 0xc4304d52 vfs_create +EXPORT_SYMBOL vmlinux 0xc44699cf __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xc464ca7f request_key_async +EXPORT_SYMBOL vmlinux 0xc489ac42 __put_cred +EXPORT_SYMBOL vmlinux 0xc49927e9 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc49fe5a8 set_user_nice +EXPORT_SYMBOL vmlinux 0xc4afaafb journal_create +EXPORT_SYMBOL vmlinux 0xc4cbd48e generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0xc4dff18b vfs_readlink +EXPORT_SYMBOL vmlinux 0xc4e2d475 pci_disable_msix +EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic +EXPORT_SYMBOL vmlinux 0xc4e9c01c cpu_active_mask +EXPORT_SYMBOL vmlinux 0xc4ed4561 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xc4f245b9 md_unregister_thread +EXPORT_SYMBOL vmlinux 0xc517e431 submit_bio +EXPORT_SYMBOL vmlinux 0xc521ccb8 tcp_close +EXPORT_SYMBOL vmlinux 0xc5291607 locks_remove_posix +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc53845e0 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xc53936be elevator_init +EXPORT_SYMBOL vmlinux 0xc53f65d4 icmpv6_send +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc558530d profile_pc +EXPORT_SYMBOL vmlinux 0xc559d1c9 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xc5844fb8 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0xc587da2b locks_copy_lock +EXPORT_SYMBOL vmlinux 0xc5acbf67 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5eed506 ps2_end_command +EXPORT_SYMBOL vmlinux 0xc603eeb9 __mutex_init +EXPORT_SYMBOL vmlinux 0xc6233f2e request_key +EXPORT_SYMBOL vmlinux 0xc6263196 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xc6911642 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0xc698049c dm_io +EXPORT_SYMBOL vmlinux 0xc6bfeb08 kobject_init +EXPORT_SYMBOL vmlinux 0xc6cfa881 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xc7145605 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xc71d6626 napi_get_frags +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc720ff1b netdev_features_change +EXPORT_SYMBOL vmlinux 0xc737d7eb bh_submit_read +EXPORT_SYMBOL vmlinux 0xc740c64a memchr +EXPORT_SYMBOL vmlinux 0xc746ab0a fb_show_logo +EXPORT_SYMBOL vmlinux 0xc76f7632 nf_log_unregister +EXPORT_SYMBOL vmlinux 0xc773088b xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xc796c81f input_free_device +EXPORT_SYMBOL vmlinux 0xc79a1fd2 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a24d76 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0xc7a2fd91 tcp_disconnect +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7d16c15 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xc7f0f2e4 inet_listen +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc8601c4b i8042_check_port_owner +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 0xc8acf990 netpoll_poll +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8bfd0d8 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0xc8fb36ce mpage_readpages +EXPORT_SYMBOL vmlinux 0xc908fcb6 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xc924f564 current_task +EXPORT_SYMBOL vmlinux 0xc927611f jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xc946e7ff generic_file_fsync +EXPORT_SYMBOL vmlinux 0xc94a5c0c __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xc956fc7b generic_write_checks +EXPORT_SYMBOL vmlinux 0xc97fc12b scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0xc98784e9 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9cc5401 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xc9cd1184 x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0xca308e1e dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xca5c31ab lock_may_write +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca6cdd75 __lock_buffer +EXPORT_SYMBOL vmlinux 0xca7f5636 netdev_state_change +EXPORT_SYMBOL vmlinux 0xca7f7995 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0xca822944 scsi_host_put +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel +EXPORT_SYMBOL vmlinux 0xcafbc30e pagevec_lookup +EXPORT_SYMBOL vmlinux 0xcb1f561f scsi_scan_host +EXPORT_SYMBOL vmlinux 0xcb35e706 skb_store_bits +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 0xcb8f07dc tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xcbb44a07 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc5c7145 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0xcc5fd4c4 rfkill_alloc +EXPORT_SYMBOL vmlinux 0xcc6b91d5 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc97f58e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0xcc9efcad dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0xcca8f6c7 inet_addr_type +EXPORT_SYMBOL vmlinux 0xcccca647 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xccf4deb6 dw_spi_remove_host +EXPORT_SYMBOL vmlinux 0xcd03ff11 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xcd302241 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xcd4ac3d8 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xcd519999 dm_exception_store_destroy +EXPORT_SYMBOL vmlinux 0xcd7fe12b dquot_quota_off +EXPORT_SYMBOL vmlinux 0xcda3f9cb vfs_readv +EXPORT_SYMBOL vmlinux 0xcda404fa get_agp_version +EXPORT_SYMBOL vmlinux 0xcda5882b blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0xcdb678ee udplite_prot +EXPORT_SYMBOL vmlinux 0xcdc45755 inode_add_bytes +EXPORT_SYMBOL vmlinux 0xcdfc8382 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0xce0e1a9b block_write_end +EXPORT_SYMBOL vmlinux 0xce123262 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce3a189d tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0xce3eec0f elv_add_request +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 0xce745ac4 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xce78ab3f sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xce92551c pci_dev_driver +EXPORT_SYMBOL vmlinux 0xcebc0743 alloc_trdev +EXPORT_SYMBOL vmlinux 0xceeb6fff tcp_shutdown +EXPORT_SYMBOL vmlinux 0xceecfd70 mempool_free +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf1030cb pci_set_power_state +EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error +EXPORT_SYMBOL vmlinux 0xcf661ad0 set_create_files_as +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcf7f4b68 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0xcf7faa3b ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0xcf9c2759 rtnl_create_link +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfc248d2 d_move +EXPORT_SYMBOL vmlinux 0xcfc37a00 truncate_pagecache +EXPORT_SYMBOL vmlinux 0xcfd07756 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xcfea4cdf ida_destroy +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd024c489 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xd0452aee x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0xd0565b62 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0xd05a0179 check_disk_size_change +EXPORT_SYMBOL vmlinux 0xd070023b netlink_kernel_release +EXPORT_SYMBOL vmlinux 0xd076ebb8 dm_get_device +EXPORT_SYMBOL vmlinux 0xd078f58b inet_add_protocol +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd091f8c9 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0xd093ff2d scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0d4c1ff bio_integrity_enabled +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 0xd10d2fdf __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xd13fd7ca seq_release +EXPORT_SYMBOL vmlinux 0xd1470104 __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd15d0ba7 pcim_iomap +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 0xd1bb6930 pci_match_id +EXPORT_SYMBOL vmlinux 0xd1be6766 input_register_device +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd21523f1 elv_rb_find +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 0xd25c240f i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd262a324 dm_table_put +EXPORT_SYMBOL vmlinux 0xd284e982 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xd295b237 find_get_page +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 0xd32c7a43 dst_discard +EXPORT_SYMBOL vmlinux 0xd330ce45 kobject_set_name +EXPORT_SYMBOL vmlinux 0xd337b902 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xd3831e9b skb_checksum_help +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd3a07527 input_mt_create_slots +EXPORT_SYMBOL vmlinux 0xd3af979c memdup_user +EXPORT_SYMBOL vmlinux 0xd3b907b6 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xd3d5845f mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xd3eeb837 ipv4_specific +EXPORT_SYMBOL vmlinux 0xd3f8c720 send_sig +EXPORT_SYMBOL vmlinux 0xd4079e5b kobject_del +EXPORT_SYMBOL vmlinux 0xd47d3115 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xd4ae2ffe tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0xd4d57ad9 skb_split +EXPORT_SYMBOL vmlinux 0xd4dd2965 cdev_del +EXPORT_SYMBOL vmlinux 0xd4dd484d blk_make_request +EXPORT_SYMBOL vmlinux 0xd4f5d915 processors +EXPORT_SYMBOL vmlinux 0xd5085701 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd523de4d rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd5413999 init_task +EXPORT_SYMBOL vmlinux 0xd5487de3 tcf_hash_check +EXPORT_SYMBOL vmlinux 0xd54912fc noop_qdisc +EXPORT_SYMBOL vmlinux 0xd54a8f7d sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out +EXPORT_SYMBOL vmlinux 0xd56e5509 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xd57f8789 iommu_num_pages +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5b418b4 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xd5be31ef journal_abort +EXPORT_SYMBOL vmlinux 0xd5cb5022 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xd5e178a2 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xd5f867c5 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xd5f900b3 notify_change +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 0xd61d2f7f ip_route_output_key +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd6358004 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xd63e1a5c unmap_mapping_range +EXPORT_SYMBOL vmlinux 0xd6443942 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0xd694d6b5 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xd6964609 drop_super +EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6b7f2f2 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd7150a4d _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xd71e3b46 jbd2_journal_update_format +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 0xd7ed8661 pci_get_subsys +EXPORT_SYMBOL vmlinux 0xd7f7c7b0 d_validate +EXPORT_SYMBOL vmlinux 0xd81b00b8 generic_unplug_device +EXPORT_SYMBOL vmlinux 0xd81cd5a0 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xd8255565 open_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xd83f7096 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user +EXPORT_SYMBOL vmlinux 0xd87c4dff phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xd88dc3b1 unlock_buffer +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a701bd bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xd8bcf77c generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8ea8126 iov_iter_copy_from_user_atomic +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 0xd932b256 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0xd936efb6 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0xd9375692 bio_put +EXPORT_SYMBOL vmlinux 0xd940ac2a tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xd94322e7 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0xd95c6ef5 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xd97d9c25 security_path_rename +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd99abec1 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xda054097 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda1cd1c9 redraw_screen +EXPORT_SYMBOL vmlinux 0xda3d7c3b skb_gso_segment +EXPORT_SYMBOL vmlinux 0xda4629e4 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xda55f11b agp_bridge +EXPORT_SYMBOL vmlinux 0xda5661a3 add_wait_queue +EXPORT_SYMBOL vmlinux 0xda56a92a generic_write_end +EXPORT_SYMBOL vmlinux 0xda5d5030 dma_ops +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 0xdaa6ab26 d_alloc_name +EXPORT_SYMBOL vmlinux 0xdabe23b2 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xdabf4456 km_policy_notify +EXPORT_SYMBOL vmlinux 0xdac7ec1b tcp_poll +EXPORT_SYMBOL vmlinux 0xdad99aa1 pci_enable_device +EXPORT_SYMBOL vmlinux 0xdae89d77 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xdb0f6fbf get_sb_single +EXPORT_SYMBOL vmlinux 0xdb251d5e acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0xdb2aa1bb pci_set_mwi +EXPORT_SYMBOL vmlinux 0xdb31c2a8 dcache_dir_close +EXPORT_SYMBOL vmlinux 0xdb4110e4 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xdb5b3395 mmc_detect_change +EXPORT_SYMBOL vmlinux 0xdb63488a dev_disable_lro +EXPORT_SYMBOL vmlinux 0xdb8a96e9 ip_ct_attach +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 0xdbea9cac completion_done +EXPORT_SYMBOL vmlinux 0xdbf8216b put_mnt_ns +EXPORT_SYMBOL vmlinux 0xdc03c576 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc20dae7 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc638b94 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xdc6ef0a0 scsi_print_sense +EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family +EXPORT_SYMBOL vmlinux 0xdca38c07 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcb586cc qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0xdcba67fd simple_dir_operations +EXPORT_SYMBOL vmlinux 0xdcc9b840 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xdce1ce59 remove_proc_entry +EXPORT_SYMBOL vmlinux 0xdce98eae fb_get_mode +EXPORT_SYMBOL vmlinux 0xdd147bce pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xdd2cdf77 compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0xdd3211ad update_region +EXPORT_SYMBOL vmlinux 0xdd3655cb inet_put_port +EXPORT_SYMBOL vmlinux 0xdd42bc02 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xdd4d7885 page_symlink +EXPORT_SYMBOL vmlinux 0xdd616a83 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0xdd7429c6 bio_copy_user +EXPORT_SYMBOL vmlinux 0xddc64cb6 rtc_dev_update_irq_enable_emul +EXPORT_SYMBOL vmlinux 0xddca487f kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xdde82af5 dev_change_flags +EXPORT_SYMBOL vmlinux 0xddfe5478 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xde096332 dm_dirty_log_create +EXPORT_SYMBOL vmlinux 0xde0bdcff memset +EXPORT_SYMBOL vmlinux 0xde1f37dc pci_iounmap +EXPORT_SYMBOL vmlinux 0xde2a2945 simple_rename +EXPORT_SYMBOL vmlinux 0xde2a3596 scsi_block_when_processing_errors +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 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde983c2c free_netdev +EXPORT_SYMBOL vmlinux 0xde9a5fb7 agp_backend_release +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdea814ed inode_init_owner +EXPORT_SYMBOL vmlinux 0xdec042fc inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xdedc8a8f block_sync_page +EXPORT_SYMBOL vmlinux 0xdeee8b96 dcache_lock +EXPORT_SYMBOL vmlinux 0xdef9558c tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf42ead3 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf526cb4 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfacb49e __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xdfae91c1 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xdfb67aed fget +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdff9afb9 rfkill_set_states +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b17b70 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort +EXPORT_SYMBOL vmlinux 0xe0bc4fb2 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xe0ef562e dm_table_get_mode +EXPORT_SYMBOL vmlinux 0xe0fea30f grab_cache_page_nowait +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 0xe147e5e1 ___pskb_trim +EXPORT_SYMBOL vmlinux 0xe148898d tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xe165d6f9 ps2_command +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe19a8851 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xe1d01090 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0xe1ef71ac pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xe1f58412 pci_claim_resource +EXPORT_SYMBOL vmlinux 0xe2366551 elevator_exit +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24050c7 scnprintf +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe27c53c1 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xe28d464a eth_change_mtu +EXPORT_SYMBOL vmlinux 0xe29b04e9 acpi_set_firmware_waking_vector64 +EXPORT_SYMBOL vmlinux 0xe2c076d3 block_invalidatepage +EXPORT_SYMBOL vmlinux 0xe2cb022d n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2d9a19d backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xe2dc3a7f generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xe2df164e proto_register +EXPORT_SYMBOL vmlinux 0xe2fcee4c block_write_full_page +EXPORT_SYMBOL vmlinux 0xe309650e sk_alloc +EXPORT_SYMBOL vmlinux 0xe311f636 scsi_remove_host +EXPORT_SYMBOL vmlinux 0xe322f849 __alloc_skb +EXPORT_SYMBOL vmlinux 0xe356c66a cpu_core_map +EXPORT_SYMBOL vmlinux 0xe35b4924 dev_get_flags +EXPORT_SYMBOL vmlinux 0xe3779515 generic_read_dir +EXPORT_SYMBOL vmlinux 0xe3914589 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0xe3b0192b vscnprintf +EXPORT_SYMBOL vmlinux 0xe3cc7938 generic_setxattr +EXPORT_SYMBOL vmlinux 0xe3d55c35 compat_mc_setsockopt +EXPORT_SYMBOL vmlinux 0xe3ea511f ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xe3ea7f29 mnt_unpin +EXPORT_SYMBOL vmlinux 0xe3f2d8af elv_queue_empty +EXPORT_SYMBOL vmlinux 0xe3f58f56 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0xe43307e4 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe456d99a __init_rwsem +EXPORT_SYMBOL vmlinux 0xe47a20ec fasync_helper +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe4ae2f98 bio_add_page +EXPORT_SYMBOL vmlinux 0xe4b24b8c __next_cpu +EXPORT_SYMBOL vmlinux 0xe4f57401 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0xe4fc677a fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xe50a2c86 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe52947e7 __phys_addr +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe538f7ca sock_setsockopt +EXPORT_SYMBOL vmlinux 0xe53ee230 phy_print_status +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe58fb1b2 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0xe5a1617b seq_path +EXPORT_SYMBOL vmlinux 0xe5a95782 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xe5aec2bc neigh_table_init +EXPORT_SYMBOL vmlinux 0xe5b41f2d sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xe5bff042 start_tty +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5dee724 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xe5deeb1e idr_for_each +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5ee46d6 blk_start_request +EXPORT_SYMBOL vmlinux 0xe61c41b5 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xe61e6dc2 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xe656ba3b i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xe67853f8 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0xe6822890 block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xe690b8fd __ipv6_isatap_ifid +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6a7fd89 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xe6c85402 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xe6d0a83c __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xe6ed0216 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xe6f27d60 ppp_dev_name +EXPORT_SYMBOL vmlinux 0xe6f8901b elv_rb_add +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe711d8c6 tty_free_termios +EXPORT_SYMBOL vmlinux 0xe71664e0 ps2_drain +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe72a7d8e sg_miter_stop +EXPORT_SYMBOL vmlinux 0xe7334f5c bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xe7392472 alloc_fddidev +EXPORT_SYMBOL vmlinux 0xe742df17 mpage_writepages +EXPORT_SYMBOL vmlinux 0xe74cf0a7 mempool_destroy +EXPORT_SYMBOL vmlinux 0xe76d5721 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xe77f6f14 seq_write +EXPORT_SYMBOL vmlinux 0xe78887cb security_inode_init_security +EXPORT_SYMBOL vmlinux 0xe78f39d3 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0xe7c342be clear_inode +EXPORT_SYMBOL vmlinux 0xe7cc3148 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d31172 blk_start_queue +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7d9dd43 register_netdev +EXPORT_SYMBOL vmlinux 0xe7de34ba cdrom_open +EXPORT_SYMBOL vmlinux 0xe7e83470 agp_free_page_array +EXPORT_SYMBOL vmlinux 0xe8003594 setup_new_exec +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node +EXPORT_SYMBOL vmlinux 0xe82a90ef ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xe82f7924 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xe8583614 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xe85c3da3 lock_fb_info +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe889b019 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xe88de325 block_commit_write +EXPORT_SYMBOL vmlinux 0xe8a3605f acpi_processor_set_thermal_limit +EXPORT_SYMBOL vmlinux 0xe8b23639 dquot_drop +EXPORT_SYMBOL vmlinux 0xe8c816f6 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0xe8d30799 rfkill_register +EXPORT_SYMBOL vmlinux 0xe8f46444 lock_rename +EXPORT_SYMBOL vmlinux 0xe909ce03 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe91edc0f ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xe9238193 end_page_writeback +EXPORT_SYMBOL vmlinux 0xe93a044d bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xe94023e4 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0xe9783697 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xe9855301 is_container_init +EXPORT_SYMBOL vmlinux 0xe988466d devm_ioremap +EXPORT_SYMBOL vmlinux 0xe98ac990 generic_removexattr +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +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 0xea32aa34 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xea5acffd dm_snap_origin +EXPORT_SYMBOL vmlinux 0xea7a59cb i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xea94a14f remove_arg_zero +EXPORT_SYMBOL vmlinux 0xeab48eb3 xrlim_allow +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 0xeb14696f close_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xeb1d0d31 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0xeb3b57c9 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0xeb683b96 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xeb7c2bdc tty_vhangup +EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n +EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp +EXPORT_SYMBOL vmlinux 0xebcb0afa mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xebcb20b0 mmc_resume_host +EXPORT_SYMBOL vmlinux 0xebd204f4 generic_file_llseek +EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull +EXPORT_SYMBOL vmlinux 0xebe38de8 module_put +EXPORT_SYMBOL vmlinux 0xebf1a0c0 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0xebffafab cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xec03dad2 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xec11d888 check_disk_change +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec4bc049 km_policy_expired +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec50540b open_exec +EXPORT_SYMBOL vmlinux 0xec67368d wireless_spy_update +EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0xec8e9393 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xecab3146 pnp_possible_config +EXPORT_SYMBOL vmlinux 0xeccae092 put_io_context +EXPORT_SYMBOL vmlinux 0xed696d62 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xed755e2b md_set_array_sectors +EXPORT_SYMBOL vmlinux 0xed84e6c9 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xed8c53ac _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xed8c59f6 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xeda38a4b pipe_to_file +EXPORT_SYMBOL vmlinux 0xedb468e9 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xedb47f02 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedeb44b5 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xedec3feb scsi_finish_command +EXPORT_SYMBOL vmlinux 0xedee9b98 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xedf606bb skb_trim +EXPORT_SYMBOL vmlinux 0xee2bc709 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee5cd7eb agp_allocate_memory +EXPORT_SYMBOL vmlinux 0xee7cf59d netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeaad048 blk_register_region +EXPORT_SYMBOL vmlinux 0xeebc99c0 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0xeeede9ae thermal_zone_device_update +EXPORT_SYMBOL vmlinux 0xeef0c9a2 md_integrity_register +EXPORT_SYMBOL vmlinux 0xeef80f28 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xeefa7181 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xef0beca7 simple_unlink +EXPORT_SYMBOL vmlinux 0xef23c3b6 input_close_device +EXPORT_SYMBOL vmlinux 0xef2a3aa5 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xef347f0b cdev_add +EXPORT_SYMBOL vmlinux 0xef34e775 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xef50a955 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0xef62e85f mempool_alloc +EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefb4a7e4 disk_stack_limits +EXPORT_SYMBOL vmlinux 0xefc262f6 thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0xefce7b12 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe09759 pipe_unlock +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 0xf0113c8e fsnotify_put_group +EXPORT_SYMBOL vmlinux 0xf03c725f add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xf0415554 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xf046d31f ip_getsockopt +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf0723cea sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xf073d5ad ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xf079c151 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xf07f7160 scsi_device_resume +EXPORT_SYMBOL vmlinux 0xf0826185 set_binfmt +EXPORT_SYMBOL vmlinux 0xf09c7f68 __wake_up +EXPORT_SYMBOL vmlinux 0xf09d3f84 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0xf0a64560 sk_reset_timer +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0ef392d netif_receive_skb +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xf116d4b5 copy_in_user +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf127af2d skb_unlink +EXPORT_SYMBOL vmlinux 0xf1699e19 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf1887e46 eth_validate_addr +EXPORT_SYMBOL vmlinux 0xf1893b08 journal_start +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf198bfe4 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xf1d22946 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1dcc734 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1f7c142 pci_request_regions +EXPORT_SYMBOL vmlinux 0xf1fc7846 kernel_connect +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 0xf25a5617 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xf287fa66 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xf28cf71b mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2d61b28 inet_shutdown +EXPORT_SYMBOL vmlinux 0xf2daff76 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xf2e3f7d3 compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xf2ee97fd register_key_type +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 0xf335d843 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf33a8560 cdrom_release +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf37de227 set_pages_uc +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf38d284d tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xf38f2ef9 pv_cpu_ops +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf3b7c639 uart_match_port +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3d59ca6 rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xf3f4132b end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xf4003ff3 bio_kmalloc +EXPORT_SYMBOL vmlinux 0xf40a962f pcix_get_mmrbc +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 0xf472fbdb path_is_under +EXPORT_SYMBOL vmlinux 0xf4777d69 path_lookup +EXPORT_SYMBOL vmlinux 0xf4852349 blk_alloc_queue +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 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4b8c35a abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xf4de08b0 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +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 0xf55168f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xf55adc39 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xf5783039 km_new_mapping +EXPORT_SYMBOL vmlinux 0xf57ad089 set_pages_x +EXPORT_SYMBOL vmlinux 0xf59ae590 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xf5a5ead6 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xf5b63d15 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0xf5c2ff4b scsi_dma_map +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 0xf6141919 prepare_binprm +EXPORT_SYMBOL vmlinux 0xf62984ef ps2_handle_response +EXPORT_SYMBOL vmlinux 0xf63d4ae2 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0xf664e646 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xf670264a inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xf698564b netif_napi_add +EXPORT_SYMBOL vmlinux 0xf6a45227 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0xf6acc804 get_super +EXPORT_SYMBOL vmlinux 0xf6b5e5b1 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6d360b4 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf70a2c60 ps2_begin_command +EXPORT_SYMBOL vmlinux 0xf713bd05 pci_read_vpd +EXPORT_SYMBOL vmlinux 0xf755f665 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf766c24f d_prune_aliases +EXPORT_SYMBOL vmlinux 0xf77c6ece xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf791165f iget5_locked +EXPORT_SYMBOL vmlinux 0xf7a5c377 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0xf7bf85c6 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xf7c53374 schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0xf7ca38c5 register_cdrom +EXPORT_SYMBOL vmlinux 0xf7db21ad simple_pin_fs +EXPORT_SYMBOL vmlinux 0xf801ce8d qdisc_watchdog_init +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 0xf82d0e1e blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf837e67e inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xf87517f7 softnet_data +EXPORT_SYMBOL vmlinux 0xf877d284 scm_detach_fds +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 0xf89d51af bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xf8b4cd70 scsi_cmd_print_sense_hdr +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 0xf9129365 unregister_8022_client +EXPORT_SYMBOL vmlinux 0xf9256d36 input_get_keycode_big +EXPORT_SYMBOL vmlinux 0xf937bda0 cdev_alloc +EXPORT_SYMBOL vmlinux 0xf938d8b1 nlmsg_notify +EXPORT_SYMBOL vmlinux 0xf93d6b6f neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0xf9635df6 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xf963894c iterate_mounts +EXPORT_SYMBOL vmlinux 0xf97e1b36 scsi_execute +EXPORT_SYMBOL vmlinux 0xf9a44297 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xfa07c76c key_payload_reserve +EXPORT_SYMBOL vmlinux 0xfa0cfa8a cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xfa0f56f5 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xfa256a69 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xfa2bd247 vfs_unlink +EXPORT_SYMBOL vmlinux 0xfa43559a find_inode_number +EXPORT_SYMBOL vmlinux 0xfa5b26b4 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0xfa68ac3f pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0xfa733552 cont_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0xfa76dfc6 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xfa7d7701 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0xfa9a8f1d swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0xfacc20c9 tcp_connect +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb2de8da blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0xfb3ea712 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb73b914 blk_end_request_all +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfbb13e46 dw_spi_add_host +EXPORT_SYMBOL vmlinux 0xfbb63c6b dquot_file_open +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 0xfc0e6ecb journal_errno +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc85e5d5 inode_change_ok +EXPORT_SYMBOL vmlinux 0xfc974838 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xfc99283b mfd_remove_devices +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcdd7f99 set_disk_ro +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd067cd3 ilookup5 +EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfd97f32a acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0xfd98460c posix_lock_file +EXPORT_SYMBOL vmlinux 0xfd9c991b i2c_transfer +EXPORT_SYMBOL vmlinux 0xfd9ecb65 textsearch_unregister +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfda597bd sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfdb52ea2 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdc31221 textsearch_destroy +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 0xfe392bcd generic_segment_checks +EXPORT_SYMBOL vmlinux 0xfe5175e6 tty_unregister_device +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe675141 dm_exception_store_create +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 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 0xfed53143 dq_data_lock +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfee432be touch_atime +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 0xff33ffde filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xff404e9d __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xff418426 sock_i_ino +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff68b3fc tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xff6b4daa journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xff6d7dcd dcache_readdir +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 0xffadfd6c bio_map_user +EXPORT_SYMBOL vmlinux 0xffc0d7d8 read_cache_pages +EXPORT_SYMBOL vmlinux 0xffd56255 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffebaab1 skb_recycle_check +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 0x039d467b kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x06234e79 kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x08c888f4 emulator_write_emulated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x094ac8f4 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0bcf21c8 kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0ece886a kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x129d1acc kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12d1b23b kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1b3476f6 kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1d49835d kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e4580bb kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2322e039 kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x266dcb48 kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x28260280 kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2827f807 kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x288873c9 __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x296c4b0d load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2be05592 kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2c814c73 is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e92867f __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f40f4aa kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f98b932 kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3b376213 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3e20116c kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406813bc __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x43fd77c9 kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4757031c kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x480de99f kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x48e80385 kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4a7cbe69 is_error_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4b8d937b kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4f01932f gfn_to_memslot_unaliased +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5102cf94 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x523a2fae kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x546b4a6b kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x552b4da5 __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56214f73 kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56869095 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5affceb8 __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5c950555 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5eb42ded kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x67a0da1a kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x69783ecd kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6a7b8995 kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6f1f6b85 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7165cd0a kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x740c5e7c kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x790dcd58 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7f002180 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7fb25b66 kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x80cf497b kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x82236aea kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8542925b kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x87bb270b kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9227f4b3 __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x948c0aa3 kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x956d770b kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x95fcd6fa kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x96f9391c kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x997321f3 kvm_report_emulation_failure +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 0x9aa71c45 kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9bd09d91 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9d14c14a kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa361bc65 kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa8f7f0fd kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xabb80c93 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xae9389f0 kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb1dbf3e8 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb3ab5897 kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb46f9af7 emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb5b754da kvm_requeue_exception_e +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 0xbe869902 gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc823225a kvm_fast_pio_out +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 0xd296def9 kvm_is_error_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd56c0cea kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd5b64b8a kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd698c302 fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7be16af __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd81320a2 kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe000d710 kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe56026f6 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe9122aa6 kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xef01c694 gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf047c275 kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfc3861b5 kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfd98c144 kvm_set_cr3 +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 0xf3012137 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xff196661 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x1a7a83f8 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xd67d6657 async_raid6_2data_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 0x3b0a4ac1 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x48052fbd ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4dad984e ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5231c81f ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6c199d1a ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x73b12e27 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7c2e0f1f ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8d7c94c7 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9ee0dd87 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xae13d0a9 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xae2cca25 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xaf29524c ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xcf372c0a ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea944969 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3da95a19 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4a63fbe8 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x8e276ecc btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xabbf9d0c btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc6ac4908 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe7e0662c btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xebbaa915 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf5921eb6 btmrvl_add_card +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 0x5a506961 tpm_bios_log_teardown +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0xd1b89a93 tpm_bios_log_setup +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 0x0fa5836e gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x251a4a91 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2c8c47e9 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2f4b7ec1 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3148d18b gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x38fac3b5 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4d110c98 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x537016ce gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x678da6ae gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x688bd336 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x719b2cfd gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x842624d9 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc3c7bc61 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc8a06c84 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdb95e3d3 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe3d62095 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xef71c729 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf48bf488 gigaset_freecs +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 0x37a52be4 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x553fa139 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x5bad1dc6 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xbe1041d5 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xd5240203 sm501_misc_control +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 0x2fb6150d sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x312c38e6 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x3d844111 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5c41a072 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x712a6001 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xde701989 sdhci_remove_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 0x0af20720 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x3844720d deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x65af0078 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xe095e1ad add_mtd_blktrans_dev +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 0x518fec89 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x541b82d2 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x69fbfcf3 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x8ef2cde5 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xf5cb1a46 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 0x18158982 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level +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 0x1f767ff2 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3002a823 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3410f790 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x45b99c21 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x59401d77 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x66938d91 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6bf39d9c rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8c157783 rt2800_init_rfcsr +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x971e24fc rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa96c0573 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbbd2b018 rt2800_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbd6c2379 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc4bca012 rt2800_init_bbp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcd852742 rt2800_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcf9974eb rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdb5ff261 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdd7d9353 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe07a7fa8 rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe16c0b29 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe34aa534 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe5d3cc07 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf33eb676 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfd9677be rt2800_mac80211_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xffc6bf0d rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0e200db6 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1896c3bd rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2c555751 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x33850d6d rt2x00queue_map_txskb +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 0x6bfc7604 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6fad3ca4 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7d3fb10a rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x81691ce5 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8fc88f06 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x925430c2 rt2x00mac_stop +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 0xb7ed1ebd rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcd872d23 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd3e1ce03 rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe8f9f75d rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xebbedb06 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf1bbaf49 rt2x00lib_txdone +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 0x22ce7a28 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x2369a5bf rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x3da40309 rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x4503d415 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x734f2c11 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x82615799 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xc233c2f3 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf54d6904 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xfe0fdc1c rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1720869a rt2x00usb_vendor_request_large_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x20e12f43 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x25968e34 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x484fedd9 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6340ef39 rt2x00usb_kick_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x71f4fb56 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x73e7643a rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x91bcdb23 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x95c4c0e2 rt2x00usb_kill_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x95d4cc06 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xaa823f57 rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xbe419b69 rt2x00usb_suspend +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 0xe1c8ae60 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xef941ab3 rt2x00usb_uninitialize +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 0x18b5e454 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0793efb8 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x092c56b9 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0aaa3003 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x182b8200 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1973684d iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1a0b1b8f iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1bbc2faa iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1f5fbfb6 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x20864e6f __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3451b429 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x36404963 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3cbad0d6 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3ce23286 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x41014313 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x479e4eec __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4f831972 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x51ce1fb8 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x530bb775 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5bed023b iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5dafd595 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6f8aa192 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x70c7daaf iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x72f0afc6 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8665fb67 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8e864a27 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x917932c8 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9691f9f8 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa36eb8b4 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa381d33b iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa3bd60b3 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xadb7bab5 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb57d7e4f iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb6cebc16 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb926c5fb iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb97508e1 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd045224f iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd3cf1d00 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xded67165 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe24f4efe iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xedb5d733 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf2a70a60 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf951499d iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x06da5f5b iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x07ffbd67 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0a7eb38a iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1111dc91 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1b8c7900 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x255dbe1c iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x335fb8b2 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4b7454ca iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5c4e328a iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xda70310f iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe302d8b1 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe986f49f iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf1001489 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf15fa549 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfaebde5d iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfe5f9232 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1320912a sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1efd3803 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1ff37db6 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x26adb16c sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x30abb1b8 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3ff6eebf sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x57313402 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x585dcb3f sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x65dae5bb sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x68e42f0c sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x850bac32 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8cbe34cf sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9a6136b9 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa4c90657 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb95a2c54 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcc08fe43 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcd4d8aa8 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xde4af2d4 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdf950bd9 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe1dbff3c sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe7f872e5 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe97d9a04 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xff11a36b sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x36d6f230 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x3c83b23a srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x402cc662 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x902cfb81 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x97a9ec78 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xdb17bffc srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x05660571 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x07212206 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x19bd47fd scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x47d5678a scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x56528cf7 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x8c34b024 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9bb70f07 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd1028232 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe3f8f5e9 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x03868ea9 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0e72f5d1 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0e7de4d1 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0f44fd7d iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1045a01c iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1576650b iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1d9ce342 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x250be977 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x38b55dde iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x41246e5b iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6bb60757 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6c613b7f iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6d9c6f68 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8f5c0c33 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9b8daf3e iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa02f58da iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa844f78e iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xae64f864 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb81d4ccd iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbb27b84b iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd39d403d iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfa0e8670 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x3c02f65d sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x98902de1 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xb7ccc903 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xfb1c3fc0 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x044de149 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x0a15afe6 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x0cd535ab srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x0f808537 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xf07b4d04 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 0x377e2b97 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 0x116e8e4d usbip_task_init +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x12eedd87 usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x1f12da02 usbip_stop_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x29d02419 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x39c17fd7 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x474bc3fe usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x4a6241cb dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x6153a63b usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x75639ad5 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x8c16e76c usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x8f7d54c9 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xbe6ffe98 sockfd_to_socket +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 0xe343f89c usbip_start_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xed24ab97 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xef4eb0d8 usbip_dump_urb +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 0x44a3bc11 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xdc9d93a7 usbatm_usb_probe +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 0x1b33ec6d usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x20d2c1a6 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x39667284 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4333bc36 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x600819bd usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6875ba73 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x78e6f2af usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9073f24f ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9b0de151 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xac60b562 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb2ea65b8 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd4928003 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe16b8f60 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xec656405 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf0b077f4 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf109a7ec usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf1ec8918 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf28605af usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf7e224e9 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x158d25c1 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1a8516d2 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 0x1d974b3c usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x210fc06e usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x339be6c9 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x380a55f4 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3ee4be96 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x406cd86d usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x636a0995 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x68c7f045 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6b019952 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x72394e04 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7478d09a usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xac8b855e usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb1c42ef4 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb4fdccef usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbe7eb0de usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xce8f69da usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd1d05ea9 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xec6bea43 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf234e52a usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf42b0d66 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf8f5eb2f fill_inquiry_response +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 0x0653c5b4 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x0b26920f fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x191e08e8 fat_time_unix2fat +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 0x69a86fb5 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 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 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x314e0078 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7ddc8818 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x8fe63f8c nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x993db874 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf76e9201 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 0x25bc5480 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x35b975d6 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4018e0c0 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 0x725ade6d o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb2e64888 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbbad38cc o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf4e73770 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 0x31af8cea dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x6e4a0312 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x76663247 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x93413176 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 0xec897ffd dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfed2c338 dlm_unregister_domain +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 0x4a1d2308 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 0xfe0e7b95 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x05a48221 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x079a7a1e dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x09ae3e1c compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0d8937fa dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x17b4563f dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1be110ab dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x22947c19 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2cedb8f8 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x30b4e044 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3730000a dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3ca501e4 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3da8de40 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4265c879 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4e69ed2c compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5ba7babf dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5d80f47e dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5e43d87a dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x63b55476 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6d8a8dc5 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x74058945 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x75fb9d44 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x85a1a91b dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8625250d dccp_disconnect +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 0x8c40bc54 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8dff2736 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9319772a dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00a52b9 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb0bda78e dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc1fdf9df dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd12fe34f dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd190bc92 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd190f14a dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe3f2d393 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe6440cde dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf61ef0c6 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfab04d06 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x449e8a61 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x4c90d9a9 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7de65be0 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa1ce758b dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa531e235 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xebca1222 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xfdd5dbdb arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x97407a47 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 0x95e9cea9 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 0x09c2d85c nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x11934d79 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x1a264b29 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x46eb01bd nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x8bf42b76 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xa0957792 nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xcaa35889 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xf7e9cb72 nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x350a9090 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x5f5420c8 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x92d82ac8 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x9d426b8a tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xf66136d8 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x0d401a02 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1bbc22d3 l2tp_xmit_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x31430763 l2tp_udp_recv_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5813d164 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5df546d2 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x787b2d53 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x83e6aa51 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x925515ac l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x933618fc l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x948dfdaf l2tp_tunnel_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x94b9a2f1 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x956c82ce l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa0181ecf l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa4d5237a l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa9d9da7e l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb6a710de l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb795e966 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe12902a2 l2tp_session_free +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 0x06bef143 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x07b02077 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0de0783a nf_ct_expect_init +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 0x348893c1 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x399dc190 nf_conntrack_event_cb +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 0x4a0413c3 nf_conntrack_l4proto_udp6 +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 0x78327141 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f96138c nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x80ced3f9 nf_conntrack_l3proto_generic +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 0xc91e31d8 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x8f4618f9 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x087e7602 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x144d5dd7 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x15c3f396 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x193506e4 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x69132d4b nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7b93d85d nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb0057b3b nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xced37ee5 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xeeeb646d set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf999d6c9 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x1d469ad4 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x2543312e nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x80d8ae7d nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xa54ff0fc nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xe0dee5f7 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 0x041f4064 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x187361b1 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3b7b39ab nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x54d565db ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x65244a25 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6cb24df3 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x82a6c26b nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8ba212df nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9ea23ec8 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa8ac13e9 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xba986e8e ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd238b3d4 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xea0a4b57 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xe2cc4435 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x49da58bb nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xc5b1362f nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1881af4a nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x494ecb19 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x688a636d nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7d6b7107 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xbf1038c9 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xc0de5119 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x6df0533c nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0cb0ce93 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0f37c2a1 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2e2118b6 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3b35026d xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x480339da xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5d4440ab 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 0x8afe4893 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x927dfa28 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb4e453bc xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb8dcd829 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc17b6533 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc884da6b xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc89b730d xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xcbd20c49 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xcf653784 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xddc2e313 xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe5206f1a xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xea9ef532 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf6c88c09 xt_proto_fini +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 0x0824e757 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x0ff34d65 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x1de40e6f rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x2091ae6a rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x2b788af9 rds_page_copy_user +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 0x48625ff7 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x535e7b5f rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x63b243ab rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x6ee8a601 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x71ece9d8 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7e413ff8 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x867fabf2 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x8940a87a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0xaa234b2c rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xb22a3a21 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0xc25d9def rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xc2da8e38 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xca612001 rds_inc_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xd0e626ca rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xd7dac3c1 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xd7e917a3 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0xdac56aca rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0xe3e38b3e rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xe7a5d044 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xf58ccc3b rds_stats +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x3f6eab7f rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x9511ef6e 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 0x2e69b568 gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x31f6be85 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3d720af6 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6106d47e svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xafb608fd 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 0xb5f57594 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd3025821 gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd4439d8f gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xeee0966d gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xfcf130d9 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01e6d99f xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x021f9a0c xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02db43c7 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x038a6e6e xdr_encode_array2 +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 0x08993a53 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x098776b3 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a7b910c xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0af13b0c rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ca9dae0 rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ce4297a auth_unix_add_addr +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 0x1157a5e2 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x126c0649 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x160d8874 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x167f7969 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x18a82f12 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c0ed102 svc_sock_update_bufs +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 0x20bf3174 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23d4fb81 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ce41a8a sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d86cf66 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ee8bc05 svc_sock_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f8f2a9b rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x303fa36b rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30606133 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x306fa692 auth_unix_forget_old +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 0x35d73617 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36b9312e svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39eefbed svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3caed5b1 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d60da5e cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x45015ac6 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46f6ff11 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a9750b9 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4bbed6ae rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x540a3ea9 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57acfa36 svc_xprt_enqueue +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 0x5d7e1e6b rpc_queue_upcall +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 0x638e5922 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x651ecb9d rpc_sleep_on +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 0x687fc37a auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a6a2126 rpcauth_init_credcache +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 0x6c8eef3f rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f30a56d unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x703b6bbc xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7231219c rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7312fa7c rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7630118b svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77296f5f svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77410706 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77475e4b rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x775adaf6 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ae274be rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b4db5cb xprt_complete_rqst +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 0x80007197 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x835575f0 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85cda59b rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x874bbb60 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x875b4214 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x88d74a6a svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b4f01e5 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ccd40c3 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90123a56 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x944ee69e rpc_exit_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9450d63f svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x949355b5 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97e37bf2 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x997cddb2 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x99fe1aba rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9b4b268d svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cc07685 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d7a230b rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9eaac6ee sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f2f347b xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa083dc1b svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa08942b8 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0cb56fa svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4295879 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa48d40c6 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa8ca4b7 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaaec89f7 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xadc8c122 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xadc96f24 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaebd94ff read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaec06338 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1a06a3b xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb355b64b rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3e6634b svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4804cc0 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb524e82f xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb534e105 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb7a27e79 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb83b52e6 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb893f0b6 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb9be74cc xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb8a354c xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbdc2b79d xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc097b065 rpc_delay +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 0xc68d06df xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc89b4fcd rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc97bcea8 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcbf3923c rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc176aa9 svc_sock_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd8f8535 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0333a40 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0b2a683 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd54a9bd9 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5ef0bdf svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6ca6dce rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7905011 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7af70d4 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc136e7f rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf3714d6 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe112c875 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2e32c9c sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3e4130e xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe59e317b svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe77b632a svc_create +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 0xea43896f xprt_unregister_transport +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 0xef9c438f svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xefd5a0b3 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1dd5d19 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3e9bc4a svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf729ddaf rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa5ea6b9 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc432f01 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfdf73af5 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe8f2d30 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff0afce1 svc_sock_names +EXPORT_SYMBOL_GPL net/wimax/wimax 0x030548f8 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0b283cb4 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x1430d516 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x168e6a03 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x27745bd8 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6642978a wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x69e0ae3a wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x72713793 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x8ca4ade6 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x932fed44 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xcb2314b3 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0xee85160f wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf63b455e wimax_msg_data_len +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 0x268f30de ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x2fc45f2b ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x9694e265 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xb7cf9bcd ipcomp_init_state +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 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x0084441f dm_rh_update_states +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 0x00f94fde register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x0110b3d1 register_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0x0117d615 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x011bdcd1 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x01378d91 attribute_container_classdev_to_container +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 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 0x01f17b23 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x02474f30 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x03a3f86d unregister_jprobe +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 0x04093f3d ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x04431b13 generic_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x0494ab32 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x04a4c1dd lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x04ae6784 br_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04cb6c21 unregister_ftrace_event +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 0x05303e8b cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x05316322 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x05361af8 tcp_cong_avoid_ai +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 0x05a86ea5 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x05d137a4 __inet_inherit_port +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 0x06df03cb ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x0707e0ff sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x072f0b0f crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x073743c5 dm_region_hash_create +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 0x07c916fc ring_buffer_reset_cpu +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 0x081f3e9b tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x0827c923 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x0838ccc5 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x0853bf55 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x08547025 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x0893baed rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x08a85c30 crypto_register_alg +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 0x09231820 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0926c1ed regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x094bfede queue_work +EXPORT_SYMBOL_GPL vmlinux 0x0951bd6e find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x095d762b regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x09625800 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x098f5041 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x09a0b0c0 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x09c64cb6 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x0a1d83f0 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x0a9b5ce4 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x0aae1a82 ring_buffer_size +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 0x0b376235 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x0b4212e7 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x0b6b9cc7 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x0b6d0342 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x0b7a51eb inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0bac9195 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x0becbdd8 scsi_internal_device_block +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 0x0c60d9f8 blkdev_ioctl +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 0x0d2813f5 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x0d281ed3 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x0d3e113f securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x0d4e73c5 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x0d7e30b2 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e1fb42a proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x0e2ee1c3 scsi_schedule_eh +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 0x0ee19ca9 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x0efdfb46 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x0f028725 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x0f3ea398 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x0f962190 sata_set_spd +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 0x11022367 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x1125a51d usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x119cdcf9 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +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 0x12af264a ata_pci_device_do_suspend +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 0x134995ac dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x1360d523 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x1395453a ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0x13a770cf class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13cc7bb9 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x13e39744 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x14061ff0 pci_num_vf +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 0x1485d56f pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x148a0677 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x14d3fbb4 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x14d978aa ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x14e1310f gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x14eeaa27 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x14f306f9 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x1559e2b1 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x1560753c skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x156088fe crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 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 0x16404373 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x1655d059 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x166b2de5 trace_event_raw_init +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 0x1755cd64 cpuidle_unregister_device +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 0x17dc7e45 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x17f55a9c synchronize_srcu_expedited +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 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x1918940a vfs_lock_file +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 0x19736e94 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x1987bda2 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x1992e7b4 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x199884b1 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x199abb45 vfs_setxattr +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 0x1a1e042b inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x1a25bee0 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a6c1817 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x1a7804d1 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x1a84c5d4 inet_twsk_alloc +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 0x1b4ae1b1 eventfd_ctx_fileget +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 0x1c132b3d uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x1c339dfe sysfs_remove_link +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 0x1d2cc425 md_new_event +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 0x1e19f572 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x1e359831 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x1e4468ff skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x1e67765a wm8350_reg_read +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 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1fadbd4f __dma_request_channel +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 0x20d22764 iommu_found +EXPORT_SYMBOL_GPL vmlinux 0x214bb103 ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x21a6761d devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x21ad8d06 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x21b6e871 sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0x21c4ddf1 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x21fd56f1 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x2206e2b7 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x2231fdc2 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x223a3d1d usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x227c2523 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22fad139 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x23023f63 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x234658d2 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23d263a7 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x23e78345 tty_wakeup +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 0x250e8f30 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0x2533181d fuse_sync_release +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 0x25fa5da3 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x262ca3f3 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x262e29dd sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x2634d590 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x264acb57 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x26802c0a tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x2691e0ca fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x26ac5e50 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x270c9232 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x271372d8 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x27949c94 acpi_smbus_register_callback +EXPORT_SYMBOL_GPL vmlinux 0x279c2c35 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x27a14535 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x27bc680c ring_buffer_discard_commit +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 0x28ce925d sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x291bc1f7 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x2959ed57 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x295ab608 dm_unregister_path_selector +EXPORT_SYMBOL_GPL vmlinux 0x2976ca5d fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x297940d7 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x297c06dd transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x2991b2fc queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x299a1e6d sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x2a0a4724 bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x2a1538ca lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x2a4b6706 fl6_sock_lookup +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 0x2ae31954 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x2afac5da blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x2b1d9b53 ata_ehi_push_desc +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 0x2c50fbf1 __srcu_notifier_call_chain +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 0x2ccd6ffa inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d3a32bd blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x2d4bea24 wm8994_bulk_read +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 0x2dfdfcf8 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x2e245807 dm_region_hash_destroy +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 0x2fbd0ffa ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x3008c566 inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0x30167838 add_timer_on +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 0x319f0909 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x31bc5570 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x32084797 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x323fcdad scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x329a6b9d wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x32a3dfd2 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x32f16df1 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x330d38e2 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x3328968e put_device +EXPORT_SYMBOL_GPL vmlinux 0x33466533 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x334b53b0 class_compat_unregister +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 0x34188929 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x343e95be crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x34db2d35 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x3512df00 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x358dd73c inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x35cee10f sata_std_hardreset +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 0x36860096 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x36864ef1 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x369ab43a inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x36b5169c transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x36df6deb __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x36e35477 device_rename +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 0x375ca536 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x376e6977 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x378268a4 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x37e44ec5 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x37f1ffbf gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x384053e7 erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0x38571782 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x386fdb8a __xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0x387fb83d bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0x38d1c6fd cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x38d8bf6e bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x38eb4e7b usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x395d7d7a ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x39e27f81 device_create +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a2eea97 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x3a7acfdd save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x3a9c4eae transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x3aa548d4 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x3aa74cd9 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x3ac82860 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x3b0b0104 bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0x3b253128 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3b7b5c3e dev_attr_em_message_type +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 0x3c5ec296 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x3c70f9b0 inet6_destroy_sock +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 0x3ca3814b ref_module +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 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 0x3d7d2566 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3d8b46b5 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x3d8c85fd __blkdev_driver_ioctl +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 0x3e06f6a4 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x3e1b68eb ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x3e46203a ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x3e7738bd securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x3ea0b0aa spi_write_then_read +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 0x3f6c3c3f perf_event_release_kernel +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 0x3fe17755 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x401a09f2 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x4020e223 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x405ec7c4 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x40620597 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x40a631f5 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x41079fe0 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x412f73ad rtnl_link_unregister +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 0x41f355ba sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x4244fece ata_port_pbar_desc +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 0x42eee679 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x43499a39 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x435c3055 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x43dd1a7d cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x4404b75e rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x4404b9d8 ring_buffer_iter_empty +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 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x44ab13e2 device_move +EXPORT_SYMBOL_GPL vmlinux 0x44ec2a04 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x4509aa86 ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x45234eea sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x4537ef07 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x459d607b xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x45a48eb4 dm_rh_recovery_prepare +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 0x4678f6c1 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x467b1391 dm_rh_get_region_key +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 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 0x47cd5b9b ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x47d8d51c scsi_nl_add_driver +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 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 0x48fddf21 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x498741c6 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49a58bfb crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x49d39d2e __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4a4dd2c9 sysdev_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x4aaeae30 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x4b1a2def kern_mount_data +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 0x4bddf2b9 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x4beebca0 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x4c27abd1 __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x4c316815 pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x4c6e51a7 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c820674 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x4cf3bf2b proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x4d0c1f92 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x4d328d22 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4d4ffe8e ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x4d7d8dfc ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x4d92036f fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x4d9d25c2 dm_rh_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0x4dad07e5 xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x4de1b378 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x4df11e80 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4e359984 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x4eb23923 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f993b28 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x4fb3dcb7 mmput +EXPORT_SYMBOL_GPL vmlinux 0x4fc56cce iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x50026b42 __module_address +EXPORT_SYMBOL_GPL vmlinux 0x5063a06f pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x50b319ce cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x50ba3bec acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0x50d1f870 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0x50d530c2 pm_runtime_enable +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 0x5105d3b4 xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0x5136023f disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x513d03ee blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x51b368d9 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x51c8eb6d da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x51d63c5b blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x52015d4b rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x52643f6c inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x529b3ce1 ata_dev_pair +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 0x53485d7c d_materialise_unique +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 0x53be329d __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x540eef8a register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x5441cad4 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +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 0x549feb97 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x54a987bd usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x54e9af02 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x550da5be ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x552fe54a scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x553134ad sdio_f0_readb +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 0x55d5c666 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x55f2580b __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x561c634a wmi_evaluate_method +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 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 0x56608217 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x5668f607 skb_pull_rcsum +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 0x56bce7e0 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x572fa04d inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x57380f59 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists +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 0x5877a546 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x590e9c0d ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x59292074 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +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 0x5a48fba2 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a8f245d crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x5aee5712 __mmdrop +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 0x5b52dcff sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x5b71bd2f crypto_drop_spawn +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 0x5c3a680d ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x5c97b6d5 dev_change_net_namespace +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 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5d8af4b6 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x5d93b7fa pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x5d9fb581 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5deee05c skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x5df2b1d7 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x5e2bb01b __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x5e550562 crypto_register_instance +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 0x5f7d529c bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x600bd376 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x6028706d eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x60555ddc blk_rq_check_limits +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 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x6129c621 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x61710210 xenbus_map_ring_valloc +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 0x61de88a0 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x61e9a973 cpufreq_get_measured_perf +EXPORT_SYMBOL_GPL vmlinux 0x6210df48 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x621ffdb7 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x625b0cc9 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x62743201 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x627a705f rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x62cc2e6c hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0x62e50d98 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x62eaae54 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x63122610 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x63a6bc6d ring_buffer_read +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 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 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 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x662afbd6 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6665056f platform_device_register_data +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66a3a931 scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x6770807c ata_eh_qc_retry +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 0x67fcd1d1 securityfs_create_file +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 0x68790129 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x688281b3 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x6885d93a inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68ad4a38 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x68fc5988 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6924f647 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x6925a382 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x694617b7 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x696201ca acpi_bus_trim +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 0x6a4ee150 ipv6_find_tlv +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 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b5f0e9e default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x6b74f52c scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x6b81432a macvlan_handle_frame_hook +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 0x6be38b18 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x6be62dfd probe_kernel_read +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 0x6c654e1a cpuidle_enable_device +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 0x6d24f936 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d3adc8c xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0x6d65b6df sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x6d6ca255 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x6d823192 inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x6db7ec90 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x6dc0b8a0 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x6dc502da fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x6dc8771d sync_page_io +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 0x6e061fc2 dm_put +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 0x6e8714f5 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f4ff930 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x702ba4c1 da903x_clr_bits +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 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 0x7150aa45 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x7169e9c0 acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0x71b15461 pid_vnr +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 0x724ca9b2 screen_glyph +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 0x735a2777 ata_acpi_cbl_80wire +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 0x745e2759 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x74612b3d ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x747be397 driver_add_kobj +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 0x7547f51f ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x754a4613 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7569cf03 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x757fa842 raw_hash_sk +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 0x75b79aa6 inet6_csk_bind_conflict +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 0x76546d35 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x765ddf37 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x766669ea xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x76864d96 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x7692f397 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x76a9801a ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x76ba4fab disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x76d571d3 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x77104d8a regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +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 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 0x79261ade ip6_local_out +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 0x794e13bf scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x7977ca4b crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x79ab1776 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x79b015c2 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7a26be88 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7a50940c tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x7a70d095 ata_host_detach +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 0x7b2ae949 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x7c5e4823 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x7cbbdc1f da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7ccd8705 ring_buffer_free +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 0x7dccc9c7 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x7dd58e37 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7df10579 blk_queue_rq_timeout +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 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 0x7f305cef find_vpid +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 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 0x80b0f492 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x80ddbc87 rtnl_kill_links +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 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x8152f705 inet_csk_reqsk_queue_prune +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 0x822d7db9 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x825cab22 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x82608327 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82a5d7f9 inet_twsk_schedule +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 0x831db88a rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x83323c49 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x835376bf platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x8354342a simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x83970d5a ata_base_port_ops +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 0x84154cbe ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x842bbc51 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x855aa938 ring_buffer_record_enable +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 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 0x86d5a940 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_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 0x87ad0c3a ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x87c148f5 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x87c62ced security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8854650f dm_rh_get_region_size +EXPORT_SYMBOL_GPL vmlinux 0x885c63b6 pciserial_remove_ports +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 0x88c1f4d7 fib_rules_unregister +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 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x8928139f sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x8967450c ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x89bc2aac ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x89f671c3 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x89f73b3c crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x8a12daea ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x8a227156 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x8a3f8e8f crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8a4ba082 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8a61b2af skb_segment +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 0x8a9d982e tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x8ab3ad80 pm_request_resume +EXPORT_SYMBOL_GPL vmlinux 0x8adf3014 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x8b39cf9d unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x8b51df74 register_user_hw_breakpoint +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 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 0x8cdc6078 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x8d0ddbb7 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x8d2566cf wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x8d263203 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x8d45eefb xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x8d56cb01 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x8d7c5d83 shmem_file_setup +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 0x8e38842c spi_alloc_device +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 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f7d851d dm_send_uevents +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 0x8fb5c044 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x8ffcbc44 sysfs_get_dirent +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 0x90370592 dm_rh_dec +EXPORT_SYMBOL_GPL vmlinux 0x9059cead fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x906869cc pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x9068ff3b __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x9074ed7c dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x907a1cf4 dm_rh_region_context +EXPORT_SYMBOL_GPL vmlinux 0x908a0b84 tcp_twsk_destructor +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 0x90c60045 ip6_dst_blackhole +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 0x911f0b65 dm_rh_bio_to_region +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 0x91d293fe pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x91d54c41 gpio_free_array +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 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x93260715 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x9342e5e4 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x93861eee crypto_hash_walk_first +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 0x944399a2 dm_disk +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 0x951531ac rtnl_put_cacheinfo +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 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x9595c503 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x95b65302 sysdev_unregister +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 0x96aea3e6 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x96c78f96 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96d97d8f inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x9733b017 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x974ad6b0 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x9761df8d debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x979dfb3e srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x97c3cba1 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x97d8ac58 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x97e6d716 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x97ea8f51 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x98099e88 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x9809da9b platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x9883b121 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x98d04b21 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9923b7fd firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x996e1ac6 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x99c1a662 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x9a02b4c0 dm_rh_start_recovery +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a4d1034 idle_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x9a4efa4c ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x9a9d4675 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x9b1535bd dm_rh_get_state +EXPORT_SYMBOL_GPL vmlinux 0x9b575b8a srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x9b993a85 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x9b9a371b ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9c0a7bf9 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x9c2ed62d leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x9c439216 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x9c529e00 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9ce2495a tty_prepare_flip_string_flags +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 0x9d555a12 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x9d825809 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x9d9aa1c3 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x9e026d6c posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x9e475367 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x9e5450ab sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x9e5aec32 user_read +EXPORT_SYMBOL_GPL vmlinux 0x9e5dc001 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x9e6ad5c0 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f92db31 acpi_processor_set_pdc +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fdcac6b kick_process +EXPORT_SYMBOL_GPL vmlinux 0x9fe14ca5 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x9fed952f usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xa01f75df dm_register_path_selector +EXPORT_SYMBOL_GPL vmlinux 0xa062ffd0 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xa07746c1 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xa079ed24 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xa07a42e7 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xa08e0fa1 inet6_csk_xmit +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 0xa1675131 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0xa17915e7 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xa19ef38e do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xa209ea7a usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0xa21c68dc klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xa2bb0e30 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xa2d6d18b disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa3179c62 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xa33a7b49 ring_buffer_lock_reserve +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 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 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 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa5c3df46 ata_link_next +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 0xa6647379 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xa6ba77bf crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xa6bae256 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xa761efa8 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0xa7809bdf usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0xa7b8601f crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xa7bf976c ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0xa82db118 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa869ce3c spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xa869f8ef inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0xa88ac06a add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xa89935ed tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0xa8a5b653 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xa8a9ab78 platform_bus_type +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 0xa92d9a52 dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL vmlinux 0xa957fbad platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xa9c02a0b register_net_sysctl_table +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 0xa9f3f261 net_ipv4_ctl_path +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 0xaad43656 scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0xaadddf21 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xaade7b2f drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0xaae8a96a sata_link_resume +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 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 0xab9e2920 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xab9e8c45 user_match +EXPORT_SYMBOL_GPL vmlinux 0xabcb8d16 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0xabd93029 inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xabdedac0 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xac5e102d pci_sriov_migration +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 0xacdac6af ata_sas_queuecmd +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 0xad255cbe inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xad499ca9 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xad5dc373 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad8f2ab6 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0xada7557d ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0xadae6e3c sock_prot_inuse_get +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 0xae346981 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xae69abff led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xae75c4ed inet_csk_compat_getsockopt +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 0xaef51cf9 ata_cable_80wire +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 0xaf7354c6 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xafc64fb8 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xafe845e8 iommu_attach_device +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 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 0xb10eb9d3 ata_std_postreset +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 0xb1bc6d6a cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0xb1c55406 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xb21a9813 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xb26875f0 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xb28d3499 xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xb29708d8 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xb2a9f693 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0xb2b5bba9 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb2f106ec fb_deferred_io_init +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 0xb33dca9b ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xb38b05d0 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write +EXPORT_SYMBOL_GPL vmlinux 0xb3ec8780 task_current_syscall +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 0xb55620f7 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5985be5 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL vmlinux 0xb5c98ac0 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0xb5e58a7d udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb5f07448 tcp_set_state +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 0xb686e404 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6b793ad shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xb6d5542e inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0xb6e7b582 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb7464005 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xb7527422 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb75c5a68 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xb76bc57e skb_morph +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 0xb847d0f4 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0xb868e730 usb_interrupt_msg +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 0xb948007d dm_rh_recovery_start +EXPORT_SYMBOL_GPL vmlinux 0xb94db510 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb9561687 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xba0882b5 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xba4167d3 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbaf75e7e ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb1c5231 ata_sff_prereset +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 0xbbfd6511 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0xbc3bdaf0 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbcded53e ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0xbcf0a134 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0xbd041963 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0xbd1b900b ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xbd230133 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xbd4f790a alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd768cb3 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xbd88827d i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0xbdbc32b4 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xbdc7bfb4 xfrm_audit_policy_add +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 0xbe2d411e bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0xbe546e23 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xbe608951 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0xbe7c7193 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbead4956 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xbeba8c6f acpi_pci_find_root +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 0xc03bdc64 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xc0563f72 sysfs_remove_files +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 0xc0d1fdbc hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc0d518a9 fuse_conn_kill +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 0xc1317a5a scsi_bus_type +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 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 0xc2575627 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0xc257e4b3 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc2645623 set_cpus_allowed_ptr +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 0xc33727d2 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xc34ad7b2 ring_buffer_time_stamp +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 0xc3a6615c ring_buffer_empty +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 0xc4b80f04 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xc4ce6189 idle_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc506e4d8 inet_unhash +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 0xc5a2d31b ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0xc5ab309c ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xc60f4dd4 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc622c1e3 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0xc62a764c device_attach +EXPORT_SYMBOL_GPL vmlinux 0xc648b345 platform_get_irq +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 0xc7b102aa inode_add_to_lists +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 0xc89691df __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xc8a29d54 xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xc8cd2e24 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0xc8e9eb75 sata_scr_valid +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 0xc95de0ac tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xc9addf61 get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0xc9c1d56e dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xc9c70863 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL vmlinux 0xc9d84444 md_do_sync +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 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcacca77d __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xcad6ebc3 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xcaebf1ad scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0xcafb0754 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0xcb04f8f1 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0xcb49f836 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xcb558a00 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xcb66aa3a free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xcb79b9ee find_module +EXPORT_SYMBOL_GPL vmlinux 0xcb9ed4a5 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +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 0xcd078a46 ata_timing_compute +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 0xcdd5a894 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xcdec6973 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xcdedc133 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xcdffb8af regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xce080082 swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0xce1edccc __sock_recv_timestamp +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 0xce8dc736 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0xcea36f01 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0xceb68dcd rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xcecb49e9 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xcefef846 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xcf5d7217 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0xcf733bce ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcf8182a7 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcfe2cea1 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0xd00dc4a3 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd0428c95 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xd054f1ad pm_request_idle +EXPORT_SYMBOL_GPL vmlinux 0xd06827d8 sysfs_add_file_to_group +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 0xd0dadd57 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd103bea4 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd15d4847 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd16e2833 tty_perform_flush +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 0xd2a92917 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd2d4d881 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL vmlinux 0xd3166cfe perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd337c637 inet_hash +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 0xd3a1fc13 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0xd3d01a41 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0xd3d340b0 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0xd3dc57c4 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd42c894c ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xd488b549 scsi_unregister_device_handler +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 0xd5435ca4 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0xd54f49f7 pci_assign_unassigned_bridge_resources +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 0xd60c0151 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0xd6314211 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xd643bd6f mmu_notifier_unregister +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 0xd7229425 css_id +EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd76f9b06 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +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 0xd7faf5b5 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xd8021a21 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd84acec6 raw_seq_start +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 0xd89f1cde tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xd8c585f7 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xd91b8d91 regulator_get_exclusive +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 0xd9d622bf dm_rh_delay +EXPORT_SYMBOL_GPL vmlinux 0xd9e30833 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xd9fe4c4a debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda29f8b0 wmi_set_block +EXPORT_SYMBOL_GPL vmlinux 0xda37cb61 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xda5ba1bb scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xda5d99f6 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xdad14982 do_add_mount +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 0xdb520763 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdb841be8 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xdc1ebca9 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xdc1f8f2e register_timer_hook +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 0xdcf7235a hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0xdd1893fd devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xdd3ca60e anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xdd486d8a regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0xdd82a953 mce_chrdev_ops +EXPORT_SYMBOL_GPL vmlinux 0xdde147ec add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xdded25c0 ata_scsi_simulate +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 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 0xdf84b8ba ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0xdff9c53d cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0xdffd2e3c uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe0ce4984 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL vmlinux 0xe0f433f4 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xe113f493 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xe19255ea dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xe1c9799c __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xe1d0c536 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xe1e5e11f class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xe1ec68a4 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xe23a42f9 each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2a1158f class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xe2da3eb8 register_wide_hw_breakpoint +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 0xe3efa386 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xe4428977 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xe4866c6d xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xe4a2d6ad sk_detach_filter +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 0xe57cb3d9 __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe6024054 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport +EXPORT_SYMBOL_GPL vmlinux 0xe61d5fe5 console_drivers +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 0xe68507f7 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0xe6a7c46d sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe6f47e98 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +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 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe8390852 tc35892_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe86d206f hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0xe8ace109 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xe8be895e register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0xe8cb16ec __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xe93b736a platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9440c17 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xea00671a inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea121469 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea2ec8ba rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea544c18 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xea5c815a dm_rh_inc_pending +EXPORT_SYMBOL_GPL vmlinux 0xea7982bf blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xeab222ba pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xead3b64d pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg +EXPORT_SYMBOL_GPL vmlinux 0xeb2b7f67 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xeb4531fd rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xeb626442 ring_buffer_entries +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 0xec3c6ffe cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xec543e11 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0xecc093c0 dm_rh_flush +EXPORT_SYMBOL_GPL vmlinux 0xed0da4b9 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xed5dc528 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0xed68910e ata_cable_40wire +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 0xee7a917f dm_rh_recovery_end +EXPORT_SYMBOL_GPL vmlinux 0xee7dcdd9 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xef0b97d5 relay_close +EXPORT_SYMBOL_GPL vmlinux 0xef1c2c43 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef2be47a fib_rules_cleanup_ops +EXPORT_SYMBOL_GPL vmlinux 0xef4a7bfe crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0xef51e5b9 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xef5e8c32 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef9d66d6 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xefd4e66b wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xf0418136 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0xf0680cd5 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf0734909 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0xf080f5b7 ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xf0c6e3eb tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xf0ef9b8f sk_clone +EXPORT_SYMBOL_GPL vmlinux 0xf106504e ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xf10bc06a usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xf11a52c0 ring_buffer_reset +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 0xf22a94ed uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xf23121dc __inet_lookup_established +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 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf35a004f ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf35b2f7a class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xf395b63e cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0xf39efaca kobject_uevent +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 0xf4506104 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0xf455da64 ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf4922989 mnt_drop_write +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 0xf4cb8fb8 fs_kobj +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 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5c09718 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0xf6129941 dm_underlying_device_busy +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 0xf6fdde2f ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0xf717c2de usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xf72292a2 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xf73861b3 gpio_export_link +EXPORT_SYMBOL_GPL vmlinux 0xf7558a6c vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xf76384d4 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xf7af13ca ata_link_abort +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 0xf80a9e80 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0xf818fb5e fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0xf85c612d map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf898f1eb sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0xf8b22dc2 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf9156526 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0xf91a50f6 ip6_sk_dst_lookup +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 0xf990164b inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0xf99a10af hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9ffd54a scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa0374d6 dm_rh_stop_recovery +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +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 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb69f327 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0xfb78a086 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xfb8084da usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xfb87e0cf __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xfb882fb7 wmi_query_block +EXPORT_SYMBOL_GPL vmlinux 0xfb954507 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0xfba929de tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xfbb74668 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xfbbec4c0 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0xfbdafe26 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc15ae96 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0xfc387e0e blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0xfc5607df tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xfc7b6098 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfcaf3ab8 xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xfcb3953a set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xfcbee8af ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xfd13468a elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfd2008b8 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0xfd3d0581 ata_acpi_gtm_xfermask +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 0xfd8f28cf platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xfd9b8d92 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0xfdb70c93 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xfdc839d8 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0xfdcdf605 pciserial_suspend_ports +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 0xfe49a928 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xfe6cbb0a ata_host_register +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 0xfed6444c pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xfef5b152 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xfefa2adb input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0xff0af65f dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0xff0b21b7 md_allow_write +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 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffa9ed57 inet_hashinfo_init --- linux-2.6.35.orig/debian.master/abi/2.6.35-28.49/i386/generic-pae.modules +++ linux-2.6.35/debian.master/abi/2.6.35-28.49/i386/generic-pae.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 +dell-wmi-aio +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-28.49/i386/virtual +++ linux-2.6.35/debian.master/abi/2.6.35-28.49/i386/virtual @@ -0,0 +1,11282 @@ +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 0x33e9995a kvm_cpu_has_pending_timer +EXPORT_SYMBOL arch/x86/kvm/kvm 0xac0da75b 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 0x434627a4 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0xc061b2ff 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 0x00133c8b drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x06e33c1b drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e3d3e09 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fc546c7 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x103c2be8 drm_core_ioremap +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 0x12f22572 drm_lock_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x16377d59 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a85cbb9 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ad7e59c drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1cca39df drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1fa43ac1 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24cfdaf8 drm_lock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25577f83 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x270f8e71 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2718fed6 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27e3e153 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2849dab7 drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x293c80ef drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a32ea4d drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ec53530 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3189f143 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32a6eb2f drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33311877 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37bd8def drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38b269e3 drm_addbufs_pci +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 0x3e2fc27b drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x404b3efc drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x441b15bf drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44ebdc98 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x45bdd606 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x463f7e72 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46887a66 drm_sysfs_connector_add +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 0x4adc6528 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c345627 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53f3c3af drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ac2235a drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b39022d drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5bc1d275 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5bf85573 drm_get_resource_len +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d6e62bb drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d521d18 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc3e101 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ff9f915 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71dbc10c drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72556926 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7328e07a drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x777c2395 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x78107d1a drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x78e30cae drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1b43cd drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e04fae5 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e41646b drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e7d8b51 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f9af353 drm_get_drawable_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8288c0d9 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82ef26fe drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x83371a63 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x862deed8 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x89c6f880 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8bb685c7 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c61db06 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ce571b5 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ceed987 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ed58686 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f9e35d6 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x90d3351d drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x926d74dd drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x967852d1 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9903f12c drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ce8d78d drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d0b95c2 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d6876ec drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9fd52882 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0b2617f drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa13926f2 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6324b60 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa90d1f33 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa97a376e drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaba6cab9 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xabb1c144 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad4eaa5c drm_get_resource_start +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae75e970 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb03fa10a drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0d23c78 drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb108f598 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4f8b867 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5c92613 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb92036ee drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd154563 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbefea44f drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc25d5d4a drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc37dd6de drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5806d02 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6999a7e drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc825c833 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8411a2f drm_sg_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc93b1cdd drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca28272e drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca385dd0 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcad1b13c drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc755d8a drm_agp_chipset_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf2aa3af drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcfb76ea6 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd23be224 drm_init +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 0xd415ef10 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd486367e drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5d34f40 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd63d6819 drm_core_get_map_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbf018bd drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbf98fa9 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdef21ffc drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf2efdd6 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe22ee7de drm_i_have_hw_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe4e46a12 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5721e4c drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7cd880d drm_agp_enable +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 0xea2a394f drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xef27db48 drm_get_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xef92887d drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0xef990bee drm_mode_config_init +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 0xf42a2b26 drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4ca1876 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4cded88 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf585f206 drm_put_dev +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 0xfae8d014 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdaed998 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x09a6635e drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x12bd6b8d drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1f481cf4 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2eba006e drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x31a3c2dc drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x33e35d16 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x35d2524c drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x411096db drm_fb_helper_fini +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 0x55743996 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x69285034 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7539194c drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7976150a drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8b37a3ef drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9b6d2e46 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa1d84d47 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xadb402e5 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc58d6e5d drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc99c32c9 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcaa39e8c drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd0cbb135 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdbcf1425 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xeac4d134 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xeb7a541c drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xefc6caa6 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf081b081 drm_kms_helper_poll_disable +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 0x7e4eaa67 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x89ec0c6a rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 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 0x00461664 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0d2e7018 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1f70fb18 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2e57c5f5 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x404e9366 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4414a7ba rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x47db8274 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x519690fb rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x61e1eafb rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6eaf8f79 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7e5e5717 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa4e40b00 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbf0e5560 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc3d14000 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc8023f8e rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd2734142 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd46679d7 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe3f36a50 rdma_init_qp_attr +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 0x4ebdeab7 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x791f87fb mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x84c3c43f mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x86d2b0e0 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x08753e64 mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x3ac8c722 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 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 0x18b05fa2 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xba6fe699 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xbf222918 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 0x020b6cf0 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x02e528a2 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x04efa709 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x258e5224 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x25f3c929 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b6385aa mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2fa55f46 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x34b710cf create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x354d0e9c confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x37eee51a mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3cf3bf1b mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ef163b9 mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x44b62dee mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x543bca69 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5ba008f1 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x76ee63a7 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8459d386 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x86a71d7a get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9900a112 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x99de25d7 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa11d0300 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa6c622ac mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa986f7dc mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xab8bddb6 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbd22830f recv_Bchannel_skb +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 0xfdebde75 recv_Dchannel_skb +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 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 0x777b40b9 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x805b87b0 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 0x02c84b5a mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x050c4016 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0ecc2d95 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1024ec63 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x13af0887 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1e2f5d7c mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x28307006 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2a329746 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x318338a1 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x32cb9be3 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3971a26e mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x45cc9052 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x57fdec61 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6f1201fc mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x755f4830 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7ae14adf mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8194d532 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x81d23c0a mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8caaa31c mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbc45f21d mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc2a6c6eb mpt_Soft_Hard_ResetHandler +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 0xdd9e403f mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdfdacc14 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe4ad81e2 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe8bb55b0 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe98deffc mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf76d12c3 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfae694f1 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfbb2f2f7 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1255a1ad mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x203ca5e6 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x343e2fd7 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x37c246f8 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3ad9b9bf mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3f491f6a mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x49f8b986 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4b374294 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6a517ddc mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7014f29b mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x801e3260 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x80295d43 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x88643a86 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8a0c073a mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x90e87f58 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x963d22f5 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9e7ba6ae mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa1d433e2 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb1aa4cbb mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcb1ed7fc mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd4026f0e mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xde4e99ae mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe7af0cd7 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe9bdeb1a mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf53ea1ef mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfa8b7b59 mptscsih_slave_configure +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 0xe16357da 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 0x7f5376e5 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x 0xe688ef29 bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x077fe0fb cnic_register_driver +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x021e56fc cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x037d4c81 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1484d288 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1eb92ac9 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2314244a dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3af9e0b5 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4494535f cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5d6c6c75 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5e346274 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7107df2f cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x736b148e cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x992bfffa cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa8105ca3 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd4929dc0 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf1e72d53 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf96c1b5f t3_l2t_send_event +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 0x4fb7fe5d cxgb4_pktgl_to_skb +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 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 0xb8fac7c6 cxgb4_ofld_send +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 0x283cde90 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0x8f6d9005 register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xfc16c0a9 pppox_ioctl +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 0x10c78988 z8530_dead_port +EXPORT_SYMBOL drivers/net/wan/z85230 0x189f42f9 z8530_sync +EXPORT_SYMBOL drivers/net/wan/z85230 0x213abac6 z8530_interrupt +EXPORT_SYMBOL drivers/net/wan/z85230 0x3aa8e269 z8530_shutdown +EXPORT_SYMBOL drivers/net/wan/z85230 0x4c6b87d7 z8530_describe +EXPORT_SYMBOL drivers/net/wan/z85230 0x5cd24d29 z8530_hdlc_kilostream +EXPORT_SYMBOL drivers/net/wan/z85230 0x5fff7816 z8530_sync_dma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x63be243b z8530_init +EXPORT_SYMBOL drivers/net/wan/z85230 0x7b71cb1a z8530_channel_load +EXPORT_SYMBOL drivers/net/wan/z85230 0x7fe32a5e z8530_null_rx +EXPORT_SYMBOL drivers/net/wan/z85230 0x8786d58a z8530_sync_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x9899edf1 z8530_sync_open +EXPORT_SYMBOL drivers/net/wan/z85230 0xa62381a4 z8530_nop +EXPORT_SYMBOL drivers/net/wan/z85230 0xbf381223 z8530_sync_txdma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0xe3d80064 z8530_hdlc_kilostream_85230 +EXPORT_SYMBOL drivers/net/wan/z85230 0xe6c19915 z8530_queue_xmit +EXPORT_SYMBOL drivers/net/wan/z85230 0xec1fab59 z8530_sync_dma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0xfe9c8053 z8530_sync_txdma_open +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 0x155f8294 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x193bf5c9 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1b527dee libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x207ddeb1 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x34d0d327 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3852137e libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x481e567d libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6e524be8 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6f158bac libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x79ac11d7 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8a995c29 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8d7536c0 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb35fde47 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbc8d7a30 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc0e6e98f libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc7b556aa alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdcb702da libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe26c9fc2 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe48c2df5 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf07cf750 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf5bfa90b libipw_freq_to_channel +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 0x1d7308a2 NCR_700_release +EXPORT_SYMBOL drivers/scsi/53c700 0xc36f2129 NCR_700_detect +EXPORT_SYMBOL drivers/scsi/53c700 0xf13d9adc NCR_700_intr +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00cf1d1d fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x16f616cd fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x45aee64e fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5aa10977 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7b5a519c fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x81298b5e fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa508efa3 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x07c780b5 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x169b8ae7 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x187c1c00 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x21779bd7 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22ea1d45 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2a4ec119 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3b70cd4d fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x41647453 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4afcb07b fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5fd3884d fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x610f439c fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6f7a909b fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x78c5e87a fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7a1cd249 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x89d5ccf8 fc_vport_setlink +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 0x8e29aa15 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x933fe60d fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9f83b44d fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xab8fbc2c fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xacfab10d fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xba099266 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbb461ddf libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc2f374d1 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc9b9459b fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xca562b51 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb3bf547 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb85207c fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd3be1fc3 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd5748851 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdf46d4d3 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe20804b4 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe2c1afdf fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe337a08d fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe4f7e4a1 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe6cf8af6 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xee3ac109 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf7da31c6 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf8373f6c fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf8e1007e fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfd72a9a2 fc_slave_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 0x7c81ed1a mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x060d95a4 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1caf902c osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x206db073 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x28970c73 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2f2c53d7 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x328327dd osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4586ca12 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x49e31c1c osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4b1f533a osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5106c5c8 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x533fc782 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x578b01d5 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x597a5ab6 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x63bc2503 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x73947ff8 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7a907028 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7e146450 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8112932a osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8d79e8e2 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9f2c6be6 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa714e43a osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb6598a77 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb74dab05 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbd14d5e4 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbf0ed8c2 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc16ae209 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd07da6a0 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd2d2b8db osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe7cd0aed osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe92178ed osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xea49475e osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf2f3a4c9 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/osd 0x03e0d6d4 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x22593701 osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x4e73445c osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x9eca4621 osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0xe4ffec3a osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xf04a3c4a osduld_device_same +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x31aa7ddb qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x99c90f2f qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xaf2a14dc qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdae4b9fc qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdda22c12 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xea8275c1 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x25ca8e03 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0x7d6a12bc raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xe652d9a9 raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00e1d8e9 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1a159d1b fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x22b04829 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x22fbb53d fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x391c8911 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x42e5663f fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4dd73452 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5571caba fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x71f3dfad scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x83959775 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x852e7d64 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8f49ad96 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd15eca66 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0e031bcd sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x15fd2193 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x21d61a0c sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x21e1011c sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2ac223b2 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2b9e99fd sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x381459ce sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5052a8ed sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x54a016f8 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5b4d437b sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5e9716f3 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x69250f69 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x774f2d4e scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x78e698a4 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8ac081cd sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8d8076ba scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9902ab9a sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xad15fe6b sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb8570130 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb916e4fa scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbb1a9f96 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbbb834c0 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc0cc6a83 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc9bc40d1 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdad1c5fe sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfff11b4b sas_read_port_mode_page +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 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 0x2499fbe8 ieee80211_rx_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 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 0xcedb7832 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xda6f164e notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdc521588 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdcaf7d37 ieee80211_stop_scan_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 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/staging/vme/vme 0x0772338f vme_bus_type +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 0x18d2f4c5 vme_dma_list_add +EXPORT_SYMBOL drivers/staging/vme/vme 0x1c23232b vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x1e87b8cf vme_irq_handler +EXPORT_SYMBOL drivers/staging/vme/vme 0x2be058ef vme_lm_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x310a0423 vme_unregister_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x361b91c0 vme_register_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x382e67e9 vme_slave_request +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 0x59b92ab3 vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0x6259fc62 vme_register_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f vme_dma_pci_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x67d10ea5 vme_slot_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x76bab4d4 vme_master_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x7797a741 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x7fde2edb vme_master_read +EXPORT_SYMBOL drivers/staging/vme/vme 0x885546e7 vme_dma_list_free +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 0x99e51ae6 vme_irq_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/staging/vme/vme 0xa96a2aca vme_irq_generate +EXPORT_SYMBOL drivers/staging/vme/vme 0xb7b108e4 vme_irq_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xb9659459 vme_master_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 0xd797b9a5 vme_master_write +EXPORT_SYMBOL drivers/staging/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xe4f65634 vme_dma_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xe60cbb2f vme_master_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xe61b1e0b vme_slave_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xe693a6ce vme_get_size +EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xedf6687d vme_dma_list_exec +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 0x020ac76e usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x03b978d4 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x06ae7077 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x15f8394d usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x17877bf5 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x18044aa8 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x531f2345 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6cc804ec usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6dc44f62 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x89a04040 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9213d5ba usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x99c89d32 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc23a3776 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xcc7b421f usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x6a2a36d9 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xd6920fad usb_serial_suspend +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 0xd761651a w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xf09e1d1e w1_remove_master_device +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop +EXPORT_SYMBOL fs/configfs/configfs 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 0x07789542 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x2f4366a4 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0xc5ce1fd0 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xe54cb1d8 atrtr_get_dev +EXPORT_SYMBOL net/atm/atm 0x26834fcf vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x4adb5d09 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x7d72361c deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x80dc99d6 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x86f719b4 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x92ae3170 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xa419f81b register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xb9d7a826 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0xcff14666 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0xe201f843 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xe531cf40 atm_charge +EXPORT_SYMBOL net/atm/atm 0xf199b7e8 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x26e6c235 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x4cbd37e0 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x6192cec7 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x67fe3ad0 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x82036e5f ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x86a2dbda ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd0a3e815 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xf7c5e797 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0xf8571ae2 ax25_hard_header +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0036b5f3 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x03fca5fe hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0bac657f hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x31f80c5f bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x39d9f4b5 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3bc1dafd bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3d3d8d25 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x434c1f30 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4ce60c71 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4e4f6506 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5d19133d hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5e8168c0 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6f532490 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7134fde2 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7d17bbdc bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x839352ef hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8686d035 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x88424834 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8aa63367 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x95a26578 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9971e4ef hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x99d2bb44 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa239d081 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa4e8021e hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa6d7af12 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xac2ca9b6 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbb8b24a2 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc5d5a487 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc7a2b18b hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcb932ac4 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd8dc8c2d hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfffbf77c hci_send_acl +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0xfee458c8 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x7b25fe4f ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xc05652e4 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd2ea8ee0 ebt_do_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 0x07d046dd can_proto_register +EXPORT_SYMBOL net/can/can 0x3967f5cb can_rx_register +EXPORT_SYMBOL net/can/can 0x483e9456 can_send +EXPORT_SYMBOL net/can/can 0xa3fd5a05 can_rx_unregister +EXPORT_SYMBOL net/can/can 0xa775dc0d can_proto_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x04cebd6b ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x23b31ac3 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x389ba988 wpan_phy_unregister +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 0x52909c0a ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc07ac4ce wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd4710ed8 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd699739d ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe0178bb5 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe427012e ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf8d8a11f wpan_phy_free +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x18bf11d3 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x403943e9 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xcf7f2d2e arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x53a2dc53 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x9e13f8bb ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xf36a015d ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x13fa199f nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x414bc4ae nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x4bac5fc1 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x5c3cae15 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x770d3288 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x947aefbc __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xdb914912 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/tunnel4 0x45158736 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xb07363c1 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x484405d4 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x7faeb966 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xc2d6e96e ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xcd4d3af1 ip6t_register_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x3ef0ab48 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0x5d3dd270 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x85af39e4 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x8dafe2f6 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xc1bfba09 xfrm6_tunnel_spi_lookup +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 0xd980df8e l2tp_tunnel_destruct +EXPORT_SYMBOL net/l2tp/l2tp_core 0xfcee9731 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x1adc0316 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x30073c7e lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x64af1e80 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x64eb2194 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x667d4e20 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x8e710d07 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0xc192b7ca lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xe126af35 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 0x008807b9 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0cc5b77e unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x397b68ea unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8406bcd7 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x97179859 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9fc9cae7 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb9e30c0f ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc2db716c register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd982e1f9 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe4cc0ee2 ip_vs_skb_replace +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe553a5e1 register_ip_vs_app_inc +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 0x113f0df8 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x27538978 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x5e0be0dc xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x5f2eb3da xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x92e174d0 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xa441177d xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xb4ee905c xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xc29d84b4 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xeed3eff8 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xf3e1ab7f xt_unregister_targets +EXPORT_SYMBOL net/phonet/phonet 0x04dc7896 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x53ef677c phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x853f28bb phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x91f3c9dc pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xb132e4c3 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0xc2531990 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0xe23266ef phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xf6689784 pn_sock_unhash +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x03636cbe rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1005dc27 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x13c2e0e4 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x152b6eeb rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x19959cc9 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x531c3183 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5e7982a1 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6e639639 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8b1a1455 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb0e76ed7 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb3e3adc3 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc8255a85 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xda68e14d rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe8332d7a rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf71b20ce rxrpc_kernel_send_data +EXPORT_SYMBOL net/sunrpc/sunrpc 0x81a8ba4e 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 0x13e10cd6 wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0x8dab55d3 wimax_reset +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 0x0af35dcd ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x0c800537 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x0ffa3ad0 ieee80211_amsdu_to_8023s +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 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 0x5a327926 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x5b29b11f __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x5b79b815 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x757dfee3 cfg80211_classify8021d +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 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 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 0xc9991b26 ieee80211_data_from_8023 +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 0x87d77635 dm_mem_cache_client_destroy +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x963207f7 dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xac45e3d7 dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xae529fea dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xd1db178d dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xe3e78326 dm_mem_cache_free +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x0005e68c sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x000a4f1b scsi_finish_command +EXPORT_SYMBOL vmlinux 0x001a561b cdev_index +EXPORT_SYMBOL vmlinux 0x002c6e53 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x0065e195 sg_miter_next +EXPORT_SYMBOL vmlinux 0x006624bf register_md_personality +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00adc5ba put_page +EXPORT_SYMBOL vmlinux 0x00bd9d31 add_timer +EXPORT_SYMBOL vmlinux 0x00ca80f5 open_exec +EXPORT_SYMBOL vmlinux 0x00d5311f in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00fe1327 tty_write_room +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x011d6453 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x012ccfe5 dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0x01300c99 skb_unlink +EXPORT_SYMBOL vmlinux 0x015ab1e1 __register_chrdev +EXPORT_SYMBOL vmlinux 0x0172eac0 udp_disconnect +EXPORT_SYMBOL vmlinux 0x017fb1e9 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0x018c3130 eth_header_cache +EXPORT_SYMBOL vmlinux 0x018df92a vfs_read +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01a77c86 blk_get_request +EXPORT_SYMBOL vmlinux 0x01b70ef5 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x01edc9d3 lock_rename +EXPORT_SYMBOL vmlinux 0x020e9ff9 phy_print_status +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x021973fb vfs_statfs +EXPORT_SYMBOL vmlinux 0x02273b98 poll_initwait +EXPORT_SYMBOL vmlinux 0x0231b9d9 mmc_detect_change +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x0257ce10 fput +EXPORT_SYMBOL vmlinux 0x025c3aea mca_device_transform_ioport +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0286eaca unregister_quota_format +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 0x02cf5d8c mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02e5f603 phy_sanitize_settings +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x02f9386d devm_iounmap +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 0x0385f02d blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0x03908da4 set_user_nice +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03e70f2b simple_transaction_read +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04035491 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x04676193 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x048d3a29 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x04b47ac9 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x04cbea67 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x04ced34b bio_integrity_free +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04f98474 journal_destroy +EXPORT_SYMBOL vmlinux 0x05037e9b xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x05200626 sock_wake_async +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x052e26fc unregister_cdrom +EXPORT_SYMBOL vmlinux 0x055a463e scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x05607b79 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x05804a57 set_binfmt +EXPORT_SYMBOL vmlinux 0x05c3df9d xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x05feddeb blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x060db1ab jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x060f75b0 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0639c01c security_path_truncate +EXPORT_SYMBOL vmlinux 0x06402764 eth_header +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x06927a48 audit_log_start +EXPORT_SYMBOL vmlinux 0x069a38db inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x06ab60c0 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x06c089b0 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x06d09796 vfs_create +EXPORT_SYMBOL vmlinux 0x06d0d71c truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x06d106f3 write_cache_pages +EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x07318f58 sock_alloc_send_skb +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 0x076439df scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x076fde14 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x077464e9 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x07760c1b idr_get_new +EXPORT_SYMBOL vmlinux 0x077a9086 skb_push +EXPORT_SYMBOL vmlinux 0x077f8b7c generic_listxattr +EXPORT_SYMBOL vmlinux 0x07874254 write_one_page +EXPORT_SYMBOL vmlinux 0x079481f3 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +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 0x07e0625e page_symlink +EXPORT_SYMBOL vmlinux 0x08173623 register_framebuffer +EXPORT_SYMBOL vmlinux 0x082b63b3 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x083030bc dm_dirty_log_type_register +EXPORT_SYMBOL vmlinux 0x083a57e2 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x08413d09 tc_classify +EXPORT_SYMBOL vmlinux 0x0844ffb0 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x0849794b pnp_device_attach +EXPORT_SYMBOL vmlinux 0x085cbb4e sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x0888bac7 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x089bb7db blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x08a9c00f redraw_screen +EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x08fd36fd cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x09009419 ppp_register_channel +EXPORT_SYMBOL vmlinux 0x0921ccc8 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled +EXPORT_SYMBOL vmlinux 0x0936f5e3 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x093e947e posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0x0944d7f1 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x09486b3a __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x09625dc2 mem_map +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x097a03a4 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x09845e7f kdb_current_task +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x099a8288 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0x09b2bf26 tcf_exts_dump_stats +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 0x09d8f60e scsi_device_resume +EXPORT_SYMBOL vmlinux 0x09f20dda idr_init +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a59da95 slow_work_register_user +EXPORT_SYMBOL vmlinux 0x0a8e3467 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x0a999c86 dev_uc_del +EXPORT_SYMBOL vmlinux 0x0ab84c52 generic_writepages +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0af13d7b bio_unmap_user +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 0x0b636253 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0x0b69997d pci_pme_capable +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b766471 sock_create_kern +EXPORT_SYMBOL vmlinux 0x0b7fc4da abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x0bad8ada fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x0bbdf305 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x0bbf5adb irq_stat +EXPORT_SYMBOL vmlinux 0x0bc13b05 simple_fill_super +EXPORT_SYMBOL vmlinux 0x0bcd575a dget_locked +EXPORT_SYMBOL vmlinux 0x0bcfd96a phy_detach +EXPORT_SYMBOL vmlinux 0x0be0f8ce tcp_poll +EXPORT_SYMBOL vmlinux 0x0be6a591 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x0beee786 pipe_unlock +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 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c8e3f7d tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region +EXPORT_SYMBOL vmlinux 0x0ca9ee50 dm_io +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cc7f956 edac_mce_register +EXPORT_SYMBOL vmlinux 0x0cf4daa9 pcim_iounmap +EXPORT_SYMBOL vmlinux 0x0cf50de5 inet_put_port +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 0x0d512a79 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d74331f input_event +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dbf061e inet6_ioctl +EXPORT_SYMBOL vmlinux 0x0de8d85e eisa_driver_register +EXPORT_SYMBOL vmlinux 0x0e01d790 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x0e05db5c framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x0e1534f1 sk_reset_txq +EXPORT_SYMBOL vmlinux 0x0e174aa7 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x0e311cff security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x0e346d41 dev_mc_init +EXPORT_SYMBOL vmlinux 0x0e43fd18 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x0e51a523 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e57c790 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x0e595ace tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x0e5b012d pci_clear_master +EXPORT_SYMBOL vmlinux 0x0e5c6528 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x0e5dfa50 eth_change_mtu +EXPORT_SYMBOL vmlinux 0x0e5e6719 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x0e63e1ba __secpath_destroy +EXPORT_SYMBOL vmlinux 0x0e652689 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x0e6671ae pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x0e707ea4 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x0e75663a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x0e8fcfb5 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x0e9c599b abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x0ed38935 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x0ef12fbf eth_validate_addr +EXPORT_SYMBOL vmlinux 0x0f03267b kmem_cache_name +EXPORT_SYMBOL vmlinux 0x0f18ca85 unregister_key_type +EXPORT_SYMBOL vmlinux 0x0f531868 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x0fa947f0 lease_modify +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb15b15 __seq_open_private +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0fdd5d87 bio_kmalloc +EXPORT_SYMBOL vmlinux 0x0fec09d9 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x1003b66a ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x100e5886 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x100fc5cc bio_copy_kern +EXPORT_SYMBOL vmlinux 0x10256aca clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x102c56de irq_regs +EXPORT_SYMBOL vmlinux 0x104af86d scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x104e3c4d tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x104f6160 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x1079fdce tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10db71b3 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x10eaee2f skb_queue_head +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x11410c6f generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x11551696 bitmap_end_sync +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 0x11d4d76e dst_release +EXPORT_SYMBOL vmlinux 0x11dafa40 elv_register_queue +EXPORT_SYMBOL vmlinux 0x11e61da1 __elv_add_request +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x11ffecc6 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x1213eb91 key_negate_and_link +EXPORT_SYMBOL vmlinux 0x1217cf6d bdi_register_dev +EXPORT_SYMBOL vmlinux 0x12360b79 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x123b9a32 remove_inode_hash +EXPORT_SYMBOL vmlinux 0x1257de9e rtnl_unicast +EXPORT_SYMBOL vmlinux 0x1265c834 pci_dev_get +EXPORT_SYMBOL vmlinux 0x1289ec07 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x12b03e9b follow_down +EXPORT_SYMBOL vmlinux 0x12bae370 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x12c16013 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x12cd0184 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12daf629 invalidate_partition +EXPORT_SYMBOL vmlinux 0x12e54ad6 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x131d4b21 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x131f5f04 brioctl_set +EXPORT_SYMBOL vmlinux 0x1336b3bc generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x133cade5 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x1345363c force_sig +EXPORT_SYMBOL vmlinux 0x137495b7 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x1378e714 acpi_video_display_switch_support +EXPORT_SYMBOL vmlinux 0x13861f7b udp_proc_register +EXPORT_SYMBOL vmlinux 0x138e3082 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x13ae023c pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0x13ae2e3c skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0x13c777eb prepare_creds +EXPORT_SYMBOL vmlinux 0x13cd7865 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x13dbe425 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x13df508d vfs_readlink +EXPORT_SYMBOL vmlinux 0x13e1f351 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x13e572e9 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x13f86a90 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x13ffc3c7 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x140a7c34 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x1428c4c6 dm_exception_store_type_unregister +EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x1436917d down_write +EXPORT_SYMBOL vmlinux 0x1445d24b tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x1454be8e ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x1454fd76 block_prepare_write +EXPORT_SYMBOL vmlinux 0x1475efc7 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x14a11a1e backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x14ce0ed4 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x14e7035c netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x14fb327c dm_table_get +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 0x1561dd89 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x1585d78f call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x15b1daa4 dquot_commit +EXPORT_SYMBOL vmlinux 0x15d8c8aa edac_mce_unregister +EXPORT_SYMBOL vmlinux 0x15dc16f3 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x163660ce load_nls +EXPORT_SYMBOL vmlinux 0x1640ec78 generic_unplug_device +EXPORT_SYMBOL vmlinux 0x16592094 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x167c04ba bd_release +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x16ae9729 kfree_skb +EXPORT_SYMBOL vmlinux 0x16d7e6cf check_disk_size_change +EXPORT_SYMBOL vmlinux 0x16e9af52 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x16fc0a19 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x170b2049 posix_test_lock +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x171b61a5 bio_copy_user +EXPORT_SYMBOL vmlinux 0x1762583e vmtruncate +EXPORT_SYMBOL vmlinux 0x176cc799 fb_blank +EXPORT_SYMBOL vmlinux 0x177c444d md_write_start +EXPORT_SYMBOL vmlinux 0x17ab6cd5 mmc_card_awake +EXPORT_SYMBOL vmlinux 0x17b03c1b acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0x17cd6488 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x17d0938f inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x180fb8db jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x18240668 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x1855ed94 blk_remove_plug +EXPORT_SYMBOL vmlinux 0x187324e9 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x18b6dd95 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x18ccd7e3 input_register_handle +EXPORT_SYMBOL vmlinux 0x18cef0ad tcp_read_sock +EXPORT_SYMBOL vmlinux 0x18d4d265 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x18ebf5a3 dquot_destroy +EXPORT_SYMBOL vmlinux 0x18f4c57e input_set_capability +EXPORT_SYMBOL vmlinux 0x19045ae0 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x190a8c19 vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0x19154d40 kill_fasync +EXPORT_SYMBOL vmlinux 0x1962eefa poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x19679afc jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x198acc8f filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x19907d2e locks_copy_lock +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19f364e1 set_create_files_as +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x1a20dcaf netif_receive_skb +EXPORT_SYMBOL vmlinux 0x1a410dfb vlan_gro_receive +EXPORT_SYMBOL vmlinux 0x1a43e8a3 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x1a4528e4 dev_gro_receive +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a5f31fc default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a71822d fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x1a756e68 pci_enable_bridges +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 0x1abb22ee secpath_dup +EXPORT_SYMBOL vmlinux 0x1ac193f8 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x1ac65640 tcp4_gro_receive +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1add40c5 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x1afcef5f vfs_readv +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b13f394 idr_pre_get +EXPORT_SYMBOL vmlinux 0x1b19f12f sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b6726c6 path_put +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9857b7 linkwatch_fire_event +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 0x1bc6861d skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x1bdbb681 dm_exception_store_destroy +EXPORT_SYMBOL vmlinux 0x1bddbb8a tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x1bf434f9 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x1c16e9fe gen_new_estimator +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c5f5333 journal_init_dev +EXPORT_SYMBOL vmlinux 0x1c7b6ccf n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1caf1c58 user_path_at +EXPORT_SYMBOL vmlinux 0x1cbaa025 find_inode_number +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cefa570 inet_shutdown +EXPORT_SYMBOL vmlinux 0x1cfe929e dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d40d1f1 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x1d4459e5 netif_device_attach +EXPORT_SYMBOL vmlinux 0x1d926c8d bioset_create +EXPORT_SYMBOL vmlinux 0x1da5e578 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x1dab795c dev_addr_init +EXPORT_SYMBOL vmlinux 0x1db4c067 dquot_drop +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dce3fee pcim_enable_device +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1ddbf70e redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x1de0de41 deactivate_super +EXPORT_SYMBOL vmlinux 0x1e036c98 acpi_set_gpe +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e2f4382 skb_copy +EXPORT_SYMBOL vmlinux 0x1e4b3288 igrab +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 0x1ee57574 scsi_register +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f2b1d57 input_unregister_device +EXPORT_SYMBOL vmlinux 0x1f2ee4c0 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x1f63d981 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x1f654378 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x1f7f4903 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x1f82612a __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x1f91af1d input_release_device +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1feac570 jbd2_log_start_commit +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 0x2036a98a mmc_host_enable +EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x20460972 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x2057c1df acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x20603ab1 napi_frags_skb +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 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x2096271c blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x20a3d28d dm_io_client_resize +EXPORT_SYMBOL vmlinux 0x20fc05b2 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x2113040e bdget_disk +EXPORT_SYMBOL vmlinux 0x2146d662 neigh_create +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x2178af0b rtnl_notify +EXPORT_SYMBOL vmlinux 0x21cc36ae proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x222c867a tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x228bf5b1 phy_connect +EXPORT_SYMBOL vmlinux 0x22ae925e blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22e746cc ab3100_event_register +EXPORT_SYMBOL vmlinux 0x22edf99d netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x23050e38 get_user_pages +EXPORT_SYMBOL vmlinux 0x230e0443 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x230e6d92 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul +EXPORT_SYMBOL vmlinux 0x233ff309 elevator_init +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 0x236bd34d netif_device_detach +EXPORT_SYMBOL vmlinux 0x237a4ead pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x2394afe4 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x23aa3a2e cdev_add +EXPORT_SYMBOL vmlinux 0x23b3402d dma_async_device_register +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23c9ac63 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x23dad437 d_splice_alias +EXPORT_SYMBOL vmlinux 0x23ec3d5d unlock_buffer +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 0x24486520 dput +EXPORT_SYMBOL vmlinux 0x244967c3 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x244cf9cc i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x24842c90 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x249ba0f3 tty_mutex +EXPORT_SYMBOL vmlinux 0x24ae27e2 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x24be150b uart_match_port +EXPORT_SYMBOL vmlinux 0x24bf01cf uart_register_driver +EXPORT_SYMBOL vmlinux 0x24c67c0d alloc_buffer_head +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 0x2511771d x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x251a5a28 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x25334961 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x253e9e70 phy_find_first +EXPORT_SYMBOL vmlinux 0x25451ce3 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25a6c701 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x25d0182a dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x25d81960 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x25e551ba tty_register_device +EXPORT_SYMBOL vmlinux 0x25eba9da __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x260751a2 tty_throttle +EXPORT_SYMBOL vmlinux 0x26086be1 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x261848cd bio_alloc +EXPORT_SYMBOL vmlinux 0x264315ff acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0x26437eb7 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x264a9b33 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x26518b68 idr_replace +EXPORT_SYMBOL vmlinux 0x26554bbf sk_alloc +EXPORT_SYMBOL vmlinux 0x26609130 wireless_send_event +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x268cc6a2 sys_close +EXPORT_SYMBOL vmlinux 0x26993ce7 acpi_bus_start +EXPORT_SYMBOL vmlinux 0x26d6c0b6 mempool_create +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x2701aa7b dev_txq_stats_fold +EXPORT_SYMBOL vmlinux 0x270d68ab mnt_pin +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x2745a092 vfs_symlink +EXPORT_SYMBOL vmlinux 0x2757058c netif_carrier_on +EXPORT_SYMBOL vmlinux 0x275ac4fc netlink_broadcast +EXPORT_SYMBOL vmlinux 0x2781cd6e gen_pool_add +EXPORT_SYMBOL vmlinux 0x27851133 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x2798521a nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x27af4e13 vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0x27b8fe7d jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27bec2fb tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x27c42b3f ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic +EXPORT_SYMBOL vmlinux 0x27e123ee ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x28145f1c i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0x28219e6c block_write_end +EXPORT_SYMBOL vmlinux 0x283bd479 bd_claim +EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll +EXPORT_SYMBOL vmlinux 0x287a59fb jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x2899aa1b __rta_fill +EXPORT_SYMBOL vmlinux 0x289a6fcb inet_bind +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28a80d27 neigh_lookup +EXPORT_SYMBOL vmlinux 0x28b715a6 isapnp_cfg_end +EXPORT_SYMBOL vmlinux 0x28bff440 hippi_mac_addr +EXPORT_SYMBOL vmlinux 0x28e633b6 set_trace_device +EXPORT_SYMBOL vmlinux 0x29084361 __alloc_skb +EXPORT_SYMBOL vmlinux 0x2914f7d9 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x291fc161 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x29342d32 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x294002ab input_close_device +EXPORT_SYMBOL vmlinux 0x294e2b25 contig_page_data +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x2976895b submit_bio +EXPORT_SYMBOL vmlinux 0x29bb2931 inet_accept +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29bd8669 con_is_bound +EXPORT_SYMBOL vmlinux 0x29f221e7 lock_may_read +EXPORT_SYMBOL vmlinux 0x29f343d4 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x29f93af9 llc_add_pack +EXPORT_SYMBOL vmlinux 0x2a0f43ce mark_info_dirty +EXPORT_SYMBOL vmlinux 0x2a2285ec _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x2a2ebfaa tcp_ioctl +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a44f6ad skb_seq_read +EXPORT_SYMBOL vmlinux 0x2a67698f pnp_find_card +EXPORT_SYMBOL vmlinux 0x2a77b91f sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x2a866ca6 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x2a976fa4 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x2a9ecffc generic_fillattr +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2ac28cea __neigh_event_send +EXPORT_SYMBOL vmlinux 0x2acf657d phy_attach +EXPORT_SYMBOL vmlinux 0x2af3d00b dev_close +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b234161 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x2b76b5c9 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x2b87100d block_truncate_page +EXPORT_SYMBOL vmlinux 0x2b8e8553 kset_register +EXPORT_SYMBOL vmlinux 0x2b98af3f nonseekable_open +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 0x2becd43f vfs_writev +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c2cf04b pci_read_vpd +EXPORT_SYMBOL vmlinux 0x2c2e589e remove_arg_zero +EXPORT_SYMBOL vmlinux 0x2c40a521 simple_link +EXPORT_SYMBOL vmlinux 0x2c44552c journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x2c472ae6 loop_register_transfer +EXPORT_SYMBOL vmlinux 0x2c7ef356 spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0x2c86b261 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x2c924415 path_get +EXPORT_SYMBOL vmlinux 0x2c97e050 dm_snap_origin +EXPORT_SYMBOL vmlinux 0x2ca20a99 elv_rb_find +EXPORT_SYMBOL vmlinux 0x2cc4d5c7 ip6_xmit +EXPORT_SYMBOL vmlinux 0x2cc6fa44 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic +EXPORT_SYMBOL vmlinux 0x2d0c66fd may_umount_tree +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d37342e cpu_online_mask +EXPORT_SYMBOL vmlinux 0x2d3b575f panic_notifier_list +EXPORT_SYMBOL vmlinux 0x2d7d3c81 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2db02d7c deny_write_access +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2deb744d ppp_channel_index +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +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 0x2e4a39f8 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x2e50723f kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x2e60bace memcpy +EXPORT_SYMBOL vmlinux 0x2e681f69 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x2ebf12e2 fb_class +EXPORT_SYMBOL vmlinux 0x2f003ac0 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x2f00451b xfrm_register_type +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f464b47 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x2f9503b1 scsi_init_io +EXPORT_SYMBOL vmlinux 0x2f9cc4ec names_cachep +EXPORT_SYMBOL vmlinux 0x300ec2ea nla_reserve +EXPORT_SYMBOL vmlinux 0x3019851f ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x3024188a bioset_free +EXPORT_SYMBOL vmlinux 0x30415a70 register_8022_client +EXPORT_SYMBOL vmlinux 0x3055d1e1 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x30677c98 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x3093979e unregister_md_personality +EXPORT_SYMBOL vmlinux 0x30b77129 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x30b79202 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x30c32511 skb_insert +EXPORT_SYMBOL vmlinux 0x30c75199 downgrade_write +EXPORT_SYMBOL vmlinux 0x30d1d481 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x3104efb7 arp_create +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x311f1a61 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x312059a4 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x314d4e78 filp_close +EXPORT_SYMBOL vmlinux 0x3152664a pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x31732276 scsi_device_get +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x3194d615 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x319f42f9 skb_checksum +EXPORT_SYMBOL vmlinux 0x31b278c3 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0x31c54425 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31ff8bb4 slow_work_sleep_till_thread_needed +EXPORT_SYMBOL vmlinux 0x321d8584 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x3224a029 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x3228f379 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x3238ebba tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x325a88c7 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x326b4270 tcp4_gro_complete +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 0x328bc5fe alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x3294f9d0 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x329665fd __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x32a2264b blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x32b03542 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x32ca9939 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x330e3070 dst_destroy +EXPORT_SYMBOL vmlinux 0x3340d73c inode_init_owner +EXPORT_SYMBOL vmlinux 0x3349b85b module_put +EXPORT_SYMBOL vmlinux 0x337c2b85 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x33970aa0 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x33ba843e pagevec_lookup +EXPORT_SYMBOL vmlinux 0x33c9b3db dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x33d57c85 lookup_hash +EXPORT_SYMBOL vmlinux 0x33dd2ef8 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x3411142f tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x341ba441 notify_change +EXPORT_SYMBOL vmlinux 0x341f1b29 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x342f60fe apm_info +EXPORT_SYMBOL vmlinux 0x34354f0f dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x34438131 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long +EXPORT_SYMBOL vmlinux 0x345d7ff1 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x3476f81e dm_exception_store_create +EXPORT_SYMBOL vmlinux 0x3487d0e4 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x348c25af register_sysctl_table +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +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 0x34ddccbf dqput +EXPORT_SYMBOL vmlinux 0x3505dced mdiobus_read +EXPORT_SYMBOL vmlinux 0x351d85c1 do_splice_to +EXPORT_SYMBOL vmlinux 0x351dc09c iterate_mounts +EXPORT_SYMBOL vmlinux 0x35352a61 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x353ae255 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x353ca2b3 acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x3543124f get_sb_bdev +EXPORT_SYMBOL vmlinux 0x35522889 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x3584516d filemap_flush +EXPORT_SYMBOL vmlinux 0x359eb30c spi_dv_device +EXPORT_SYMBOL vmlinux 0x35a202b9 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x35aa077e dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x35b75e4d pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35cd6d97 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x35da2e61 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x35fe1260 fasync_helper +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x3614a3de phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x3623d973 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x362ef408 _copy_from_user +EXPORT_SYMBOL vmlinux 0x363216e9 tty_port_open +EXPORT_SYMBOL vmlinux 0x36368b50 inet_ioctl +EXPORT_SYMBOL vmlinux 0x36680c90 pci_restore_state +EXPORT_SYMBOL vmlinux 0x3671a70d alloc_fcdev +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x368fda97 inet_addr_type +EXPORT_SYMBOL vmlinux 0x36a94d27 bio_integrity_split +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 0x372d3f8c inode_init_always +EXPORT_SYMBOL vmlinux 0x37373393 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf +EXPORT_SYMBOL vmlinux 0x37802694 init_special_inode +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 0x37f38dd7 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x37f86c3a filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x37fcef01 do_truncate +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 0x3817d7f9 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x38551568 idr_for_each +EXPORT_SYMBOL vmlinux 0x3865bccc key_validate +EXPORT_SYMBOL vmlinux 0x386957f5 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x38761b3b phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x388681c3 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x388799f6 unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38aa7d58 rwsem_wake +EXPORT_SYMBOL vmlinux 0x38b67d2f tcf_hash_check +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38cd209f km_new_mapping +EXPORT_SYMBOL vmlinux 0x38e6e872 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x38f1ee29 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x38fd91dd vfs_getattr +EXPORT_SYMBOL vmlinux 0x392a403b pnp_device_detach +EXPORT_SYMBOL vmlinux 0x39413fd0 ip6_route_output +EXPORT_SYMBOL vmlinux 0x3976aa05 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x397b4bd1 slow_work_unregister_user +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39b022e5 mca_register_driver +EXPORT_SYMBOL vmlinux 0x39d8158a request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x39eb857f __ip_select_ident +EXPORT_SYMBOL vmlinux 0x39ee82fd __netdev_alloc_page +EXPORT_SYMBOL vmlinux 0x39f090f2 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x39fb16bd acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x39fe418c tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x3a13258f __ps2_command +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a4e99e5 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x3a5265af i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x3a7173ac complete_all +EXPORT_SYMBOL vmlinux 0x3a7da6dd __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x3a8e0732 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3a9bd6c4 elv_rb_del +EXPORT_SYMBOL vmlinux 0x3ac92bdd dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x3aed2a67 default_llseek +EXPORT_SYMBOL vmlinux 0x3b1f2fd2 md_check_recovery +EXPORT_SYMBOL vmlinux 0x3b213a4a bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b33576a dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x3b416025 inet_frags_init +EXPORT_SYMBOL vmlinux 0x3b4f0df2 seq_bitmap +EXPORT_SYMBOL vmlinux 0x3b59f249 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x3b622328 kobject_get +EXPORT_SYMBOL vmlinux 0x3b65efc1 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x3b662dbb sock_recvmsg +EXPORT_SYMBOL vmlinux 0x3b6b2b98 d_alloc_root +EXPORT_SYMBOL vmlinux 0x3b9925bb end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3c28d2d0 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c3f2c9d make_bad_inode +EXPORT_SYMBOL vmlinux 0x3c493fe0 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x3c5efd56 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x3c7c9eb3 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x3c8f2bb2 page_put_link +EXPORT_SYMBOL vmlinux 0x3c9706a0 pci_find_capability +EXPORT_SYMBOL vmlinux 0x3c99a2b1 blk_run_queue +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cb3931b sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x3cbcff4c new_inode +EXPORT_SYMBOL vmlinux 0x3ccac9e8 stop_tty +EXPORT_SYMBOL vmlinux 0x3ccfd237 __nla_put +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cede60b tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x3cf50675 thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0x3d2aafd1 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x3d41e53c tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x3d4a5d7e elv_abort_queue +EXPORT_SYMBOL vmlinux 0x3d520b1b generic_write_end +EXPORT_SYMBOL vmlinux 0x3d605d5d textsearch_register +EXPORT_SYMBOL vmlinux 0x3d60edbc write_inode_now +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d8ea13d bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3daa69da vfs_lstat +EXPORT_SYMBOL vmlinux 0x3db0ccd7 lookup_one_len +EXPORT_SYMBOL vmlinux 0x3dd41d1b scsi_free_command +EXPORT_SYMBOL vmlinux 0x3de1887b no_llseek +EXPORT_SYMBOL vmlinux 0x3defd6a1 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e04bc92 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x3e1a78c1 eth_type_trans +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e51c421 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x3e5b7cb9 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e886455 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ed63574 read_cache_pages +EXPORT_SYMBOL vmlinux 0x3ef78d80 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f09e422 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x3f14d53b is_bad_inode +EXPORT_SYMBOL vmlinux 0x3f1bc368 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x3f200666 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x3f243f45 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x3f3159b4 gen_pool_free +EXPORT_SYMBOL vmlinux 0x3f379c33 vga_put +EXPORT_SYMBOL vmlinux 0x3f37a533 add_disk +EXPORT_SYMBOL vmlinux 0x3f38f693 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f5e7df6 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x3f622645 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x3f6d8b99 single_release +EXPORT_SYMBOL vmlinux 0x3f857d26 kmem_cache_create +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 0x403b8519 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x40475000 pci_iounmap +EXPORT_SYMBOL vmlinux 0x404f617d dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x4052713e elv_add_request +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40992184 bio_pair_release +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40ce9c01 dquot_enable +EXPORT_SYMBOL vmlinux 0x40e4cdb4 dquot_acquire +EXPORT_SYMBOL vmlinux 0x40f8be01 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x4127952c kthread_bind +EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4150a9d3 free_buffer_head +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 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 0x426bac5d padata_add_cpu +EXPORT_SYMBOL vmlinux 0x4292364c schedule +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x429adb57 napi_get_frags +EXPORT_SYMBOL vmlinux 0x429d18fd dma_find_channel +EXPORT_SYMBOL vmlinux 0x42a20ff0 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache +EXPORT_SYMBOL vmlinux 0x42d394dc mutex_unlock +EXPORT_SYMBOL vmlinux 0x42e2ad21 audit_log_end +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +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 0x433d1aab inode_set_bytes +EXPORT_SYMBOL vmlinux 0x433e1d23 neigh_destroy +EXPORT_SYMBOL vmlinux 0x4341e7a0 unlock_super +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get +EXPORT_SYMBOL vmlinux 0x43d1814a tty_port_close_end +EXPORT_SYMBOL vmlinux 0x43d46b99 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x43d54fdd gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x43ea0028 kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x440060e0 end_page_writeback +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 0x44979517 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44e7472b filp_open +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x45107bfd pci_claim_resource +EXPORT_SYMBOL vmlinux 0x4511e258 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x45120b8e __find_get_block +EXPORT_SYMBOL vmlinux 0x451c1b3f serio_open +EXPORT_SYMBOL vmlinux 0x4539cd64 vfs_unlink +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x457a8a31 key_alloc +EXPORT_SYMBOL vmlinux 0x45947727 param_array_set +EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states +EXPORT_SYMBOL vmlinux 0x459cfa67 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x45aa886e neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x45b3734f d_move +EXPORT_SYMBOL vmlinux 0x45c7bf6e kill_anon_super +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45e203df blk_stack_limits +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x462c3eb7 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x465e1a4a alloc_disk +EXPORT_SYMBOL vmlinux 0x466af75d sock_register +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x46c530ec dma_supported +EXPORT_SYMBOL vmlinux 0x46fd7965 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x4719ea3c sk_free +EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x473a4a01 scsi_host_alloc +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 0x47c7b0d2 cpu_number +EXPORT_SYMBOL vmlinux 0x47cea6cf tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x47e2ae97 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x48478947 mddev_congested +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x48a771c5 cpu_core_map +EXPORT_SYMBOL vmlinux 0x48cf0477 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x48dd881b __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x48e3b113 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x48f26899 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x48f6bf29 sock_no_poll +EXPORT_SYMBOL vmlinux 0x493dabcd blk_integrity_compare +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 0x4956cbb8 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x4958eddb blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x49af8f6f napi_reuse_skb +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49cb4766 ip_defrag +EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string +EXPORT_SYMBOL vmlinux 0x49f66d6f mmc_card_sleep +EXPORT_SYMBOL vmlinux 0x4a0deb84 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a4627e8 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x4a5ed69d dm_table_event +EXPORT_SYMBOL vmlinux 0x4a631d45 scsi_unregister +EXPORT_SYMBOL vmlinux 0x4a75d1a0 inode_change_ok +EXPORT_SYMBOL vmlinux 0x4a7692f5 sock_init_data +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 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b40c015 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x4b40ea9b tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x4b5793fe inet_stream_connect +EXPORT_SYMBOL vmlinux 0x4b63cd5b xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x4b677dfb skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x4b961826 mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x4b9cc071 udp_prot +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bd12eda ip_fragment +EXPORT_SYMBOL vmlinux 0x4c057e2a mca_unregister_driver +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c26a372 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c2b42a5 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x4c4d4d5b mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x4c7aeb14 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x4cb9ef3a nf_register_hook +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4ce070ae udp_poll +EXPORT_SYMBOL vmlinux 0x4ce24338 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x4cec033e netif_napi_del +EXPORT_SYMBOL vmlinux 0x4cf21ee2 mca_device_transform_memory +EXPORT_SYMBOL vmlinux 0x4d11e171 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x4d20ddbc atomic64_inc_not_zero_cx8 +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d6a85df acpi_root_dir +EXPORT_SYMBOL vmlinux 0x4da6f65c xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dc7e3aa d_invalidate +EXPORT_SYMBOL vmlinux 0x4dcef1f6 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x4deab55e scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x4df0d0df unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4df7c1cd netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child +EXPORT_SYMBOL vmlinux 0x4e2474a1 iget5_locked +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e467621 sock_update_classid +EXPORT_SYMBOL vmlinux 0x4e472ac1 llc_sap_open +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e743069 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x4e7b85be netif_carrier_off +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e9236d2 send_sig_info +EXPORT_SYMBOL vmlinux 0x4e9ccd23 tty_devnum +EXPORT_SYMBOL vmlinux 0x4ed74c41 dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x4f176729 bio_init +EXPORT_SYMBOL vmlinux 0x4f1ba5a1 dev_open +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f2f2f08 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f5438c1 idle_halt +EXPORT_SYMBOL vmlinux 0x4f7442e3 xfrm_register_km +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4f934c27 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x4f9c6e99 revalidate_disk +EXPORT_SYMBOL vmlinux 0x4fa88d22 fb_get_mode +EXPORT_SYMBOL vmlinux 0x4fafe8ba mark_page_accessed +EXPORT_SYMBOL vmlinux 0x4fbe93a7 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x4fca59e3 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x502c7a3f tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x5048ecf4 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x505e05b0 arp_xmit +EXPORT_SYMBOL vmlinux 0x50641111 fb_is_primary_device +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x506e6f2f _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x50876eb8 register_quota_format +EXPORT_SYMBOL vmlinux 0x5098019c pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x5099024a submit_bh +EXPORT_SYMBOL vmlinux 0x50b847f0 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x50d36af6 sock_release +EXPORT_SYMBOL vmlinux 0x51084af2 vfs_rename +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5141272e pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x5152e605 memcmp +EXPORT_SYMBOL vmlinux 0x5162080a k8_northbridges +EXPORT_SYMBOL vmlinux 0x516bb306 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x516c1879 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x51826671 console_start +EXPORT_SYMBOL vmlinux 0x5186518f profile_pc +EXPORT_SYMBOL vmlinux 0x51878adb unregister_binfmt +EXPORT_SYMBOL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL vmlinux 0x51997f91 lock_may_write +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 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 0x5236d318 blk_rq_init +EXPORT_SYMBOL vmlinux 0x52373b22 bit_waitqueue +EXPORT_SYMBOL vmlinux 0x5239b676 fb_validate_mode +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 0x52ab8981 register_gifconf +EXPORT_SYMBOL vmlinux 0x52ae5acc cdrom_mode_select +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 0x52fd0b89 __netif_schedule +EXPORT_SYMBOL vmlinux 0x53058ecb cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x530b1e4c rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x53189155 f_setown +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 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x5385c449 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x53ac88c8 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53cb9729 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x53ce4e70 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x53e633d1 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x54005641 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x5408420e inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x5426602d eth_mac_addr +EXPORT_SYMBOL vmlinux 0x54274758 dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x542edf01 dquot_file_open +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x5444eee3 blk_plug_device +EXPORT_SYMBOL vmlinux 0x54856806 bio_map_user +EXPORT_SYMBOL vmlinux 0x54935666 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0x549758b7 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x54a285c5 atomic64_dec_return_cx8 +EXPORT_SYMBOL vmlinux 0x54c18ee9 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x5505d4a3 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x55340bf8 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x555f39fa __lock_buffer +EXPORT_SYMBOL vmlinux 0x55681783 nf_log_packet +EXPORT_SYMBOL vmlinux 0x558449c8 blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x55a4948f splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x55c06da3 unregister_con_driver +EXPORT_SYMBOL vmlinux 0x55cac4fe fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x55eef9ae inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x55fcab69 md_integrity_add_rdev +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 0x561e3478 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x5623aa74 pci_disable_msix +EXPORT_SYMBOL vmlinux 0x5634e8ab dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x565a0d69 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x5684efe0 nobh_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x569f5a80 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56cc7b76 blk_rq_count_integrity_sg +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 0x57078622 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x571575e4 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x57537f09 get_sb_single +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 0x5771a63b skb_dequeue +EXPORT_SYMBOL vmlinux 0x5775182d mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x57939c12 sk_filter +EXPORT_SYMBOL vmlinux 0x5796c33c blk_alloc_queue +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 0x57c07659 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x57c5f6eb phy_scan_fixups +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 0x58130cc2 xfrm_input +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 0x588c94e4 kobject_put +EXPORT_SYMBOL vmlinux 0x5890c8c8 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x5892d54c acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x58aa7777 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x58c47113 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x58d41742 ip_route_input_common +EXPORT_SYMBOL vmlinux 0x58e5e640 iget_failed +EXPORT_SYMBOL vmlinux 0x58e81de2 unregister_netdev +EXPORT_SYMBOL vmlinux 0x58fef6f8 ist_info +EXPORT_SYMBOL vmlinux 0x592b59af acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x592b9cd7 down_read +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x5934a855 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x59486d30 dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x5954ca82 idr_destroy +EXPORT_SYMBOL vmlinux 0x5959e53f scsi_put_command +EXPORT_SYMBOL vmlinux 0x5965a9e1 proc_symlink +EXPORT_SYMBOL vmlinux 0x5977d2fe dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x59897d2f bd_set_size +EXPORT_SYMBOL vmlinux 0x59944da4 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x59a95497 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59efd4b4 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x5a2bda12 udplite_table +EXPORT_SYMBOL vmlinux 0x5a36c195 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a6dfe87 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a981186 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x5a9ff008 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5acba180 d_instantiate +EXPORT_SYMBOL vmlinux 0x5acf0a9c pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x5ade9afe journal_check_available_features +EXPORT_SYMBOL vmlinux 0x5b08be95 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b1d39e8 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x5b2dbd93 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x5b368ec8 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x5b4c6297 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b5ee127 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x5b6e232e km_policy_expired +EXPORT_SYMBOL vmlinux 0x5b7a81fd clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x5b88e8c9 atomic64_sub_return_cx8 +EXPORT_SYMBOL vmlinux 0x5b8cb673 journal_lock_updates +EXPORT_SYMBOL vmlinux 0x5ba5b393 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x5befe655 register_key_type +EXPORT_SYMBOL vmlinux 0x5c1987e1 cdev_alloc +EXPORT_SYMBOL vmlinux 0x5c55562f ps2_begin_command +EXPORT_SYMBOL vmlinux 0x5c68705b mca_read_pos +EXPORT_SYMBOL vmlinux 0x5c881ba9 kmap_atomic_to_page +EXPORT_SYMBOL vmlinux 0x5c90d6bd neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x5c9a1629 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x5ccfa208 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x5ce6f187 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x5d070ddd lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x5d57c069 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x5d5e7200 unregister_nls +EXPORT_SYMBOL vmlinux 0x5d5e9beb mnt_unpin +EXPORT_SYMBOL vmlinux 0x5d6bcc41 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x5d95a3ee kill_litter_super +EXPORT_SYMBOL vmlinux 0x5d9baa54 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x5dab6585 dev_base_lock +EXPORT_SYMBOL vmlinux 0x5dda40f4 simple_lookup +EXPORT_SYMBOL vmlinux 0x5ddc02f8 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x5de05235 mca_bus_type +EXPORT_SYMBOL vmlinux 0x5de1eceb generic_setlease +EXPORT_SYMBOL vmlinux 0x5de9f72b journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x5e09ca75 complete +EXPORT_SYMBOL vmlinux 0x5e478c67 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x5e620cbc udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x5e7db207 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x5e8ce456 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5ec5b8ee scm_detach_fds +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5ed813e4 d_alloc +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5f054d52 read_cache_page +EXPORT_SYMBOL vmlinux 0x5f1ae291 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x5f1bd579 mca_find_adapter +EXPORT_SYMBOL vmlinux 0x5f21ba5b _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x5f2a2871 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x5f504806 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0x5f6208de scsi_scan_target +EXPORT_SYMBOL vmlinux 0x5f6d534b ip_route_output_key +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5faf993f dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x5fd6b2e9 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x5fd92700 get_unmapped_area_prot +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 0x6048cac7 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x60857ce0 acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60b92da6 mca_device_transform_irq +EXPORT_SYMBOL vmlinux 0x60e8365f xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x60ee53b0 kill_block_super +EXPORT_SYMBOL vmlinux 0x60f03083 inode_permission +EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n +EXPORT_SYMBOL vmlinux 0x610e8fe1 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x61284e9b __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x612a6e61 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x6138c396 arp_tbl +EXPORT_SYMBOL vmlinux 0x615a3dcb mod_timer +EXPORT_SYMBOL vmlinux 0x61634f61 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x61a50a1a give_up_console +EXPORT_SYMBOL vmlinux 0x61a73866 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x61a8826c __mutex_init +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61cc5107 km_state_expired +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x620de8f8 thaw_process +EXPORT_SYMBOL vmlinux 0x621fbd4b sg_miter_stop +EXPORT_SYMBOL vmlinux 0x6221a24c vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x6223cafb _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x622d843c deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x622f0042 netpoll_send_skb +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 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x6276d835 touch_atime +EXPORT_SYMBOL vmlinux 0x627b0756 key_revoke +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x6284687d scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x62e3c7ce processors +EXPORT_SYMBOL vmlinux 0x636104ad skb_recycle_check +EXPORT_SYMBOL vmlinux 0x6362eab4 d_validate +EXPORT_SYMBOL vmlinux 0x636626e7 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x63950e09 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x63ddc61b pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x63e05e8d sock_kfree_s +EXPORT_SYMBOL vmlinux 0x63e2f77f inode_add_rsv_space +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 0x63ff73f6 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x6414a618 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x6421e276 get_disk +EXPORT_SYMBOL vmlinux 0x6443d74d _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x644f55c9 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x645848cb fb_pan_display +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x6499d912 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x64a720da jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x64e90ef0 del_timer +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +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 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x655f2809 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x6565d33f scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x65a7495f generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x65c88d55 clear_inode +EXPORT_SYMBOL vmlinux 0x65d1e37b phy_disable_interrupts +EXPORT_SYMBOL vmlinux 0x65d20243 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x65e0e395 pci_request_regions +EXPORT_SYMBOL vmlinux 0x65ec0287 __lock_page +EXPORT_SYMBOL vmlinux 0x6608445d open_by_devnum +EXPORT_SYMBOL vmlinux 0x660b97a2 prepare_binprm +EXPORT_SYMBOL vmlinux 0x66189f0c kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0x6629633b sock_no_mmap +EXPORT_SYMBOL vmlinux 0x664850bb serial8250_register_port +EXPORT_SYMBOL vmlinux 0x664a9cc2 unlock_rename +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x6696d255 skb_split +EXPORT_SYMBOL vmlinux 0x66d364d6 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x66fdcf95 genphy_suspend +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x670c0597 down_interruptible +EXPORT_SYMBOL vmlinux 0x670d155f tty_register_driver +EXPORT_SYMBOL vmlinux 0x6720467e sock_no_connect +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x67366f4d xfrm_state_update +EXPORT_SYMBOL vmlinux 0x674f51f5 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x677e07d6 __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0x67804a19 __any_online_cpu +EXPORT_SYMBOL vmlinux 0x6789c8ce arp_find +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 0x67c3fe16 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x6805d4d3 ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0x68146245 bdi_unregister +EXPORT_SYMBOL vmlinux 0x68275859 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x68571b46 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x685a8ae3 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x68732301 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x6878650e inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x6885f602 journal_flush +EXPORT_SYMBOL vmlinux 0x689f4d53 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x68cb6ee6 mpage_readpage +EXPORT_SYMBOL vmlinux 0x68d076b6 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x68d13257 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x68e20a66 block_sync_page +EXPORT_SYMBOL vmlinux 0x68e6968c framebuffer_release +EXPORT_SYMBOL vmlinux 0x6945f765 km_state_notify +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int +EXPORT_SYMBOL vmlinux 0x698743d7 skb_pad +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x699af5e8 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a0d5d0 register_cdrom +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69c81e17 generic_pipe_buf_map +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 0x69ee479b key_type_keyring +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a177208 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x6a2576f3 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x6a27bfce csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x6a4a9105 input_open_device +EXPORT_SYMBOL vmlinux 0x6a585b30 journal_clear_err +EXPORT_SYMBOL vmlinux 0x6a5aabfb bitmap_unplug +EXPORT_SYMBOL vmlinux 0x6a737c76 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x6a755eeb dev_mc_add +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6ab3618a blk_requeue_request +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6aef8c8a dm_table_put +EXPORT_SYMBOL vmlinux 0x6af0e73c journal_restart +EXPORT_SYMBOL vmlinux 0x6b015c43 bio_map_kern +EXPORT_SYMBOL vmlinux 0x6b0bdcec mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b6dc165 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x6b937ffb mca_mark_as_used +EXPORT_SYMBOL vmlinux 0x6b9e66a9 vfs_link +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bf8d133 down_trylock +EXPORT_SYMBOL vmlinux 0x6c0e7215 mca_device_claimed +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 0x6c470aa6 slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c73211c scsi_device_put +EXPORT_SYMBOL vmlinux 0x6ca9afa6 seq_putc +EXPORT_SYMBOL vmlinux 0x6cbfd77e sk_receive_skb +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d288375 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d492a58 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x6d57e106 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6daa56a4 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x6dc3bd60 sk_reset_timer +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 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6dfb6841 security_path_link +EXPORT_SYMBOL vmlinux 0x6dfdaa40 vm_insert_page +EXPORT_SYMBOL vmlinux 0x6e2cea1e md_error +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 0x6e74005b unbind_con_driver +EXPORT_SYMBOL vmlinux 0x6e766ea1 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x6e9b0962 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6e9dfc7d bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x6ee2ea76 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x6f2178e5 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x6f36242b gen_pool_create +EXPORT_SYMBOL vmlinux 0x6f36a2b7 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x6f4a675f d_find_alias +EXPORT_SYMBOL vmlinux 0x6f50984e tty_vhangup +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_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 0x6fd1360f udp_sendmsg +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 0x701d0ebd snprintf +EXPORT_SYMBOL vmlinux 0x7020c11a blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x70239cdf cfb_copyarea +EXPORT_SYMBOL vmlinux 0x70390385 netif_rx +EXPORT_SYMBOL vmlinux 0x70458cbf simple_release_fs +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x705e01eb __destroy_inode +EXPORT_SYMBOL vmlinux 0x706f7b2c __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x7078b518 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x70a004fc phy_attach_direct +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 0x70fc7373 register_con_driver +EXPORT_SYMBOL vmlinux 0x710aae85 put_disk +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7138981b proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x714b9472 tty_kref_put +EXPORT_SYMBOL vmlinux 0x714bb63a md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x715453d2 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x71585a3a blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x715ae71a fb_find_mode +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x718333ec ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x718b8cb7 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x7193fa97 set_blocksize +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71aa15d1 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x71c9a495 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x71e1fb97 skb_append +EXPORT_SYMBOL vmlinux 0x72056eb2 replace_mount_options +EXPORT_SYMBOL vmlinux 0x7239cf63 mdiobus_write +EXPORT_SYMBOL vmlinux 0x725730a8 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x7296fc46 d_path +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72b2b8fb setup_arg_pages +EXPORT_SYMBOL vmlinux 0x72ba74f8 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x72bba148 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte +EXPORT_SYMBOL vmlinux 0x72cddec3 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72ff3c32 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x73177a8c i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x7319671d phy_start +EXPORT_SYMBOL vmlinux 0x7329d212 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x735d2a75 ndisc_build_skb +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +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 0x73947f9b page_readlink +EXPORT_SYMBOL vmlinux 0x739dc9c1 simple_unlink +EXPORT_SYMBOL vmlinux 0x73af0115 x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0x73d0bf2a llc_set_station_handler +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x740cd32a tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x7413793a EISA_bus +EXPORT_SYMBOL vmlinux 0x7424214d dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x742f3c86 pnp_find_dev +EXPORT_SYMBOL vmlinux 0x743eb739 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte +EXPORT_SYMBOL vmlinux 0x747fc3cc jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x7485fc35 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x749e90f2 lro_flush_all +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74c19b6a seq_read +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74cc4746 hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0x74d4d753 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x75271716 save_processor_state +EXPORT_SYMBOL vmlinux 0x753bfc2d inet_stream_ops +EXPORT_SYMBOL vmlinux 0x7587bc4c ip_ct_attach +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 0x75e7980c neigh_for_each +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 0x767b3e64 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x7682974b pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x768edc47 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x7694b8c9 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x769d6e5a phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +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 0x77523024 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x77533110 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x776546f5 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x779ff587 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x77aa1a60 dw_spi_add_host +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77c13833 __blk_end_request +EXPORT_SYMBOL vmlinux 0x77c41ea6 journal_wipe +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77e0e0b3 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x77fb6527 drop_super +EXPORT_SYMBOL vmlinux 0x782a29eb abx500_register_ops +EXPORT_SYMBOL vmlinux 0x782bf562 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x784df593 scsi_host_put +EXPORT_SYMBOL vmlinux 0x786da073 vc_cons +EXPORT_SYMBOL vmlinux 0x788086d0 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x78d8db9e idr_get_next +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78ec1c10 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x79200494 sock_setsockopt +EXPORT_SYMBOL vmlinux 0x7929b8e0 alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt +EXPORT_SYMBOL vmlinux 0x794af755 dm_dirty_log_destroy +EXPORT_SYMBOL vmlinux 0x795135cb __lru_cache_add +EXPORT_SYMBOL vmlinux 0x796c75c4 try_to_release_page +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x798cbdf4 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x7991ab03 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x79a69a5f pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x7a07c56a journal_init_inode +EXPORT_SYMBOL vmlinux 0x7a29d886 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x7a29dfd0 lookup_bdev +EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a4a7daf pci_iomap +EXPORT_SYMBOL vmlinux 0x7a625801 module_layout +EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip +EXPORT_SYMBOL vmlinux 0x7acbdb29 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x7ae16207 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x7ae95b4d unlock_page +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7aed2c1e generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x7aedc1ea tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7b11c60d bio_put +EXPORT_SYMBOL vmlinux 0x7b134ddf acpi_get_name +EXPORT_SYMBOL vmlinux 0x7b445b82 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x7b5ad85e bdget +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7b8a96f6 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x7b9e983f cpu_info +EXPORT_SYMBOL vmlinux 0x7ba25072 rfkill_destroy +EXPORT_SYMBOL vmlinux 0x7ba5ce4a block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x7ba5e811 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x7baba8f7 bio_add_page +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7bd6e1dd d_lookup +EXPORT_SYMBOL vmlinux 0x7bf6462b bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x7c21e8a1 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c539fa8 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x7c55e248 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x7c59a481 search_binary_handler +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c87f018 dquot_set_dqblk +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 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cd53804 generic_readlink +EXPORT_SYMBOL vmlinux 0x7cdcc668 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x7ceb4a54 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x7cf30193 rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x7d0e19fb blk_free_tags +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d14e128 bio_clone +EXPORT_SYMBOL vmlinux 0x7d23862d single_open +EXPORT_SYMBOL vmlinux 0x7d2ad3f3 skb_make_writable +EXPORT_SYMBOL vmlinux 0x7d387f1a __scm_destroy +EXPORT_SYMBOL vmlinux 0x7d76a080 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x7d7a222c napi_frags_finish +EXPORT_SYMBOL vmlinux 0x7db57751 proc_dointvec +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7dd1cc03 ll_rw_block +EXPORT_SYMBOL vmlinux 0x7dd56a21 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x7e04b35d __getblk +EXPORT_SYMBOL vmlinux 0x7e0abb2f journal_create +EXPORT_SYMBOL vmlinux 0x7e1d17cf atomic64_read_cx8 +EXPORT_SYMBOL vmlinux 0x7e1ef3f4 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x7e253005 tty_check_change +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e544f58 get_gendisk +EXPORT_SYMBOL vmlinux 0x7e56430d km_policy_notify +EXPORT_SYMBOL vmlinux 0x7e627925 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x7e6d9eec qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7ebe1ee8 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x7ebe55a8 rt6_lookup +EXPORT_SYMBOL vmlinux 0x7ecb001b __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x7efbc262 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x7eff1f7f have_submounts +EXPORT_SYMBOL vmlinux 0x7f114141 complete_and_exit +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f38257c padata_free +EXPORT_SYMBOL vmlinux 0x7f4dde35 noop_fsync +EXPORT_SYMBOL vmlinux 0x7f6d6497 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x7f9d7a50 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x7fb65850 current_task +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x8017d9a2 netdev_state_change +EXPORT_SYMBOL vmlinux 0x8051725f xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x806479ce splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x80952310 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x80a84993 register_exec_domain +EXPORT_SYMBOL vmlinux 0x80c59410 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x80d6b400 md_barrier_request +EXPORT_SYMBOL vmlinux 0x80edadf7 d_delete +EXPORT_SYMBOL vmlinux 0x812d88b8 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x81433e86 proto_register +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 0x8161a0fb __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf +EXPORT_SYMBOL vmlinux 0x8185f0df napi_gro_receive +EXPORT_SYMBOL vmlinux 0x819e1c25 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0x81a5152d blk_peek_request +EXPORT_SYMBOL vmlinux 0x81b14218 key_put +EXPORT_SYMBOL vmlinux 0x81b36f05 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +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 0x8228dda8 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user +EXPORT_SYMBOL vmlinux 0x822bbbd2 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x8235805b memmove +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x8294105f bio_split +EXPORT_SYMBOL vmlinux 0x82a8eb6b blk_insert_request +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82b45539 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x82bbbc6c netpoll_print_options +EXPORT_SYMBOL vmlinux 0x82e113d9 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x82e418c7 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x82eaf410 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x82fa952e prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot +EXPORT_SYMBOL vmlinux 0x831cb2a5 ___ratelimit +EXPORT_SYMBOL vmlinux 0x83269c06 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x833e270b bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x83636ee3 wait_for_completion +EXPORT_SYMBOL vmlinux 0x83647303 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x836b43cc blk_stop_queue +EXPORT_SYMBOL vmlinux 0x83767ca9 proc_dostring +EXPORT_SYMBOL vmlinux 0x8377940d ppp_input_error +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83e7adbd pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x83fc9d2d __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x84231a45 check_disk_change +EXPORT_SYMBOL vmlinux 0x84298439 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x8436f2f2 scsi_host_get +EXPORT_SYMBOL vmlinux 0x845474e6 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x845a60dc blk_unplug +EXPORT_SYMBOL vmlinux 0x849bd8bf sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x849e6744 release_sock +EXPORT_SYMBOL vmlinux 0x84a3930c clocksource_unregister +EXPORT_SYMBOL vmlinux 0x84a3e2b2 genphy_config_advert +EXPORT_SYMBOL vmlinux 0x84bbeaaf __bio_clone +EXPORT_SYMBOL vmlinux 0x850c161e journal_stop +EXPORT_SYMBOL vmlinux 0x8531f2ad neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x854a6932 input_grab_device +EXPORT_SYMBOL vmlinux 0x85518377 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85ef05b9 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x8612cc69 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x8612fd58 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x8618e163 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86b53be5 nf_afinfo +EXPORT_SYMBOL vmlinux 0x86b9b596 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x86d65e22 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x86f5e7a3 tty_hangup +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x871b1ddc inet_getname +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x873c376a tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x8749e226 cont_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x87560d78 proto_unregister +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x87745bcc key_unlink +EXPORT_SYMBOL vmlinux 0x8775376f dev_uc_add +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x8793f472 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x87a45ee9 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x87a4e52d xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87ac3bf3 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x87bd11c5 iget_locked +EXPORT_SYMBOL vmlinux 0x87e65337 netif_napi_add +EXPORT_SYMBOL vmlinux 0x87f6d484 file_permission +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x8832adfa hippi_change_mtu +EXPORT_SYMBOL vmlinux 0x8848bd59 sk_stream_error +EXPORT_SYMBOL vmlinux 0x8848fd22 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x8853be3b dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x88767f17 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x88941a06 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x889a79fd netpoll_poll +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 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x893f2cff tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x89457fe1 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x895a2b96 dev_get_stats +EXPORT_SYMBOL vmlinux 0x895bee77 seq_release_private +EXPORT_SYMBOL vmlinux 0x89705d96 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x897288fc qdisc_reset +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x898bf478 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x89a793cf pci_disable_msi +EXPORT_SYMBOL vmlinux 0x89bbec01 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x89d21548 register_netdev +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89dd6682 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x89fb1eb0 mpage_readpages +EXPORT_SYMBOL vmlinux 0x8a03bf6e pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x8a083df3 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x8a0b3abb __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x8a2d8109 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x8a3a67b3 tcf_em_register +EXPORT_SYMBOL vmlinux 0x8a48cd66 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x8a633fa9 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8ab263cd abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x8ae0e1b7 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x8ae45175 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x8af6202a uart_get_baud_rate +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 0x8b219113 sock_no_socketpair +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 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 0x8bd69e2b dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x8bfd6f6a __f_setown +EXPORT_SYMBOL vmlinux 0x8c1068eb generic_permission +EXPORT_SYMBOL vmlinux 0x8c183be5 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c1a26c2 eth_header_parse +EXPORT_SYMBOL vmlinux 0x8c4dafd7 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x8c4f662a dquot_transfer +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 0x8cfd6494 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x8d255b94 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x8d3edb85 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x8d456038 jbd2_journal_extend +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 0x8d72359f netlink_ack +EXPORT_SYMBOL vmlinux 0x8d834979 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x8d897285 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8d98e809 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x8da7f677 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x8da98dcc idr_remove_all +EXPORT_SYMBOL vmlinux 0x8dade944 locks_init_lock +EXPORT_SYMBOL vmlinux 0x8dbac33d tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x8dc6e564 restore_processor_state +EXPORT_SYMBOL vmlinux 0x8debf74c kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x8defb158 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x8dfa1f95 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0302b2 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e1bac16 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x8e46a2d7 scsi_remove_target +EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq +EXPORT_SYMBOL vmlinux 0x8e888ec3 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x8e8bac50 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x8eaf019c tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8ec86637 dm_put_device +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8f2371ba percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f39c861 register_sysrq_key +EXPORT_SYMBOL vmlinux 0x8f47c695 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f60ace1 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f849406 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x8f93787f __inet6_hash +EXPORT_SYMBOL vmlinux 0x8f98adb5 kunmap +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8f9ce5f8 scsi_add_device +EXPORT_SYMBOL vmlinux 0x8ff4079b pv_irq_ops +EXPORT_SYMBOL vmlinux 0x8ff62306 dm_io_client_create +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x901222c5 register_netdevice +EXPORT_SYMBOL vmlinux 0x9021b097 del_timer_sync +EXPORT_SYMBOL vmlinux 0x902789fa napi_skb_finish +EXPORT_SYMBOL vmlinux 0x903732a3 __scm_send +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 0x904e3b03 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x905ea180 soft_cursor +EXPORT_SYMBOL vmlinux 0x905f0443 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x90721e10 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system +EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active +EXPORT_SYMBOL vmlinux 0x90ab22c2 dm_get_device +EXPORT_SYMBOL vmlinux 0x90b0ea7c inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x90b51d6c schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x90c2497b skb_tx_hash +EXPORT_SYMBOL vmlinux 0x90eafefd sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x90f2995a get_fs_type +EXPORT_SYMBOL vmlinux 0x9102938f seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x910eb490 dm_exception_store_type_register +EXPORT_SYMBOL vmlinux 0x911a0ef7 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x9122ba97 bdput +EXPORT_SYMBOL vmlinux 0x913ece65 freeze_super +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 0x919e0954 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool +EXPORT_SYMBOL vmlinux 0x9238c53d netlink_unicast +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x92897e3d default_idle +EXPORT_SYMBOL vmlinux 0x92a7d6e5 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x92e48b26 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x93000bec blk_end_request_all +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9316987d dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x931dad1d set_pages_array_wc +EXPORT_SYMBOL vmlinux 0x93426b2c dm_dirty_log_type_unregister +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x936285f2 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x938a6c5c mmc_release_host +EXPORT_SYMBOL vmlinux 0x938ba6e6 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x939be7c1 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x93a2b695 seq_open +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93c6be8b path_is_under +EXPORT_SYMBOL vmlinux 0x93d7028e free_task +EXPORT_SYMBOL vmlinux 0x93f5b14d ip_dev_find +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 0x943bb27e kick_iocb +EXPORT_SYMBOL vmlinux 0x9445cad4 mca_device_status +EXPORT_SYMBOL vmlinux 0x948480b6 dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94b541b5 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x94bc31d9 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x94c3d28c kernel_getsockname +EXPORT_SYMBOL vmlinux 0x94d31752 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94d6f359 dst_alloc +EXPORT_SYMBOL vmlinux 0x94e678d5 fd_install +EXPORT_SYMBOL vmlinux 0x94e872c7 page_address +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 0x95ae9d73 abort_creds +EXPORT_SYMBOL vmlinux 0x95b243a5 neigh_update +EXPORT_SYMBOL vmlinux 0x95b57186 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x95f638d5 posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x96021559 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x9602dcd5 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x960e2d08 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x960f0d56 padata_stop +EXPORT_SYMBOL vmlinux 0x962fc1de __ht_create_irq +EXPORT_SYMBOL vmlinux 0x96376176 isapnp_protocol +EXPORT_SYMBOL vmlinux 0x9652aefb dentry_unhash +EXPORT_SYMBOL vmlinux 0x9659a5d8 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x968eb2ef pci_choose_state +EXPORT_SYMBOL vmlinux 0x968ebfa4 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x96bcbde0 scsi_get_command +EXPORT_SYMBOL vmlinux 0x96c23ffb mca_device_set_claim +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96dbb2a6 request_key_async +EXPORT_SYMBOL vmlinux 0x9707c4d2 netlink_dump_start +EXPORT_SYMBOL vmlinux 0x9707fbb4 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x975c56cb kunmap_high +EXPORT_SYMBOL vmlinux 0x978752cd tcp_make_synack +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 0x97dedbc6 nf_reinject +EXPORT_SYMBOL vmlinux 0x98203dec security_path_chown +EXPORT_SYMBOL vmlinux 0x9828a7ce i8042_install_filter +EXPORT_SYMBOL vmlinux 0x9842cdf9 thaw_super +EXPORT_SYMBOL vmlinux 0x9858227f padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x985a8c00 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x985cbf9c blk_end_request +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x9888cd08 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init +EXPORT_SYMBOL vmlinux 0x98c2cbba nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x98c61f86 simple_write_end +EXPORT_SYMBOL vmlinux 0x98dc2d76 input_set_keycode_big +EXPORT_SYMBOL vmlinux 0x98fcd1f4 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x98ffddad sk_dst_check +EXPORT_SYMBOL vmlinux 0x9905064b flush_delayed_work +EXPORT_SYMBOL vmlinux 0x99052a84 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x99281827 netdev_set_master +EXPORT_SYMBOL vmlinux 0x9928ad02 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x99299bca jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x996e8501 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x997f6d24 block_read_full_page +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x9996c949 read_cache_page_async +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 0x9a16db2e mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1f476c jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x9a480159 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x9a5864d4 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x9a608056 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x9a6a83f9 cmos_lock +EXPORT_SYMBOL vmlinux 0x9a6e7dd7 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x9a786a12 serio_rescan +EXPORT_SYMBOL vmlinux 0x9a7acaf0 md_register_thread +EXPORT_SYMBOL vmlinux 0x9ad49f58 pci_release_region +EXPORT_SYMBOL vmlinux 0x9add6ef8 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x9ae9967b eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x9aeca22f set_pages_wb +EXPORT_SYMBOL vmlinux 0x9b2e18e0 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b59d94c vfs_mkdir +EXPORT_SYMBOL vmlinux 0x9b62129b ida_get_new +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bcab86b skb_put +EXPORT_SYMBOL vmlinux 0x9bcf0590 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +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 0x9c6886a0 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt +EXPORT_SYMBOL vmlinux 0x9c937096 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x9cb14b8a scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +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 0x9d0fa623 skb_trim +EXPORT_SYMBOL vmlinux 0x9d0fb67d cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x9d20db36 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x9d2572bb file_fsync +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d3e9195 revert_creds +EXPORT_SYMBOL vmlinux 0x9d5e5554 fget +EXPORT_SYMBOL vmlinux 0x9d7a8b0e netpoll_setup +EXPORT_SYMBOL vmlinux 0x9d7dc6b6 dcache_readdir +EXPORT_SYMBOL vmlinux 0x9d8ba1ce cont_write_begin +EXPORT_SYMBOL vmlinux 0x9d8fe749 __task_pid_nr_ns +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 0x9dee7bc2 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x9df9a9e4 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x9e01871b unregister_snap_client +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e41a897 simple_setattr +EXPORT_SYMBOL vmlinux 0x9e4b3747 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x9e528f3e tty_port_put +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e8cf46c security_file_permission +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9ea77127 copy_io_context +EXPORT_SYMBOL vmlinux 0x9eaff352 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x9eb4dbab tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ec420a6 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x9ed0fee6 bio_free +EXPORT_SYMBOL vmlinux 0x9ed249db blkdev_get +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 0x9effb5c4 bmap +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f20f75b security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool +EXPORT_SYMBOL vmlinux 0x9f2d8984 do_splice_from +EXPORT_SYMBOL vmlinux 0x9f412818 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f471843 mntput_no_expire +EXPORT_SYMBOL vmlinux 0x9f4a2bd1 set_pages_x +EXPORT_SYMBOL vmlinux 0x9f78dfa2 dm_dirty_log_create +EXPORT_SYMBOL vmlinux 0x9f8eb208 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x9f92efc4 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f9bc6fa sync_inode +EXPORT_SYMBOL vmlinux 0x9f9fd6d2 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x9fa83406 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fc5fa7e generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x9fd4556d sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x9fd8a3aa napi_gro_frags +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe3eb96 pci_map_rom +EXPORT_SYMBOL vmlinux 0x9ffe98c1 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xa002df53 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0xa00f8796 uart_add_one_port +EXPORT_SYMBOL vmlinux 0xa016bba7 kthread_stop +EXPORT_SYMBOL vmlinux 0xa02d19f6 scsi_dma_map +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa041c0ba ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa04a975d bdev_read_only +EXPORT_SYMBOL vmlinux 0xa04e4b3d phy_start_aneg +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa061e893 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xa0726adb wake_up_process +EXPORT_SYMBOL vmlinux 0xa0a41a27 rtc_lock +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa10129ea _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa1315243 pneigh_lookup +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa146e4dc pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xa14d6ed7 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xa14f0d18 devm_ioport_map +EXPORT_SYMBOL vmlinux 0xa167e761 sock_rfree +EXPORT_SYMBOL vmlinux 0xa17af934 mdiobus_register +EXPORT_SYMBOL vmlinux 0xa19e7c99 security_file_mmap +EXPORT_SYMBOL vmlinux 0xa1a0bbe1 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xa1a25c68 take_over_console +EXPORT_SYMBOL vmlinux 0xa1a58ae3 vga_tryget +EXPORT_SYMBOL vmlinux 0xa1a78823 down_read_trylock +EXPORT_SYMBOL vmlinux 0xa1b4ba9e tty_free_termios +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba18db posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1cc76c3 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xa1e42dcd flush_old_exec +EXPORT_SYMBOL vmlinux 0xa1f195e7 inet_recvmsg +EXPORT_SYMBOL vmlinux 0xa1fce784 journal_extend +EXPORT_SYMBOL vmlinux 0xa206c6ab ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa2161a10 security_path_symlink +EXPORT_SYMBOL vmlinux 0xa234ba1a nf_unregister_hook +EXPORT_SYMBOL vmlinux 0xa25ca1d2 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xa25d0884 lock_fb_info +EXPORT_SYMBOL vmlinux 0xa26d38f8 dev_addr_del +EXPORT_SYMBOL vmlinux 0xa29f9367 blkdev_fsync +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2c413a5 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xa2c7a74f kernel_bind +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 0xa2f6b0f6 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xa32874d5 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa33cb71a __bforget +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa371b894 tcp_close +EXPORT_SYMBOL vmlinux 0xa3845c67 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0xa38497cb current_fs_time +EXPORT_SYMBOL vmlinux 0xa3979e7e __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xa3cc7b41 security_inode_permission +EXPORT_SYMBOL vmlinux 0xa3ecace7 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0xa4005f59 noop_qdisc +EXPORT_SYMBOL vmlinux 0xa41a6022 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xa431a045 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa456b06c simple_pin_fs +EXPORT_SYMBOL vmlinux 0xa45e674f tty_set_operations +EXPORT_SYMBOL vmlinux 0xa45ea973 dev_change_flags +EXPORT_SYMBOL vmlinux 0xa465d662 find_or_create_page +EXPORT_SYMBOL vmlinux 0xa46cc205 pnp_get_resource +EXPORT_SYMBOL vmlinux 0xa478ad65 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0xa487a29b pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0xa49944de blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0xa4b3112a ftrace_event_seq +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4c3bbda cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0xa4ea0990 tc_classify_compat +EXPORT_SYMBOL vmlinux 0xa51c3650 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xa51cdfe8 __FIXADDR_TOP +EXPORT_SYMBOL vmlinux 0xa53c9c09 dma_ops +EXPORT_SYMBOL vmlinux 0xa54dcb69 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xa566d2b2 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5aa98a4 d_add_ci +EXPORT_SYMBOL vmlinux 0xa5c23375 mdiobus_free +EXPORT_SYMBOL vmlinux 0xa5ca8522 free_netdev +EXPORT_SYMBOL vmlinux 0xa5da0abd acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0xa60b6a84 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xa60ff2c9 kunmap_atomic +EXPORT_SYMBOL vmlinux 0xa624209d journal_force_commit +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa667460e mpage_writepages +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 0xa6dbd26b sock_sendmsg +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6ebab17 vfs_readdir +EXPORT_SYMBOL vmlinux 0xa700ad92 scsi_scan_host +EXPORT_SYMBOL vmlinux 0xa7046549 vprintk +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa71e7463 __first_cpu +EXPORT_SYMBOL vmlinux 0xa7576ad6 __free_pages +EXPORT_SYMBOL vmlinux 0xa7731b25 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xa77d0f67 audit_log_format +EXPORT_SYMBOL vmlinux 0xa7877c22 skb_gso_segment +EXPORT_SYMBOL vmlinux 0xa791bbb2 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0xa7b33ed1 dquot_disable +EXPORT_SYMBOL vmlinux 0xa7b451d8 destroy_EII_client +EXPORT_SYMBOL vmlinux 0xa8035925 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xa8063a28 mmc_add_host +EXPORT_SYMBOL vmlinux 0xa83ee8e3 fsync_bdev +EXPORT_SYMBOL vmlinux 0xa87a4da6 dev_uc_sync +EXPORT_SYMBOL vmlinux 0xa8843ae1 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xa88d76c9 pnp_is_active +EXPORT_SYMBOL vmlinux 0xa898aaa9 scsi_remove_device +EXPORT_SYMBOL vmlinux 0xa89e43f6 pci_target_state +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +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 0xa90f3d5a inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa92fff2c generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0xa9370801 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xa95d61e3 arp_send +EXPORT_SYMBOL vmlinux 0xa98bef4e kmap +EXPORT_SYMBOL vmlinux 0xa99a1af6 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xa9b715e3 generic_file_llseek_unlocked +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 0xaa5d5781 scsi_bios_ptable +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 0xaa8fea18 acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0xaaab8067 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xaab0ab11 ip6_frag_init +EXPORT_SYMBOL vmlinux 0xaabc73aa tty_unthrottle +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 0xaafdc258 strcasecmp +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 0xab7a4622 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xab8832e6 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xab9d2b9a page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xaba259f1 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xaba6cc4e kern_path +EXPORT_SYMBOL vmlinux 0xabae90b2 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0xabd01332 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabdc3ce4 bioset_integrity_create +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 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac59092f serio_reconnect +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 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xace4a4e1 i2c_master_recv +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacf5988d cap_file_mmap +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad06b095 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad1b9927 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xad2df335 neigh_seq_next +EXPORT_SYMBOL vmlinux 0xad3c8f56 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xad414a49 generic_file_fsync +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad87f08d security_d_instantiate +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 0xade90bb1 flush_signals +EXPORT_SYMBOL vmlinux 0xadf2200a pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xadff3d6d genl_register_ops +EXPORT_SYMBOL vmlinux 0xae3d0f88 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xae5fee4c generic_read_dir +EXPORT_SYMBOL vmlinux 0xae8acf51 percpu_counter_set +EXPORT_SYMBOL vmlinux 0xae8cbe81 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0xae92491f blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xaea775cd security_path_rmdir +EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xaeb12845 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xaec2b6ae devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaef272aa sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xaf3c2ffa path_lookup +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +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 0xaf664dcc blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xaf832938 journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xafc7f702 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0xafda0c0d dump_trace +EXPORT_SYMBOL vmlinux 0xafe33502 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xb00ccc33 finish_wait +EXPORT_SYMBOL vmlinux 0xb00ef737 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xb0151d5f neigh_table_init +EXPORT_SYMBOL vmlinux 0xb027f40d input_free_device +EXPORT_SYMBOL vmlinux 0xb0296db7 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xb0405db0 journal_set_features +EXPORT_SYMBOL vmlinux 0xb056b366 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xb06dc5e3 skb_free_datagram +EXPORT_SYMBOL vmlinux 0xb077ef32 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xb07dfb3d acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0xb07fe53c skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xb0a122db pci_unmap_rom +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0c29b31 skb_find_text +EXPORT_SYMBOL vmlinux 0xb0c3e885 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xb0d4d341 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0e745fb ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0xb0fd52f6 sk_common_release +EXPORT_SYMBOL vmlinux 0xb10ec686 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xb11a9019 md_integrity_register +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb1406821 get_write_access +EXPORT_SYMBOL vmlinux 0xb147b755 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0xb14c3480 ppp_unregister_compressor +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 0xb1b38db8 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1d057f7 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xb1f89a60 __wake_up_bit +EXPORT_SYMBOL vmlinux 0xb1fc89ad xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xb203d750 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xb21715f0 ilookup5 +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +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 0xb230fd25 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xb25a95e5 blk_complete_request +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb27e13bc input_inject_event +EXPORT_SYMBOL vmlinux 0xb29a827b md_wakeup_thread +EXPORT_SYMBOL vmlinux 0xb2efb6be mca_read_stored_pos +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 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb36c6b65 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xb36f6840 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xb374de91 cdrom_release +EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xb3819110 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xb39b256b md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0xb39f38e7 mca_device_set_name +EXPORT_SYMBOL vmlinux 0xb3a302ff scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3c7a61e aio_complete +EXPORT_SYMBOL vmlinux 0xb3e0590d acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0xb3f285ff tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xb40d535c llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb4263372 skb_store_bits +EXPORT_SYMBOL vmlinux 0xb429410a posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb45578b8 memscan +EXPORT_SYMBOL vmlinux 0xb45b24f6 k8_nb_ids +EXPORT_SYMBOL vmlinux 0xb45de622 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xb4695e05 dev_disable_lro +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4aa9720 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xb4ac8d06 pipe_lock +EXPORT_SYMBOL vmlinux 0xb4c41da2 kmap_high +EXPORT_SYMBOL vmlinux 0xb4fe6a59 dquot_scan_active +EXPORT_SYMBOL vmlinux 0xb501254f xrlim_allow +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb5267835 kset_unregister +EXPORT_SYMBOL vmlinux 0xb53992c4 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb55c987d input_allocate_device +EXPORT_SYMBOL vmlinux 0xb58a969d vga_get +EXPORT_SYMBOL vmlinux 0xb58f6705 unregister_filesystem +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5b83790 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction +EXPORT_SYMBOL vmlinux 0xb5db0c16 vfs_write +EXPORT_SYMBOL vmlinux 0xb5fbd6e5 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xb607a30c journal_revoke +EXPORT_SYMBOL vmlinux 0xb619a73d skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb6292a69 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0xb62a0235 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0xb651a9c5 register_nls +EXPORT_SYMBOL vmlinux 0xb65a1f33 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0xb65b4932 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xb674cda0 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb69a7379 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6ba3048 install_exec_creds +EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6ed1e53 strncpy +EXPORT_SYMBOL vmlinux 0xb6f75773 set_pages_array_uc +EXPORT_SYMBOL vmlinux 0xb6fad23b delayed_slow_work_enqueue +EXPORT_SYMBOL vmlinux 0xb7216b97 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0xb72397d5 printk +EXPORT_SYMBOL vmlinux 0xb73a459e ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb773a83d xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xb7908e72 pci_bus_type +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7bf6644 pci_pme_active +EXPORT_SYMBOL vmlinux 0xb7c18040 send_sig +EXPORT_SYMBOL vmlinux 0xb7e54587 follow_pfn +EXPORT_SYMBOL vmlinux 0xb82d97ac release_firmware +EXPORT_SYMBOL vmlinux 0xb8421e57 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat +EXPORT_SYMBOL vmlinux 0xb85eb520 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xb85f3bbe pv_lock_ops +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb8728303 __bread +EXPORT_SYMBOL vmlinux 0xb87336f2 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xb876a064 pipe_to_file +EXPORT_SYMBOL vmlinux 0xb887765f xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb89e62ec remove_wait_queue +EXPORT_SYMBOL vmlinux 0xb8a6e122 sock_no_accept +EXPORT_SYMBOL vmlinux 0xb8b5ec08 sk_wait_data +EXPORT_SYMBOL vmlinux 0xb8bab504 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xb8c5269f get_super +EXPORT_SYMBOL vmlinux 0xb8c6ffeb mutex_lock +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb8fc1ab6 inetdev_by_index +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb9135605 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xb9225aca init_task +EXPORT_SYMBOL vmlinux 0xb93a705b filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xb942b513 smp_call_function_many +EXPORT_SYMBOL vmlinux 0xb944052d bio_sector_offset +EXPORT_SYMBOL vmlinux 0xb94fd5fa freeze_bdev +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb99d7b6f tcp_prot +EXPORT_SYMBOL vmlinux 0xb9c439c2 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xb9dd7edf generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xb9ee4b5f down_killable +EXPORT_SYMBOL vmlinux 0xb9fc8833 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xba01a008 netif_notify_peers +EXPORT_SYMBOL vmlinux 0xba1dda7a kill_pgrp +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba3cc386 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba5c73f7 elv_rb_add +EXPORT_SYMBOL vmlinux 0xba886bff d_alloc_name +EXPORT_SYMBOL vmlinux 0xba8a5b78 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbaacaff6 seq_write +EXPORT_SYMBOL vmlinux 0xbab40e3a tcf_em_tree_destroy +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 0xbaebd0b7 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xbb0ae3dc create_mnt_ns +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb17727e md_write_end +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb611274 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xbb719556 save_mount_options +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbd11660 acpi_device_hid +EXPORT_SYMBOL vmlinux 0xbbd9df65 do_SAK +EXPORT_SYMBOL vmlinux 0xbbf1bb59 acpi_get_hp_hw_control_from_firmware +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 0xbc33a37e scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xbc44dd47 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0xbc66733a ip_getsockopt +EXPORT_SYMBOL vmlinux 0xbc9c9f93 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0xbcb76a51 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcc62ece ppp_register_compressor +EXPORT_SYMBOL vmlinux 0xbcd8176a dev_add_pack +EXPORT_SYMBOL vmlinux 0xbcefb567 dma_pool_create +EXPORT_SYMBOL vmlinux 0xbd33270a gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xbd41529f scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xbd483e1c generic_removexattr +EXPORT_SYMBOL vmlinux 0xbd702430 pci_set_master +EXPORT_SYMBOL vmlinux 0xbd7a1755 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xbd84bbfa scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xbda28bae dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xbdb20b71 nf_register_hooks +EXPORT_SYMBOL vmlinux 0xbdcdb110 max8925_reg_write +EXPORT_SYMBOL vmlinux 0xbddcc4d9 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xbdebb6f3 idr_find +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe0d6628 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe168636 update_region +EXPORT_SYMBOL vmlinux 0xbe359542 mempool_create_node +EXPORT_SYMBOL vmlinux 0xbe3964cc block_invalidatepage +EXPORT_SYMBOL vmlinux 0xbe5b3802 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0xbebcdc0e bh_submit_read +EXPORT_SYMBOL vmlinux 0xbed2a05a call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf0c5c43 register_console +EXPORT_SYMBOL vmlinux 0xbf2c6909 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xbf3a43d3 kernel_accept +EXPORT_SYMBOL vmlinux 0xbf3bc4dd inet_release +EXPORT_SYMBOL vmlinux 0xbf4a63f6 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xbf72b72a jbd2_journal_init_inode +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 0xbfb18e07 spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0xbfb247fc seq_path +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfe0a456 __register_binfmt +EXPORT_SYMBOL vmlinux 0xbfe44c1e get_sb_ns +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +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 0xc028481e read_dev_sector +EXPORT_SYMBOL vmlinux 0xc049fbaf ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0xc04e079f pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +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 0xc0d4d900 spi_attach_transport +EXPORT_SYMBOL vmlinux 0xc0f65988 machine_real_restart +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc120065d nf_hook_slow +EXPORT_SYMBOL vmlinux 0xc12f8bf7 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xc138ef90 kmap_atomic +EXPORT_SYMBOL vmlinux 0xc1406759 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xc15a916a ip6_frag_match +EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic +EXPORT_SYMBOL vmlinux 0xc17abdf1 tty_port_init +EXPORT_SYMBOL vmlinux 0xc18b591c neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xc191c08b blk_put_request +EXPORT_SYMBOL vmlinux 0xc19634b2 vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0xc1abebe7 x86_hyper +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1d2c7b9 sync_blockdev +EXPORT_SYMBOL vmlinux 0xc1ed01e6 acpi_bus_add +EXPORT_SYMBOL vmlinux 0xc218578b qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xc241a220 jbd2_journal_abort +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 0xc2b1211c blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2d91b65 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc31ea431 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xc334e18f __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu +EXPORT_SYMBOL vmlinux 0xc369e4be __kfree_skb +EXPORT_SYMBOL vmlinux 0xc36e1f85 __serio_register_port +EXPORT_SYMBOL vmlinux 0xc377bc82 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xc38d9c7a down_timeout +EXPORT_SYMBOL vmlinux 0xc39f2e9b dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3d1b78f blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0xc3e1aba9 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xc3fa6a59 memchr +EXPORT_SYMBOL vmlinux 0xc3fa7b32 iput +EXPORT_SYMBOL vmlinux 0xc4029f6a seq_lseek +EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier +EXPORT_SYMBOL vmlinux 0xc42d4413 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xc4352367 inode_setattr +EXPORT_SYMBOL vmlinux 0xc435b5a1 __dquot_transfer +EXPORT_SYMBOL vmlinux 0xc4476d26 uart_suspend_port +EXPORT_SYMBOL vmlinux 0xc447a7a5 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0xc4718fc7 mapping_tagged +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc49a9ea7 udp_ioctl +EXPORT_SYMBOL vmlinux 0xc49bc862 register_qdisc +EXPORT_SYMBOL vmlinux 0xc4a71e6c load_nls_default +EXPORT_SYMBOL vmlinux 0xc4ac5dea pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xc4b40638 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xc4bb7aab scm_fp_dup +EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic +EXPORT_SYMBOL vmlinux 0xc4e5e02c thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0xc4e86b6d netdev_features_change +EXPORT_SYMBOL vmlinux 0xc4ed3444 tcp_sendpage +EXPORT_SYMBOL vmlinux 0xc5067ad0 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +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 0xc5ab3eac sock_map_fd +EXPORT_SYMBOL vmlinux 0xc5adf785 sock_queue_rcv_skb +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 0xc5ee6b97 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xc5f5018d scsi_prep_return +EXPORT_SYMBOL vmlinux 0xc62ca72c security_path_unlink +EXPORT_SYMBOL vmlinux 0xc63c1cb8 tty_name +EXPORT_SYMBOL vmlinux 0xc63c8be6 dw_spi_suspend_host +EXPORT_SYMBOL vmlinux 0xc66f4139 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xc68adc12 tty_shutdown +EXPORT_SYMBOL vmlinux 0xc68d95c8 module_refcount +EXPORT_SYMBOL vmlinux 0xc6b27673 netlink_set_err +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc729c31f dm_table_get_md +EXPORT_SYMBOL vmlinux 0xc7417786 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0xc7675c8b jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xc768de19 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7a9e169 pci_get_device +EXPORT_SYMBOL vmlinux 0xc7c8ec31 acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0xc7cd9975 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc7ef584f inet_del_protocol +EXPORT_SYMBOL vmlinux 0xc7f10ae8 tcp_proc_register +EXPORT_SYMBOL vmlinux 0xc7f42d31 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xc7fa39ff alloc_tty_driver +EXPORT_SYMBOL vmlinux 0xc8033012 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc81f5a3c mmc_request_done +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc8592d11 neigh_seq_stop +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 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8f36fba nla_append +EXPORT_SYMBOL vmlinux 0xc918e512 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xc95a0e97 unregister_8022_client +EXPORT_SYMBOL vmlinux 0xc9710835 alloc_file +EXPORT_SYMBOL vmlinux 0xc982193b neigh_table_clear +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9dd74c4 do_munmap +EXPORT_SYMBOL vmlinux 0xc9e8b616 mmc_free_host +EXPORT_SYMBOL vmlinux 0xc9f46ef4 blk_init_queue +EXPORT_SYMBOL vmlinux 0xca37eb83 elv_queue_empty +EXPORT_SYMBOL vmlinux 0xca3f58a5 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca72755a aio_put_req +EXPORT_SYMBOL vmlinux 0xca7f2c6c boot_cpu_data +EXPORT_SYMBOL vmlinux 0xca8727e9 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca8c9b10 pid_task +EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel +EXPORT_SYMBOL vmlinux 0xcac4309c thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0xcad48441 register_filesystem +EXPORT_SYMBOL vmlinux 0xcad63d8d proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xcae16325 set_disk_ro +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 0xcb22ce82 invalidate_inodes +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 0xcbabdb42 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xcbb6a7ca ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xcbc5bbcf kill_pid +EXPORT_SYMBOL vmlinux 0xcbf550a9 put_tty_driver +EXPORT_SYMBOL vmlinux 0xcbfb9470 dquot_release +EXPORT_SYMBOL vmlinux 0xcc0e2ba5 acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc4d1fe5 qdisc_list_del +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc53f898 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xcc5b27b5 acpi_extract_package +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc81c85a scsi_print_sense +EXPORT_SYMBOL vmlinux 0xcc97f58e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0xcca711d7 pci_write_vpd +EXPORT_SYMBOL vmlinux 0xccb2a3a1 open_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xcccd8f56 misc_register +EXPORT_SYMBOL vmlinux 0xccdcfdeb simple_readpage +EXPORT_SYMBOL vmlinux 0xcd3370ff fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0xcd40e564 do_sync_read +EXPORT_SYMBOL vmlinux 0xcd42748f generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xcd43e6ef xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xcd452646 dquot_operations +EXPORT_SYMBOL vmlinux 0xcd4b4c28 mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0xcd56c22d __put_cred +EXPORT_SYMBOL vmlinux 0xcd9b12d3 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xcda6cee7 skb_checksum_help +EXPORT_SYMBOL vmlinux 0xcdedc48a ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xcdfc8382 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0xcdfddedc nf_log_register +EXPORT_SYMBOL vmlinux 0xce03edbf bitmap_startwrite +EXPORT_SYMBOL vmlinux 0xce10ca7e devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xce146881 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce344ec4 scsi_print_command +EXPORT_SYMBOL vmlinux 0xce35ea65 setup_new_exec +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 0xce7b7122 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xce868bd5 pci_dev_driver +EXPORT_SYMBOL vmlinux 0xce86fa6f ppp_unit_number +EXPORT_SYMBOL vmlinux 0xcedf3406 registered_fb +EXPORT_SYMBOL vmlinux 0xceecfd70 mempool_free +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf0c0d4f inet6_bind +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 0xcf6262bd vfs_rmdir +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcf8f98bc seq_release +EXPORT_SYMBOL vmlinux 0xcf977b74 proc_create_data +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfcabdca tty_port_free_xmit_buf +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 0xcff2e175 lock_super +EXPORT_SYMBOL vmlinux 0xcffc2019 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xd013aaec generic_file_llseek +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd04419ff set_device_ro +EXPORT_SYMBOL vmlinux 0xd0469b08 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xd0635db8 genphy_update_link +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd09583ab is_container_init +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0d8621b strlen +EXPORT_SYMBOL vmlinux 0xd0df01a6 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0fa5f55 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd1781bec ipv4_specific +EXPORT_SYMBOL vmlinux 0xd189ca44 set_pages_array_wb +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd1d3cf2b default_file_splice_read +EXPORT_SYMBOL vmlinux 0xd1f4a595 dquot_initialize +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd1fa6028 slow_work_cancel +EXPORT_SYMBOL vmlinux 0xd22e01e4 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel +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 0xd26f1193 sock_no_getname +EXPORT_SYMBOL vmlinux 0xd27b22fa pnp_possible_config +EXPORT_SYMBOL vmlinux 0xd27d02dc pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match +EXPORT_SYMBOL vmlinux 0xd2afb365 __scsi_put_command +EXPORT_SYMBOL vmlinux 0xd2b4718d journal_ack_err +EXPORT_SYMBOL vmlinux 0xd2e6a582 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xd2e8afeb skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xd2faace1 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xd3084a09 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0xd30b3d85 init_net +EXPORT_SYMBOL vmlinux 0xd31df156 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xd337b902 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xd3453eaf pci_match_id +EXPORT_SYMBOL vmlinux 0xd3566446 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0xd3697a67 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xd383107d kobject_add +EXPORT_SYMBOL vmlinux 0xd38d5b01 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd3a37f93 nobh_write_begin +EXPORT_SYMBOL vmlinux 0xd3a6b6bd nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xd3a9fc37 del_gendisk +EXPORT_SYMBOL vmlinux 0xd3d5ff65 blk_execute_rq +EXPORT_SYMBOL vmlinux 0xd424c3c5 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xd42cf252 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xd4a27b2a rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xd4a7344c security_path_mkdir +EXPORT_SYMBOL vmlinux 0xd4a8d0d8 blk_register_region +EXPORT_SYMBOL vmlinux 0xd4bb8df9 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xd4d0ee3b kmem_cache_alloc_node_notrace +EXPORT_SYMBOL vmlinux 0xd4e4d9c9 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0xd50bb57b tcf_hash_create +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd51653ed simple_getattr +EXPORT_SYMBOL vmlinux 0xd5167af2 fsnotify_obtain_group +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd54b6320 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xd54c96c7 atomic64_add_unless_cx8 +EXPORT_SYMBOL vmlinux 0xd5544822 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0xd55b07c0 blk_init_tags +EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out +EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert +EXPORT_SYMBOL vmlinux 0xd56e5509 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xd5a02735 journal_release_buffer +EXPORT_SYMBOL vmlinux 0xd5a0da33 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xd5a795c1 dev_load +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5c53367 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xd5d4ab2b __breadahead +EXPORT_SYMBOL vmlinux 0xd5f73e7f dma_pool_free +EXPORT_SYMBOL vmlinux 0xd6072ed6 vfs_fsync +EXPORT_SYMBOL vmlinux 0xd6147ae2 up_read +EXPORT_SYMBOL vmlinux 0xd61dc016 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xd62974c1 ether_setup +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd6492286 dquot_quota_on_path +EXPORT_SYMBOL vmlinux 0xd6a6d12e key_link +EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xd6b10a57 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6c75408 kmem_cache_size +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd7150a4d _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xd747584e nobh_writepage +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7a0dc67 security_path_rename +EXPORT_SYMBOL vmlinux 0xd7cd7606 unregister_qdisc +EXPORT_SYMBOL vmlinux 0xd7d0c645 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0xd7d66cd7 simple_setsize +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7f36812 otg_get_transceiver +EXPORT_SYMBOL vmlinux 0xd80dbfce bio_endio +EXPORT_SYMBOL vmlinux 0xd83c2093 alloc_trdev +EXPORT_SYMBOL vmlinux 0xd8477ccb pskb_copy +EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user +EXPORT_SYMBOL vmlinux 0xd85ba9fa request_key +EXPORT_SYMBOL vmlinux 0xd89298b4 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd9571fe5 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xd957536d xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd98dcb41 dm_snap_cow +EXPORT_SYMBOL vmlinux 0xd9bd9f9d inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xd9c272aa mca_mark_as_unused +EXPORT_SYMBOL vmlinux 0xd9e1cc87 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xd9eefdf3 __dst_free +EXPORT_SYMBOL vmlinux 0xd9fe816d tcp_parse_options +EXPORT_SYMBOL vmlinux 0xda08c0d7 pcibios_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xda0974fb arp_broken_ops +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda2a9777 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xda511860 fb_show_logo +EXPORT_SYMBOL vmlinux 0xda5661a3 add_wait_queue +EXPORT_SYMBOL vmlinux 0xda5b5c54 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0xda7589e9 padata_start +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda81769a sock_i_ino +EXPORT_SYMBOL vmlinux 0xda81dc29 uart_write_wakeup +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 0xdaa6fb7f dev_alloc_name +EXPORT_SYMBOL vmlinux 0xdad4f008 mdiobus_scan +EXPORT_SYMBOL vmlinux 0xdae084e5 spi_release_transport +EXPORT_SYMBOL vmlinux 0xdb071dc9 sock_wfree +EXPORT_SYMBOL vmlinux 0xdb0d2067 block_write_begin +EXPORT_SYMBOL vmlinux 0xdb33da37 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdba4c45a lock_sock_fast +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbe08d7f input_mt_create_slots +EXPORT_SYMBOL vmlinux 0xdbe16d68 writeback_inodes_sb_if_idle +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 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc2f8897 security_inode_readlink +EXPORT_SYMBOL vmlinux 0xdc3c5fe2 neigh_compat_output +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc4ff41d ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xdc6ae43e splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0xdc985f09 override_creds +EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family +EXPORT_SYMBOL vmlinux 0xdca0ed4e gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xdcb20c5f tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xdcba7002 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xdce251a7 mpage_writepage +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd300dd5 simple_rename +EXPORT_SYMBOL vmlinux 0xdd343dcc generic_setattr +EXPORT_SYMBOL vmlinux 0xdd350f9a tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xdd4afa6e blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xdd605d03 vfs_mknod +EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xdd70fc73 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xdd877b28 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xdda9a4b3 init_buffer +EXPORT_SYMBOL vmlinux 0xddbc0690 generic_getxattr +EXPORT_SYMBOL vmlinux 0xddd368bc sk_run_filter +EXPORT_SYMBOL vmlinux 0xddf91613 netif_rx_ni +EXPORT_SYMBOL vmlinux 0xde191539 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xde1f9ea5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xde27ad62 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xde3c1971 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xde3d9153 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xde472d70 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xde629395 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xdedbcaab scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0xdeee8b96 dcache_lock +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +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 0xdf65271e dquot_quota_off +EXPORT_SYMBOL vmlinux 0xdf6aefef neigh_seq_start +EXPORT_SYMBOL vmlinux 0xdf859ec1 mmc_remove_host +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfa20bb4 unlock_new_inode +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfe34ca9 __nla_reserve +EXPORT_SYMBOL vmlinux 0xdff263c1 sockfd_lookup +EXPORT_SYMBOL vmlinux 0xdffc6811 kmem_cache_alloc_notrace +EXPORT_SYMBOL vmlinux 0xe0070c33 remap_pfn_range +EXPORT_SYMBOL vmlinux 0xe03d928c blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +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 0xe0c7eea8 sock_create +EXPORT_SYMBOL vmlinux 0xe0eecdfc tcp_connect +EXPORT_SYMBOL vmlinux 0xe100f362 kobject_init +EXPORT_SYMBOL vmlinux 0xe12bd527 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe13ffa94 softnet_data +EXPORT_SYMBOL vmlinux 0xe15cd5fc put_io_context +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1990d81 kernel_read +EXPORT_SYMBOL vmlinux 0xe1d03bab max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xe1e0d040 hippi_type_trans +EXPORT_SYMBOL vmlinux 0xe1f762d0 proc_mkdir +EXPORT_SYMBOL vmlinux 0xe230faa6 generic_delete_inode +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe279740e udplite_prot +EXPORT_SYMBOL vmlinux 0xe287a088 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xe2ce78bf elevator_exit +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2d68e6b xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2e866fb fb_set_cmap +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe3292aba alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xe32bf220 __page_symlink +EXPORT_SYMBOL vmlinux 0xe336d95f eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xe33ee0cc skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0xe38a0ba3 generic_show_options +EXPORT_SYMBOL vmlinux 0xe3c6079e atomic64_set_cx8 +EXPORT_SYMBOL vmlinux 0xe3c73223 tcp_child_process +EXPORT_SYMBOL vmlinux 0xe3d9f05d qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xe3e3115d dev_get_flags +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 0xe3fe1ec0 __blockdev_direct_IO_newtrunc +EXPORT_SYMBOL vmlinux 0xe4122203 follow_up +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe43f9377 file_update_time +EXPORT_SYMBOL vmlinux 0xe456d99a __init_rwsem +EXPORT_SYMBOL vmlinux 0xe46843b4 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe495482f pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xe49e2fb0 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xe4a25391 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xe4af0c60 handle_sysrq +EXPORT_SYMBOL vmlinux 0xe4cda99f journal_errno +EXPORT_SYMBOL vmlinux 0xe4e5e6cd input_unregister_handle +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 0xe53da2fb journal_check_used_features +EXPORT_SYMBOL vmlinux 0xe548e474 pnpbios_protocol +EXPORT_SYMBOL vmlinux 0xe55e144a proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5b10d5e generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe6060dc3 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xe60753fc inet_select_addr +EXPORT_SYMBOL vmlinux 0xe61b8f05 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xe62875a6 insert_inode_locked +EXPORT_SYMBOL vmlinux 0xe644ea27 generic_write_sync +EXPORT_SYMBOL vmlinux 0xe64a6794 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xe6540d12 input_register_device +EXPORT_SYMBOL vmlinux 0xe6639666 datagram_poll +EXPORT_SYMBOL vmlinux 0xe665d297 bdi_init +EXPORT_SYMBOL vmlinux 0xe66c505e sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xe68e9ca0 find_get_page +EXPORT_SYMBOL vmlinux 0xe690b8fd __ipv6_isatap_ifid +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6adc5f2 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xe6b10d0e bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xe6b8f685 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0xe6bd4ed3 blkdev_put +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 0xe7317674 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0xe74cf0a7 mempool_destroy +EXPORT_SYMBOL vmlinux 0xe799f502 dev_mc_del +EXPORT_SYMBOL vmlinux 0xe7a15a49 inet6_release +EXPORT_SYMBOL vmlinux 0xe7a28840 inet_add_protocol +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 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe82fe088 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xe83270a0 pci_select_bars +EXPORT_SYMBOL vmlinux 0xe851a162 find_lock_page +EXPORT_SYMBOL vmlinux 0xe867d9b4 d_genocide +EXPORT_SYMBOL vmlinux 0xe874f70a uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe886e67c poll_freewait +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 0xe8eb1a0c nf_log_bind_pf +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 0xe92f3573 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xe930439f mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0xe9872c27 simple_write_begin +EXPORT_SYMBOL vmlinux 0xe98dd999 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe9b1fa2c seq_open_private +EXPORT_SYMBOL vmlinux 0xe9d0f49e ps2_handle_response +EXPORT_SYMBOL vmlinux 0xe9e09dd2 scsi_print_result +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea1678d7 lro_receive_skb +EXPORT_SYMBOL vmlinux 0xea2d33a2 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0xea337d7a inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xea54f987 ilookup +EXPORT_SYMBOL vmlinux 0xea5fb642 block_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0xea6196aa d_obtain_alias +EXPORT_SYMBOL vmlinux 0xea6c85fc inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xea94bd58 cdev_del +EXPORT_SYMBOL vmlinux 0xea9c10c1 dquot_alloc +EXPORT_SYMBOL vmlinux 0xea9d8c40 kmalloc_caches +EXPORT_SYMBOL vmlinux 0xea9f2b07 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xeaadf15d xfrm_lookup +EXPORT_SYMBOL vmlinux 0xeab8e8d0 key_task_permission +EXPORT_SYMBOL vmlinux 0xeabcce41 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xead7d32e i2c_master_send +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeaf3129a consume_skb +EXPORT_SYMBOL vmlinux 0xeb09686b scsi_execute_req +EXPORT_SYMBOL vmlinux 0xeb0d0464 lease_get_mtime +EXPORT_SYMBOL vmlinux 0xeb0e49a2 sock_i_uid +EXPORT_SYMBOL vmlinux 0xeb3cda25 scsi_target_resume +EXPORT_SYMBOL vmlinux 0xeb50f599 tcp_splice_read +EXPORT_SYMBOL vmlinux 0xeb71c214 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n +EXPORT_SYMBOL vmlinux 0xeb8b7fdb posix_lock_file +EXPORT_SYMBOL vmlinux 0xeba60d95 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull +EXPORT_SYMBOL vmlinux 0xebdf9ab6 mmc_resume_host +EXPORT_SYMBOL vmlinux 0xebffbc6f tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xec0c19f8 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xec0ea5ed uart_update_timeout +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec165c9c dev_set_drvdata +EXPORT_SYMBOL vmlinux 0xec1dd3d7 d_prune_aliases +EXPORT_SYMBOL vmlinux 0xec312e83 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xec44e1f3 rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec543901 napi_complete +EXPORT_SYMBOL vmlinux 0xec65e16e tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xec76ca9e generic_setxattr +EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0xec9efd6c tcf_action_exec +EXPORT_SYMBOL vmlinux 0xecbfaca1 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xeccf7af7 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xed15cecb keyring_clear +EXPORT_SYMBOL vmlinux 0xed29d56f idr_remove +EXPORT_SYMBOL vmlinux 0xed2dd37a xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xed3422d6 inode_init_once +EXPORT_SYMBOL vmlinux 0xed4385b8 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xed8c53ac _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xeda94467 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xedb00f93 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xedb3a132 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0xedb9e875 noop_llseek +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xede0a1b0 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee3af653 sock_no_listen +EXPORT_SYMBOL vmlinux 0xee3eacc7 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xee5870b5 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee8dbac7 __pci_register_driver +EXPORT_SYMBOL vmlinux 0xee8e76f6 tcp_shutdown +EXPORT_SYMBOL vmlinux 0xee986f42 cfb_imageblit +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb235d2 d_rehash +EXPORT_SYMBOL vmlinux 0xeec411b9 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0xeecc147d set_anon_super +EXPORT_SYMBOL vmlinux 0xeed23dbb blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0xeed7600a block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xef0f3589 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xef1bce2c elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xef1d35b7 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0xef306f64 log_wait_commit +EXPORT_SYMBOL vmlinux 0xef3af9a2 __napi_schedule +EXPORT_SYMBOL vmlinux 0xef3bd862 mca_find_unused_adapter +EXPORT_SYMBOL vmlinux 0xef498f2e tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0xef62e85f mempool_alloc +EXPORT_SYMBOL vmlinux 0xef68a413 sock_create_lite +EXPORT_SYMBOL vmlinux 0xef6eba41 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool +EXPORT_SYMBOL vmlinux 0xef77488d vm_insert_pfn +EXPORT_SYMBOL vmlinux 0xef805247 skb_set_dev +EXPORT_SYMBOL vmlinux 0xef87ba74 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0xef8fec08 sget +EXPORT_SYMBOL vmlinux 0xef9a4aad dev_set_mtu +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefa45f0d pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xefa5d6d2 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0xefad6afe ppp_input +EXPORT_SYMBOL vmlinux 0xefb123c0 tty_unregister_driver +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 0xefe48556 dm_table_get_size +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 0xf013a4f1 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xf019c9d8 kernel_listen +EXPORT_SYMBOL vmlinux 0xf0241f31 should_remove_suid +EXPORT_SYMBOL vmlinux 0xf02a03a5 km_query +EXPORT_SYMBOL vmlinux 0xf05a8426 security_path_chmod +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf0713fce ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xf08f59e8 md_unregister_thread +EXPORT_SYMBOL vmlinux 0xf09c7f68 __wake_up +EXPORT_SYMBOL vmlinux 0xf09d3f84 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0xf0a056f3 md_done_sync +EXPORT_SYMBOL vmlinux 0xf0b48e77 __brelse +EXPORT_SYMBOL vmlinux 0xf0c0b61f ps2_end_command +EXPORT_SYMBOL vmlinux 0xf0c16542 tcf_register_action +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 0xf1167946 task_nice +EXPORT_SYMBOL vmlinux 0xf1174d4d set_pages_uc +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf16157b4 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf17cd66c phy_start_interrupts +EXPORT_SYMBOL vmlinux 0xf18caf46 phy_device_create +EXPORT_SYMBOL vmlinux 0xf191b787 security_path_mknod +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +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 0xf226db1f inet_register_protosw +EXPORT_SYMBOL vmlinux 0xf22aeb11 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0xf2346abe generic_file_open +EXPORT_SYMBOL vmlinux 0xf2357254 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0xf2371713 dev_mc_flush +EXPORT_SYMBOL vmlinux 0xf23fd269 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xf25f1981 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0xf2933a01 block_commit_write +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2a0376e user_revoke +EXPORT_SYMBOL vmlinux 0xf2ae57aa netdev_bonding_change +EXPORT_SYMBOL vmlinux 0xf2b63182 pci_disable_device +EXPORT_SYMBOL vmlinux 0xf2cce559 complete_request_key +EXPORT_SYMBOL vmlinux 0xf2cd2bef dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xf2e74040 mca_set_adapter_name +EXPORT_SYMBOL vmlinux 0xf2f245cb __dquot_free_space +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf31e77ba dqget +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 0xf33f9526 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf35e2047 vfs_llseek +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 0xf3bb025d pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3ee28d0 posix_acl_permission +EXPORT_SYMBOL vmlinux 0xf3f86c18 phy_enable_interrupts +EXPORT_SYMBOL vmlinux 0xf41a8da7 blk_start_queue +EXPORT_SYMBOL vmlinux 0xf41c48a8 pcim_iomap +EXPORT_SYMBOL vmlinux 0xf427350f alloc_disk_node +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf46936be padata_do_serial +EXPORT_SYMBOL vmlinux 0xf481d4fc bdevname +EXPORT_SYMBOL vmlinux 0xf487b640 start_tty +EXPORT_SYMBOL vmlinux 0xf48a2c4c MCA_bus +EXPORT_SYMBOL vmlinux 0xf4934eff dm_register_target +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4b10b7a dst_discard +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4d5de0a kernel_connect +EXPORT_SYMBOL vmlinux 0xf4df7531 cdrom_open +EXPORT_SYMBOL vmlinux 0xf4ee476a scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f458ab netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xf4ff754a ida_init +EXPORT_SYMBOL vmlinux 0xf502d273 acpi_get_current_resources +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 0xf552250c dev_get_by_name +EXPORT_SYMBOL vmlinux 0xf5585829 filemap_fault +EXPORT_SYMBOL vmlinux 0xf55f3d53 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xf5975449 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0xf5b1788d scsi_ioctl +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c4c495 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +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 0xf5fdd4cc blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0xf5ff3a6b unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xf60789b2 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0xf609aa30 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0xf619fdd8 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xf6428502 inet6_getname +EXPORT_SYMBOL vmlinux 0xf65502a8 input_register_handler +EXPORT_SYMBOL vmlinux 0xf6569b9d cad_pid +EXPORT_SYMBOL vmlinux 0xf658fd51 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xf664b364 i2c_transfer +EXPORT_SYMBOL vmlinux 0xf67ee6a2 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xf681722f alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0xf69dc99e textsearch_prepare +EXPORT_SYMBOL vmlinux 0xf6a2497f i2c_release_client +EXPORT_SYMBOL vmlinux 0xf6b56021 may_umount +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6d4fe5f unregister_console +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf70d3c35 block_write_full_page +EXPORT_SYMBOL vmlinux 0xf712a24c scsi_execute +EXPORT_SYMBOL vmlinux 0xf71973b2 zero_fill_bio +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xf762eba2 thaw_bdev +EXPORT_SYMBOL vmlinux 0xf769c1c9 find_vma +EXPORT_SYMBOL vmlinux 0xf77fffec __invalidate_device +EXPORT_SYMBOL vmlinux 0xf78a6d74 skb_clone +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7916bcc sync_inodes_sb +EXPORT_SYMBOL vmlinux 0xf7b89589 get_sb_nodev +EXPORT_SYMBOL vmlinux 0xf7b905a8 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xf7cb6300 xfrm6_rcv_spi +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 0xf814e4bb tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xf8188ee2 I_BDEV +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf83b781a console_stop +EXPORT_SYMBOL vmlinux 0xf850b2df sg_miter_start +EXPORT_SYMBOL vmlinux 0xf858b627 phy_device_register +EXPORT_SYMBOL vmlinux 0xf8661c3e set_pages_nx +EXPORT_SYMBOL vmlinux 0xf87fdbb0 tcp_check_req +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf8a6fa86 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xf8af8a37 close_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xf8d8cc89 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xf8dad62a __serio_register_driver +EXPORT_SYMBOL vmlinux 0xf8e52fbf skb_pull +EXPORT_SYMBOL vmlinux 0xf8e5bd06 do_sync_write +EXPORT_SYMBOL vmlinux 0xf8f1a967 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0xf8fe5dd2 dev_remove_pack +EXPORT_SYMBOL vmlinux 0xf91957d3 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xf92ca10e i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xf93eb255 mmc_host_disable +EXPORT_SYMBOL vmlinux 0xf940a328 __next_cpu +EXPORT_SYMBOL vmlinux 0xf97c805e file_remove_suid +EXPORT_SYMBOL vmlinux 0xf986af2d tcp_tso_segment +EXPORT_SYMBOL vmlinux 0xf98c652f blk_make_request +EXPORT_SYMBOL vmlinux 0xf99f4482 generic_write_checks +EXPORT_SYMBOL vmlinux 0xf9a1c6f4 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9bb974c icmpv6_send +EXPORT_SYMBOL vmlinux 0xf9f11fb1 cdev_init +EXPORT_SYMBOL vmlinux 0xfa164c2a blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xfa3bfd69 vc_resize +EXPORT_SYMBOL vmlinux 0xfa49c0b5 remove_from_page_cache +EXPORT_SYMBOL vmlinux 0xfa4ae626 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xfa4ed5f0 journal_abort +EXPORT_SYMBOL vmlinux 0xfa699e6a __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0xfa7932d5 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xfaa5d2f6 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xfaace614 generic_block_bmap +EXPORT_SYMBOL vmlinux 0xfac9345b jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xfaccb352 textsearch_unregister +EXPORT_SYMBOL vmlinux 0xfad443c2 __lookup_one_len +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb06d579 iunique +EXPORT_SYMBOL vmlinux 0xfb0851b5 vfs_follow_link +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb1d0aeb sk_release_kernel +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb76c862 journal_update_format +EXPORT_SYMBOL vmlinux 0xfb79c864 simple_empty +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfb96f1d1 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0xfb9be76a set_page_dirty +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbd06e19 kthread_create +EXPORT_SYMBOL vmlinux 0xfbd34642 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc1ba5bd keyring_search +EXPORT_SYMBOL vmlinux 0xfc2e9fb9 dquot_resume +EXPORT_SYMBOL vmlinux 0xfc3239d0 set_bh_page +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 0xfc9d6e62 km_report +EXPORT_SYMBOL vmlinux 0xfca1ef2e serio_close +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcb6a145 __napi_complete +EXPORT_SYMBOL vmlinux 0xfcb7660a rfkill_set_states +EXPORT_SYMBOL vmlinux 0xfcbf8dee __break_lease +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcec5caf generic_make_request +EXPORT_SYMBOL vmlinux 0xfcf8227f simple_transaction_set +EXPORT_SYMBOL vmlinux 0xfcf8c575 blk_fetch_request +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd33a3d2 simple_transaction_get +EXPORT_SYMBOL vmlinux 0xfd37d13e icmp_send +EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xfd760177 blk_start_request +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe0b0436 nf_getsockopt +EXPORT_SYMBOL vmlinux 0xfe15e878 dev_trans_start +EXPORT_SYMBOL vmlinux 0xfe183c9e put_mnt_ns +EXPORT_SYMBOL vmlinux 0xfe1f6b14 simple_statfs +EXPORT_SYMBOL vmlinux 0xfe514c4c inet_listen +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe602278 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xfe62c946 uart_resume_port +EXPORT_SYMBOL vmlinux 0xfe6dd92a sock_no_bind +EXPORT_SYMBOL vmlinux 0xfe71d4da journal_load +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe9115c4 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xfeb7560e dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfed53143 dq_data_lock +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfeeb2198 dentry_open +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff0e51fc nobh_write_end +EXPORT_SYMBOL vmlinux 0xff0eb3f5 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xff1c211b request_firmware +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff36f548 mb_cache_create +EXPORT_SYMBOL vmlinux 0xff44a6df tty_port_close +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 0xff76272e jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0xff778fdf dw_spi_resume_host +EXPORT_SYMBOL vmlinux 0xff78a2c4 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xff8f99ca lock_sock_nested +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 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 0x022b1f29 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x022e40f0 __tracepoint_kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x02d6f5da kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x04072afd kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x094ac8f4 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0b93fbf5 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0f980bef gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12d1b23b kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x19ce3296 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1db49742 kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e036c9e kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e4580bb kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e804d90 kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x203b09b7 kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x215a9848 fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2322e039 kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x24e6106f kvm_after_handle_nmi +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 0x2e92867f __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x307ebc0c is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3152c03c kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x36429ae3 kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3e784b10 kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406813bc __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x409c8805 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x43244899 kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4a60b456 kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4a7cbe69 is_error_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4c2346de kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5102cf94 __tracepoint_kvm_nested_vmexit_inject +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 0x59685583 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x599086dd kvm_handle_fault_on_reboot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x59b80296 kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x59bd70f9 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5a423cd8 gfn_to_memslot_unaliased +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5affceb8 __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5b9f2b0c kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5bc39bcb kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5fa793cf emulator_write_emulated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x640f3d44 kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x64fecb55 kvm_report_emulation_failure +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x68a91425 kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6ef36188 kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6fcfc837 kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8436023c kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x85ac8ecb kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x882188e2 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x88c7f6c7 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8fe99698 kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9227f4b3 __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x93074bd5 kvm_get_msr_common +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 0x9cc011f6 gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa0250a2c kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa361bc65 kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa7c1add9 kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa9a84e44 kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaa4da853 kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xab132643 kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaf051022 kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb3b91a6e kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb7b44de2 kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb8c03036 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbb1c50fb kvm_inject_pending_timer_irqs +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 0xbdee52f1 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc08f1560 kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc5c288c3 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc655480a kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc6cdc394 kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc96e4bb5 kvm_requeue_exception_e +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 0xd0c4dfec kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd15b9414 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd1986bd2 kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd1d9fe7e kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd24fe221 kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd5cc2e2f kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7be16af __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7c71693 emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe1387494 kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe5635e9e kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe662ecb1 kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xee669b14 kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf2877904 kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf429bbb2 kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf6e15390 kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xff6fc44e 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 0xe3fd4fc4 crypto_aes_set_key +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xcdca9cc1 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x2d119901 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xc7122bff async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x45f157d3 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x9adb128c async_raid6_2data_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 0x03d20107 ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x07660691 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x12958ece ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x23d120d4 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x31586f5a ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3695bb70 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4fd617ad ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5fde4d0c ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x69b4e5af ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa4b3ddd0 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc16fd6a5 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xccc3ba4a ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe39b6ea7 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf04f8e18 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x07d3a3be btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x2e2a1e73 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x46251568 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x5bb2f9f2 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xbf748b73 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc2daf665 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xdf6abbab btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xfd30fbe2 btmrvl_check_evtpkt +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 0x65801bfd tpm_bios_log_setup +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x6ae0aca9 tpm_bios_log_teardown +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 0x032cd704 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0d054e38 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1160724b gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1e55a70f gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2f5627da gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x34fe1140 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x40da0095 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4ee57cb9 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x53fba6c7 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x548a51ac gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5f2df941 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7a8a71b3 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x87f1fbc8 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9787dc36 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa5be4be1 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb122034a gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xcce80f0c gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe9a363f9 gigaset_dbg_buffer +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 0x0987a170 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x09f844bd sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x116d38c8 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x9107d7a4 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xf54012c3 sm501_misc_control +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 0x1780ea58 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5435fc84 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x683ab085 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x72fa54d4 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd49cd9f3 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf33cbf93 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 0x26b81384 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x2fe7ae18 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x78b4b0f6 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xe1890a63 add_mtd_blktrans_dev +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 0x5407ad36 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x6150ca56 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x7317dad2 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x8859f982 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xab994ef7 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 0x8fd250b5 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 0x0028580f rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2395740a rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x44bb3e68 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x458e6c62 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4aca11cc rt2800_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4d5b3042 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4d7f6601 rt2800_init_bbp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4f5c350b rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x66e3ccca rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6e96bb54 rt2800_mac80211_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x73458eb2 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8157d9b8 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x883152b3 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x89320375 rt2800_init_rfcsr +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x896d9574 rt2800_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x89be5b9a rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9913b757 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x99385c26 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa4779a32 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc5770567 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd187fcf3 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd6ccf34e rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfc96294a rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfff9f63d rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x10052772 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1d72c5c9 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1fb728e4 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2e8833c7 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x36d16eaa rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x46493731 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x50ede41f rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5216c081 rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5416ca02 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x610085ca rt2x00mac_rfkill_poll +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 0x9f8c4d22 rt2x00lib_rxdone +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 0xc7078857 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdc9d4bdd rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdf5bd276 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdfcd9652 rt2x00lib_resume +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 0xeff5e6cc rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf19a568b rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x0edfced3 rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x14911819 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x288c39cc rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x2f358f7a rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x45f09ce5 rt2x00pci_uninitialize +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 0xc4a63e7a rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xc9cbe4b3 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x06481aaf rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0f1bb840 rt2x00usb_vendor_request_large_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x10e49804 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2eb34c51 rt2x00usb_kick_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x384f1f06 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3b7bab26 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4d797724 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5457e585 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x54ef12d2 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x894de62e rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa03baeb4 rt2x00usb_kill_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xca6879b6 rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xcd945070 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd4f3ed36 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd8d34252 rt2x00usb_vendor_request_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 0x866b5369 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x06ce4a95 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x09ea3cc0 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12bc8e2f iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x16d5164f iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1780e2ec iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x22a381a7 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x28f8337f iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2f5fa0a0 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3454e1f5 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3979a06a iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3999e8c3 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4056d815 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x41e337f6 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4eec054b iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x53a2f5f7 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x55aa5bff iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x66ead4b9 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6e707d5c iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6e7a61f7 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8194866c iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8b111549 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9b83f343 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9f7b09e5 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa1eb9ea8 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xab781582 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaba0a762 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xad7d7075 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb4ccaa47 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbbd91714 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc2438204 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc2de27d9 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc74767a7 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd60c4a81 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdcc46aaa iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdd035b99 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe988fccb iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe9ab1b21 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf463a21e iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf6b722fa iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf6feac37 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf8822603 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xffad19d6 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0d0567c4 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x18d3cc1a iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x46f9cd3a iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4e338f27 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5548f44d iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x55762936 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x56c83186 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5c03b2b2 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5e5f3c72 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x67fbc28a iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x758172e5 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8638f0bf iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8fe9ab5c iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xcae8fa38 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xcccb00f4 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe8d10033 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x21ee1609 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2c7c767a sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x345791a0 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3b1490d0 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x613001cf sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x669f2096 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6829fedb sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6f73f25f sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x71ea16d2 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x795672cb sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9ab920ec sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa3444ff8 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa89abbfe sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaf6549e1 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbbd5dfae sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbf1544c3 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc0e31cf2 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc348108c sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xca9390c1 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe3c5105a sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf16bb137 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf296ddbf sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfa67cdd8 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x3e0064a5 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x7be95e04 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x8713e20b srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xb3eee9ce srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xd1b99bca srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xfad36f2b srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x100e39b1 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x1bdbb52e scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x38b4d461 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4748d8c5 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4b226f73 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4faeeca0 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9019967f scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb0db7176 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd2e6a8b7 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x06ca5411 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x13d2f44d iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1442ff0b iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x248defee iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2d8a1058 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3b1788cf iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4241af35 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x469cfb90 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x661cfcd3 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x72558106 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa7037508 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb553de75 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc49b0262 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcf0ec048 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdaf01250 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdc5b56e1 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdec0e495 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe14a5c86 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe548ee03 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe6040d9d iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf8a7daf8 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xffdd8dd9 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x0d549686 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x4d08b5a6 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xb16979dd sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xca7305b3 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x3458aefa srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x533c35f9 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x7764ea70 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xeff00b2c srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xf9df2199 srp_attach_transport +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 0xe569c5bf 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 0x3971b1cb usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x3c217d8a sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x40a8dae2 usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x4952baea usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x4c60e53a usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x5a3f658e usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x6142c0f4 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x77d36d00 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x7b82e82d usbip_task_init +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xa508a80e usbip_stop_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xa5b28262 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xc26198e2 usbip_start_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xc4dea495 usbip_recv_xbuff +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 0xe87f2686 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xf04c8b4e usbip_event_add +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 0x606ccefe usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xdf333704 usbatm_usb_probe +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 0x0744273a usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3f32e2dd usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x42628921 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4f3c15ea usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6fdd6eff usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x82314723 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8ee7edc6 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8f6a3eb9 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8f8d6369 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x980c8a53 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9d1dc787 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xaa48af0a usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xaac8db11 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbc099593 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbd57aad2 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd02d5b53 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd343fa14 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe5e2cd17 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf5dbe7f6 ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x05f4905e usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1db4d01a usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1fa60b2d usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x29608525 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x38214686 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5028ae82 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5fba2e95 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6144414b usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x65d828e9 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6682dad4 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6ded4eee usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7c958c77 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7f413b64 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x80127f2e usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x92aae529 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbbc930c8 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbd02713c fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc13c5b6c usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc43651c2 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcde2845a usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcfa71380 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd5529bc8 usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xdb80b745 usb_stor_bulk_srb +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 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 0x45c2a7a1 fat_free_clusters +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 0x6d1ea983 fat_getattr +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 0xb6386efe fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xba7a45ba fat_sync_inode +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 0x137af3b0 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x4de2fdec nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6a21cd0d nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xce967afb nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xea7f6fb9 nlmclnt_proc +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 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 0x2371fe55 o2hb_unregister_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 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81d7e55d o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9030c99a o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9f2dd570 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 0xcf2af0f1 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 0xd7189c9a 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 0xf4ac510a o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x349c9e79 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x5c9663aa dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x88ad7916 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x89d4c0fd dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xa4e28266 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xaa70b922 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 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 0x24f0befe 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 0x93767378 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00ad4f41 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0e8dd19d dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x13aa9c1c dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1540983a dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x17fc8f3c dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d0bb4b6 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2527dd4d dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2e6007ab dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4352c4f1 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x440c2e25 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x545c2019 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5a342668 dccp_disconnect +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 0x92b65874 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x94db5759 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x94fbca77 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9a427bb3 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9f71e98c dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00a52b9 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa71ec7a4 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa872edb8 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xae38040a dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xaf2cfae6 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb315a0e0 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc81d061b dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcc3549c1 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd30716dd dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe2a2b8f5 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe37ba50f dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xeb125550 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xeff6e082 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf4302e95 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf6472f41 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf97d2e2b dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfbfaa926 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x10c82543 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x331e9644 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x4f13f675 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x58c01d93 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7feb6b52 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x85a17679 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x637d8c4e arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xa9a90025 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 0xea7360b3 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 0x13c6dff9 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x3a583d79 nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x3ad0b986 nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x730e4525 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xac8f1ed4 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xb61bbeb4 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xb9d5d1fc nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xebb51c04 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 0x2d6986ee tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x45d505df tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x59c6ca31 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x6ec21abc tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd385dbb9 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x8c97f0e6 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0030072b l2tp_tunnel_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0f94db89 l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x13005981 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1f7291a0 l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x31c5dbd2 l2tp_udp_recv_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3293f0ef l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4395110d l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x69d41271 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6d958623 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7eda6189 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa6dec8cb l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa8dde881 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb3b4ab47 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xca4d03bd l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xcc6bf538 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd442dd21 l2tp_xmit_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd7938321 l2tp_tunnel_find +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 0x19fa1be4 nf_conntrack_l4proto_tcp4 +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 0x2bcc7966 nf_conntrack_l4proto_tcp6 +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 0x7ae10e55 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7d47d940 nf_ct_port_tuple_to_nlattr +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 0x865a3991 nf_conntrack_register_notifier +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 0x91357f5d nf_conntrack_l4proto_udp4 +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 0xa3031ddf nf_conntrack_l4proto_udp6 +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 0xb601a2f8 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +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 0x4eaa7468 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x29caed20 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0eb1fb22 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1a14c2d2 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x30efa285 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5217cf4f set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x56afce30 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x631a8146 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7106aec2 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb7e9b257 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf23315be set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf324e941 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xf8a885b2 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x88da1c0f nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x924d0305 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x958cebfa nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xd1cd1e1b 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 0x0c6aa0dd ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2fe8359e nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3ea18dfc nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x43680418 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4e1cec29 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7488ffe4 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7ebfcfcb ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x80ef5780 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8cfb88f0 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8d01bd04 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb77f6fdc ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd8642cd1 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfed09331 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x1135603e nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x3723712c nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x5ca30dd2 nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x24f3a908 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3a13bdd8 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x717c86d7 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7a894e55 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd9106866 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xda000f32 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xd8a9f402 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x202ba009 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2642e2ab xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2d60f5e1 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x64dbbe51 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6871255e xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6f926a7f xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7be624e1 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7df7cf78 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x81f39d12 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8ea8a849 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9797973a xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9cb06e9c xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa967193e xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xebb09b1a xt_table_unlock +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 0x050fb35b rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x1c9a2719 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 0x5c31660d rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x5e36d0d9 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x6ea27d95 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x74359234 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x758fcef9 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x7cedc3c4 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x88bd9d4e rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x8940a87a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x8dc18ee8 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x8e7e0440 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x961ec9ac rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x9bd785d7 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x9fd20c2c rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0xa0410c90 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0xa6a095f9 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xade2ac8a rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xb67d4d14 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xceedea2c rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xd35f9c17 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0xefe2a195 rds_inc_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xf58ccc3b rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0xfe95e143 rds_info_register_func +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x4a75f0a8 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x6b83f932 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 0x2e72a8a2 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x649706dd gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6f02243f 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 0x9193dea1 gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x9330acbc gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x97996ae9 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xad47b818 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 0xbc1eaac8 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xdde7c4bd gss_mech_get_by_pseudoflavor +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 0x0171cfef rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x050246ef rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05207868 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e25839 svc_create +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 0x06935d27 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b06a599 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ed6c203 rpc_shutdown_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 0x11c249f8 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12c7f661 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1565a1ce svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1610c48b rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16699c37 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x181a5a59 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x19cf535d rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b4a2a45 svc_create_xprt +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 0x1e1b7123 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ef5869a put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28f98a32 rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2926ba27 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29d0f2a4 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b4b0f6d rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2bd7e1e9 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2cf32c36 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d8c12ee rpcauth_unregister +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 0x33c4ba5a xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x34a9f62a svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3558e3c6 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35e8acea rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3870ce8c svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3882d6ba auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a269ec6 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b17eaed rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x414c3b6d __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41f62e29 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41f6bfdb rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x429b131c cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ea13035 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51a89c45 auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52102f8b rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x554dadf7 xprt_adjust_cwnd +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 0x5c0e837f svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f22feac sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f77fd5f xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61380b17 cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61466ba4 auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62b90a76 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6373e2e1 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x678831f5 svc_sock_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6852be82 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a3f06cf xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6bf854ae rpc_proc_register +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 0x715de9e8 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77033fff xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a992389 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 0x7ee6f706 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x808464a0 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80a22ac2 svc_sock_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x83428ab0 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84b60156 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x853d9ad9 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85cda59b rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85f6b4c5 rpcauth_generic_bind_cred +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 0x8bf4265c xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e7a4cd9 rpc_exit_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ee4164e rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ef7602a svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9151cbd2 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x949355b5 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94c25c84 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x951e354e svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9521f7a8 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c9b6b32 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cc07685 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d3f6739 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ddfd1c9 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e504da5 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ea5ceee xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa04a7a46 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa11f5f8f xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa1b87ad6 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa1ee9680 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa459def0 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa5092a91 xdr_decode_array2 +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 0xa9653d2b svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac6577e7 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xacbb1fb0 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb013ade6 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb049887f rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0f390b4 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1c0a143 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3399794 rpc_call_start +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 0xb8b9574a xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe0c6852 svc_create_pooled +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 0xc12435e3 rpc_calc_rto +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 0xc307588d svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc57ccb69 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5f6540e rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc717c734 rpcauth_register +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 0xcd827a18 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce06909d rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf80e373 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf91650c svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd116cf1e rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd1496bec rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd38e7063 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4a31e2b xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6ef1ef3 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd91f7b55 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd1b7cbd xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf746df0 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdfeabed6 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe027346c rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0e77696 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe39a2aff rpc_delay +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 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeed56dbe rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef19e516 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2897fcb svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3b5b818 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf54cdd95 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7683fb6 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa29196c xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb8d94e8 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfcf623fe rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe34344b xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe82db3a xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/wimax/wimax 0x04b9b491 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x17a1df65 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x21c741be wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2d923503 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x49e98245 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x4b20d72d wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x56279845 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x5b2253f7 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x712583c9 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x923586be wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x99931204 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb275356e wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd45b732c wimax_state_change +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 0x31038147 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x38f83622 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x8c7df715 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x9d0960b0 ipcomp_init_state +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 0x0009e0d5 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x00114ec9 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x003ed6a6 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x00405536 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00a86fbd usb_kill_urb +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 0x010552b3 queue_work +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 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0213f803 sdio_claim_irq +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 0x03169d61 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x03556d4b tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x0388b796 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x03a2eddc usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0x03bf0e0b ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x03d3087a ring_buffer_read_prepare +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 0x0462a204 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x04717678 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x04a93edb sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x04aada29 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x04bb288a vfs_test_lock +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 0x052372c7 bd_claim_by_disk +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 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 0x06346f50 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x063d3aee bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x06562e51 dev_attr_em_message +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 0x0806ae7f ip6_dst_blackhole +EXPORT_SYMBOL_GPL vmlinux 0x0813b6ac i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x082196b3 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x08cbb849 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x08e2fd84 skb_cow_data +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 0x09c8b491 inet_twsk_alloc +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 0x0a1ae97d page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x0a3fc4b9 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x0a55e6d0 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x0a696f3b br_fdb_test_addr_hook +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 0x0b4e3f88 xfrm_output +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 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 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0c83cd23 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0cd419ab crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x0cda5669 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x0cf19ca0 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x0d106e7c find_vpid +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 0x0e2c6878 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x0e4d99f8 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x0e6a0889 eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x0e9a6c4c inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x0ec210b8 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0x0eea57a6 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0ef87db0 put_device +EXPORT_SYMBOL_GPL vmlinux 0x0f04bc70 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x0f1b6144 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL vmlinux 0x0f33f49c spi_async +EXPORT_SYMBOL_GPL vmlinux 0x0fb5322b tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x0fcdbbd8 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x100be06d ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x101fc0a4 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x10621889 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x10b53e4e crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x1125a51d usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x1127a40d sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x1149c9a0 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x11501cec pci_set_pcie_reset_state +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 0x11feac8d xfrm_audit_state_notfound +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 0x127654fe ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x12ca1a80 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x12d956bc ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x1310b666 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x13143b1c blk_rq_unprep_clone +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 0x1386ec3e dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13f8ecea anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x141adc3d sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x1428258f skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x145784d1 gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x148162fc ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x14b9feb9 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1513089f ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x151aea33 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x152259c8 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x15568631 lookup_address +EXPORT_SYMBOL_GPL vmlinux 0x1563c9f9 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x1566b3ce ring_buffer_peek +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 0x15f15082 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x16044851 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x16234e28 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x1656971a device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x166cf528 ip6_sk_dst_lookup +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 0x16d5abac dm_rh_recovery_prepare +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 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 0x188f631e trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x18c3e75e vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x1938f873 flush_workqueue +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 0x1a3bf4ae bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x1a594416 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x1a6ee615 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x1ac4ebc5 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x1afbdf2e scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x1b1f2bda speedstep_get_freqs +EXPORT_SYMBOL_GPL vmlinux 0x1b5c48be ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x1b6b881f css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1b88b6bb sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bd2a56f ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x1c195df7 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x1c2973be ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0x1c45f322 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x1c5fa88b wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x1c716f97 debugfs_create_u16 +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 0x1ca15531 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x1d4676a2 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x1d6781a9 klist_next +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 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ecfdf10 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x1ed3db0b elv_register +EXPORT_SYMBOL_GPL vmlinux 0x1f1fa574 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x1f234edf ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x1f85dcaa fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1f8ce680 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1fcb9abb vfs_lock_file +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 0x207d24ed class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x20b4d174 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x2112aa0d scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x215f51ea crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x21e56c31 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x22300e41 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x2274645a __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x22925335 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22eb19d2 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x2322c72d wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x23555bd2 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23d9122a dm_rh_stop_recovery +EXPORT_SYMBOL_GPL vmlinux 0x23f38f25 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x23fa8a18 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x2416e9cd vfs_cancel_lock +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 0x24963038 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x2497d17f sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x24a5542c pci_test_config_bits +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 0x25239864 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x25343e3c __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x2553f632 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x25565a27 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x2560e5a1 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x2565a6f4 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x25bd27d8 dm_rh_flush +EXPORT_SYMBOL_GPL vmlinux 0x25ff66c6 pm_request_idle +EXPORT_SYMBOL_GPL vmlinux 0x263fbac1 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x2659e942 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x266fb30f tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x2671ce5d dm_rh_recovery_start +EXPORT_SYMBOL_GPL vmlinux 0x26a925b9 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26d1c9da find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x272c4eb4 securityfs_create_file +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 0x278addd2 macvlan_handle_frame_hook +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 0x27cbe910 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x27cdba1c pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x27e059bd usb_interrupt_msg +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 0x289c967b __blk_put_request +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 0x2915fd28 vfs_getxattr +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 0x2a8916a9 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x2a9b7f84 ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2a9cc9e5 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x2aabb777 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x2aba1358 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x2ad3fd98 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x2adaa2fa class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2b28c5ae sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x2b373a78 fib_rules_unregister +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 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2bc5e438 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x2be7fb8e disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c271b35 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x2c3b1c31 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x2c6a0800 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x2c83aa6c skcipher_geniv_free +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 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d6263e9 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x2d6b4fa5 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2db0c42e driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2df1010b cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x2e0a07da regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x2e18389f scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x2e43b101 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x2e45a90d blk_queue_rq_timed_out +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 0x2e98f9ce ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x2ebad30b eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x2ec83069 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0x2ef5482c xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x2ef83e5b ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x2f094bb6 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x2f18ae8f debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x2f1e5682 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x2f302a75 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x2f444c21 securityfs_create_dir +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 0x2fa42b89 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0x2fa99f87 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x2fbe307e wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x2fc1c636 d_materialise_unique +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 0x303bd010 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x306ab978 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0x306e3a24 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x30a0a01f relay_open +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x315e8fec ring_buffer_record_disable +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 0x32d598be regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x330cc8a1 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x331eda0d fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x333fab6a crypto_unregister_shash +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 0x343723c4 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x34445c78 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x34b6d031 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x351591ce ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x35bd1720 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x363e731f device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x36b6077a clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x36d04797 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x36f3357a nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x378e500f xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x37ec4652 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x3841ab01 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x386d7a97 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38d2b14e ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x38e781e4 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x38f65d5b ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x390d2467 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x3931ce13 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x3949c45e usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x396ba6b7 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x399f5bc1 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x39be9cdc sysfs_get +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 0x3aa72416 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3b99864e dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3c2fd580 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x3c432388 __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x3c452b13 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x3c6dafdc pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x3c6f4ea8 register_net_sysctl_rotable +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 0x3cad06c9 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d6e8f43 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3d8d361a register_net_sysctl_table +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 0x3e5ac275 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x3e5c10df ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x3e757637 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x3eae77d8 dm_rh_delay +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 0x3f50c160 netlink_has_listeners +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 0x401b5dad fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x403a59dd ata_eh_analyze_ncq_error +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 0x4079aec5 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40da25fa sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x410ee029 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x418ecdeb perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x41a55cf5 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x41ad1b44 dm_region_hash_destroy +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 0x42c5dcce inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x42df7bc9 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x42fcabc9 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x43339157 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x43396254 __blk_end_request_err +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 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 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x44ad0d6c ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x44d8d15c __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x44e76e96 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x45176270 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x452f4130 ring_buffer_unlock_commit +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 0x45d14bdf hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x45dc7075 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x45e1928a pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x45f034b3 dm_rh_get_region_size +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x4612c235 xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x46290cb5 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x464c984d sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x46e06e12 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x470ba734 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x470d9c96 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x470ef36e __rtnl_register +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 0x485b2fb0 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x48672258 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48c51c71 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x48c95f67 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x490db010 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x491b85d1 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x494c3649 generic_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0x496ac406 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49c7ea9a ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x49d87326 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x49db8db4 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x49e9aade inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x4a071979 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x4a44e7de hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4acdd713 user_read +EXPORT_SYMBOL_GPL vmlinux 0x4b23978b blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x4b36ab72 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x4b81a958 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x4b8a3dce debugfs_remove_recursive +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 0x4c005157 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x4c140854 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x4c328962 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x4c4d6801 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x4c5d95c5 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c81557c ring_buffer_reset +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 0x4d1cfb53 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x4d28c458 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x4d9c52d5 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x4d9e23c2 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4e4df5db ata_host_suspend +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 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 0x4f6e7da7 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4ff1b6d1 gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x502c8467 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x505c57be pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x5081c8b4 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x508ed17a inode_add_to_lists +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 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 0x51a03b19 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x51dffbbf securityfs_remove +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 0x520e6711 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x5249f0be srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x52958e15 mnt_clone_write +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 0x534ec30c usb_hcd_pci_pm_ops +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 0x54063872 each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x5428ac56 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x5477b4c6 ata_dev_pair +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 0x54f4ac41 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x54fb8ad6 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x550559f7 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x552d9b3e xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0x55429680 blk_rq_err_bytes +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 0x55db6bb5 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5614398c inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x5623f468 wm831x_auxadc_read_uv +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 0x56bc3472 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x56c49cc8 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x57093364 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x571599d8 br_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x572d9260 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x572f483b skb_pull_rcsum +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 0x57f9671a fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x580684ac kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x5880b324 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x58db1531 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x5949da41 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x59527332 ata_sff_qc_issue +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 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a86bcac ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5a9566e2 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x5ab5288d register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5b1ac981 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5b42005d debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x5b95ae20 use_mm +EXPORT_SYMBOL_GPL vmlinux 0x5b98a216 rtnl_kill_links +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 0x5c59dc84 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5c77f9c2 register_user_hw_breakpoint +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 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 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 0x5e673164 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x5e6ff2d1 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x5e82e865 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x5e8a225a xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x5ead4a75 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x5eadacd6 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x5eca59a0 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x5ed954e1 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f0b4823 dm_rh_start_recovery +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 0x6012bb09 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x601421dc da903x_clr_bits +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 0x60ceb439 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x613b7d0b usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x616f7776 dm_rh_dec +EXPORT_SYMBOL_GPL vmlinux 0x61bad0fd vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x61e1ff05 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +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 0x62c9be2a eventfd_fget +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 0x64385806 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x64a37310 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x64ebe677 wmi_query_block +EXPORT_SYMBOL_GPL vmlinux 0x6526aff0 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x6535f07e usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x654af242 ata_do_dev_read_id +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 0x65a89814 sg_scsi_ioctl +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 0x661f772f ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x66323d24 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x66506593 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x668c07db __sock_recv_ts_and_drops +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 0x678404ba zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67a4145f wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x67b696a8 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x67d326ce ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x680a72ac wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x680cdc3f part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x680f7d6b sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x6841551a bdi_writeout_inc +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 0x695640d2 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x698c543f blk_rq_prep_clone +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 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 0x6a8ac529 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6aceded5 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x6ad54a03 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x6b11e778 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +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 0x6bcabec4 find_module +EXPORT_SYMBOL_GPL vmlinux 0x6bdcc53f usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c37ecd7 sdio_get_host_pm_caps +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 0x6d3eb545 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x6d5eeff8 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x6d8c5f14 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x6de65839 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x6e090c1c adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x6e3688c6 screen_glyph +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 0x6ec03e8a ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x6ecbe3cb rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f27b078 __inet_hash_nolisten +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 0x70a21194 hvc_remove +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 0x70e1d31d blk_trace_remove +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 0x71d82c84 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x71db3f46 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x7204132c __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x723cd119 dm_rh_get_region_key +EXPORT_SYMBOL_GPL vmlinux 0x7244ccd7 ata_port_desc +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 0x72d1492f cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x73033e6c __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x73618135 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x738e596c elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x738fb2c9 unregister_net_sysctl_table +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 0x742f8cf3 disk_map_sector_rcu +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 0x7457fee6 generic_drop_inode +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 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x755671f5 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x757f9af7 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x758c0fba sata_scr_read +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 0x75da245f ip6_local_out +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 0x76f4c317 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x776653b8 dm_rh_get_state +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 0x7845542e scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x7860a857 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x788b8617 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x78bd0c8f fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x78ceab93 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x78e0eab5 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar +EXPORT_SYMBOL_GPL vmlinux 0x793c8bde blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x795fba0e debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x79b68085 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x79cf2087 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x79d86363 ata_cable_ignore +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 0x7a480cdd queue_work_on +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 0x7a5f7017 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x7a701f4e ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7aa0ea8a invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b21b106 regulator_enable +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 0x7c260e62 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x7c47b89d iounmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0x7c59b995 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x7d0ab8b6 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x7d53d6a7 pciserial_init_ports +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 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e654576 ata_slave_link_init +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 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 0x7f9b1f87 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x7fa7251b transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x7fa8927b mce_chrdev_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fb11b66 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x7fb7e986 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7fbc21ce input_class +EXPORT_SYMBOL_GPL vmlinux 0x7fe0b374 console_drivers +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 0x80771ba6 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x8086f62e crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80b3f97c raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x80b943fd mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc +EXPORT_SYMBOL_GPL vmlinux 0x80f2d215 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x81548913 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x81633c9f sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x8197ea70 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x8214473f skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x8269c4e0 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x827280f1 xfrm_audit_state_add +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 0x82f6e8dc gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x832e27eb wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x8393a468 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x83ca05db adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x83e4bbe8 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x8412712e dm_rh_recovery_end +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 0x843e3214 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x84418924 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x846131f2 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x8467f348 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x84752abc get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x84933aa4 dev_forward_skb +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 0x84f48d49 sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x85237354 pci_disable_pcie_error_reporting +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 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 0x86020117 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x8641f515 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x867c684a setup_APIC_eilvt_ibs +EXPORT_SYMBOL_GPL vmlinux 0x8681c93e bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +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 0x8747a87a register_posix_clock +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 0x882a57e5 ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0x883a6ec0 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x886736fc olpc_platform_info +EXPORT_SYMBOL_GPL vmlinux 0x8887dc93 usb_autopm_get_interface_async +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 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x892a9efc dm_rh_inc_pending +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 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 0x8a967253 sync_filesystem +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 0x8b8cade1 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x8bb65b58 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x8bd65520 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c180e28 vma_kernel_pagesize +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 0x8caefad0 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0x8cb09009 get_device +EXPORT_SYMBOL_GPL vmlinux 0x8cc088d1 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x8cd48281 inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0x8cfbe50a blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x8d0be797 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x8d17edb0 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x8d261a43 inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x8d4ff44c ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x8d789e4a crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x8dfba04b usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x8e17f064 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x8e4f514c kick_process +EXPORT_SYMBOL_GPL vmlinux 0x8ea63ac2 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x8edfc605 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f8b3597 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8ff724e7 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x9021b597 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x902b1c37 __sock_recv_timestamp +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 0x90cad332 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x90cb4956 dev_change_net_namespace +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 0x918afd53 ata_pci_device_suspend +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 0x920f171a inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x9261bcf4 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x92aa2d16 __module_address +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 0x92e40dd3 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x92e5278b rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x92ffa5e0 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x930c644a ata_do_set_mode +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 0x93b96498 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93efad44 acpi_smbus_write +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 0x94d13fe0 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +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 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 0x969b11b6 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x96acd913 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x97835911 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x97c3cba1 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x97d1c8c9 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x97e37f80 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x985a5b79 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x986c30b5 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x98a124aa ata_port_schedule_eh +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 0x991dc344 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +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 0x99dd1de3 disk_part_iter_next +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 0x9b18ada4 debugfs_create_x16 +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 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 0x9cde6cba led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x9cf3e2a3 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x9cf6a718 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x9cfdda34 perf_event_read_value +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 0x9d803c89 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x9dafd731 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x9dcfaf53 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x9de1888d pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0x9e7b6ca8 fib_rules_cleanup_ops +EXPORT_SYMBOL_GPL vmlinux 0x9ea06966 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x9ebff902 start_thread +EXPORT_SYMBOL_GPL vmlinux 0x9edebbd3 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0x9ef19427 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x9f181d95 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x9f29e55f skb_partial_csum_set +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 0x9fc79821 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa0208e02 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa0db1d8d usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xa138fdc2 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xa1c07bdb crypto_givcipher_type +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 0xa2a997df ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xa2e6034c sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa3934f44 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0xa3ac5699 destroy_workqueue +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 0xa4a4fd45 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xa4ac3e94 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xa4ea4d3a do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0xa53561d4 scsi_dh_set_params +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 0xa5b70857 __mnt_is_readonly +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 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa6317905 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0xa64d36df ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xa6bae256 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xa6bcc832 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xa6d390e3 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0xa7203926 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0xa7fa52a1 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0xa835a3d0 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa86bd6f0 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xa8bc256f transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xa8c52648 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0xa8e61fff ref_module +EXPORT_SYMBOL_GPL vmlinux 0xa8ebe1de dm_get_rq_mapinfo +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 0xa91a11d8 tty_ldisc_ref +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 0xaa304ef0 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xaa3c6f0b scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaa93b916 disk_part_iter_init +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 0xab17029f dm_disk +EXPORT_SYMBOL_GPL vmlinux 0xab222191 pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0xab25d52a __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0xab341c58 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0xab36b641 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab99013b vfs_removexattr +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 0xabf4d337 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0xac1a0e9a proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xac23ec10 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0xac6dcdb0 blk_rq_check_limits +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 0xad096363 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0xad2f445f tcp_done +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 0xade53d99 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xade98682 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae495b10 __blkdev_driver_ioctl +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 0xaf32b0c9 raw_hash_sk +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 0xb01364c5 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xb072cf86 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb0ab9f8c flush_work +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb1113249 tun_get_socket +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 0xb18506b9 smp_ops +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 0xb1d37302 sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0xb26a88b6 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb28ada9d inet6_hash_connect +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 0xb39630ce ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write +EXPORT_SYMBOL_GPL vmlinux 0xb3ef2ed6 tty_get_pgrp +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 0xb46e2d6e rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xb49c5614 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xb4a69d04 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0xb4d81e45 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb4f5aa39 ring_buffer_iter_peek +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 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 0xb6157f39 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xb61a6eca ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec +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 0xb6f7cbd1 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb6ff43c4 __ring_buffer_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 0xb77a0720 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xb78a3250 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xb7b1db25 dm_put +EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0xb7dd3955 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xb7e2eb91 mce_cpu_specific_poll +EXPORT_SYMBOL_GPL vmlinux 0xb7ef9e2d tc35892_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb8220c37 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xb855109d inet_csk_listen_start +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 0xb8acc90d dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0xb900d237 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +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 0xb9b320b7 ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xb9d91ff5 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xb9e16ba1 scsi_nl_add_driver +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 0xba20b668 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xba5a000d pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0xbaa88125 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0xbad68aaf device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbafb8bc3 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb05b0bc tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xbb05cf26 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0xbb09f9ba dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb58b814 iomap_free +EXPORT_SYMBOL_GPL vmlinux 0xbb7b9af2 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbef7e72 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xbc12a43b ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xbc8f661e usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0xbcb2af32 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL vmlinux 0xbce836dd cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0xbcf2bb54 blk_queue_rq_timeout +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 0xbd62f80e usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0xbd973c62 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xbdbee7f4 dm_rh_region_to_sector +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 0xbe23c498 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xbe598c8c pm_runtime_allow +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 0xbf0c9730 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0xbf1de88f atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xbf5303cd ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xbf65f520 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xbf9c696e inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbfa30db9 ab8500_write +EXPORT_SYMBOL_GPL vmlinux 0xbfc33bdf ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xbfd94bb0 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xc041911f ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0xc0420353 tcp_register_congestion_control +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 0xc0eaacc4 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xc0f95070 sk_attach_filter +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 0xc18783d1 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0xc1a98888 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xc2060a9b __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc23c473f tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xc241da40 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xc24cbf27 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0xc25c9d89 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +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 0xc36acb88 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3a2f8cb raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xc3aab0e3 wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xc3c4533f dm_register_path_selector +EXPORT_SYMBOL_GPL vmlinux 0xc3f55520 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xc4023b9c ata_ehi_clear_desc +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 0xc474c51c usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4b5fc3f pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0xc4fe5016 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xc52c64ac ring_buffer_normalize_time_stamp +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 0xc5ec2fc9 ata_std_qc_defer +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 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 0xc78f00f7 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xc7c68701 ata_sff_irq_on +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 0xc88c6d07 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xc90abcca blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc9221c60 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xc92a16df xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0xc94cea91 cpuidle_unregister_device +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 0xc9eac12d scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca59a4e6 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xca680f6e scsi_unregister_device_handler +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 0xcb611ee0 pm_generic_runtime_suspend +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 0xcc1652f0 sata_link_hardreset +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 0xccc28835 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xccccb1a1 css_depth +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcd0dbfe9 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xcd682272 dm_unregister_path_selector +EXPORT_SYMBOL_GPL vmlinux 0xcd8fe524 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xcd9c1ce6 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0xcda828ba apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +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 0xce9832c3 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0xcee0e06f tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xceed1ffa spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xceed97a0 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcf88230f __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcfad843a sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xcfb4954d ata_link_offline +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 0xd02eeb6f rtnl_link_register +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 0xd0ee456c dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0xd11d4e76 queue_delayed_work_on +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 0xd1947955 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xd1967adc __class_register +EXPORT_SYMBOL_GPL vmlinux 0xd1a2edb1 ring_buffer_discard_commit +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 0xd1b6651f inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0xd1d26249 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0xd1dfecb5 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0xd210fff4 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xd213248d tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd2442616 spi_bus_type +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 0xd2eacb61 xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0xd2f66259 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0xd31eddeb fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xd32191b6 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd3685bb3 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xd36c5dd8 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xd370b4d8 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0xd3893999 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xd3ded567 isa_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd3e54a15 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xd428bf2d usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xd43a7bef __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xd4b54862 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xd4d45ed8 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xd516ec3e kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xd53e8f3d tty_encode_baud_rate +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 0xd59fd09f posix_timer_event +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 0xd617a1fd sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0xd65baac2 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0xd6734e99 led_trigger_set_default +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 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 0xd8289242 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xd832fa3b devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd8627b51 ring_buffer_free_read_page +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 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 0xd98e36d4 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd9ce6263 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xda16a0a2 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda1d19c2 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0xda513e7e clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0xda526a81 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xda8cfb12 ring_buffer_reset_cpu +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 0xdb07322c file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb3040b0 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xdb521ff3 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xdb59816b usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0xdb806c7a __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0xdba71a30 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xdbba098e usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xdbc2c651 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0xdbeb5052 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0xdbfc60f3 xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xdc03e0cb lookup_create +EXPORT_SYMBOL_GPL vmlinux 0xdc13a1b0 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xdc714560 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xdc8e963d alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xdcd110de dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xdd20fb08 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xdd4051c1 pm_generic_runtime_idle +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 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 0xded760e5 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xdf1228b6 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xdf253ea7 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xdfa46cc4 dm_rh_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0xdfeaa95a iomap_atomic_prot_pfn +EXPORT_SYMBOL_GPL vmlinux 0xdffa94d6 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +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 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 0xe0ec45d1 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xe0f25327 usb_string +EXPORT_SYMBOL_GPL vmlinux 0xe105c38f ata_host_init +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 0xe1dc4b6e rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe1f45f29 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0xe2426710 wmi_evaluate_method +EXPORT_SYMBOL_GPL vmlinux 0xe24f3c01 dm_region_hash_create +EXPORT_SYMBOL_GPL vmlinux 0xe2838d16 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe296c585 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0xe2b0f818 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0xe2dd24a2 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0xe333261c ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xe371b33e get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xe388d471 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xe3bd26c4 mmput +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 0xe513afc0 cache_k8_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xe51ce135 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xe51f555d dm_rh_update_states +EXPORT_SYMBOL_GPL vmlinux 0xe537cdf2 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0xe589edbf crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xe5b0ad90 add_page_wait_queue +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 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe7012ffa cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0xe703b888 ata_port_pbar_desc +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 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 0xe8936b15 ata_port_abort +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 0xe97ae435 dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL vmlinux 0xe99793bc ring_buffer_overruns +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 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 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 0xeb584552 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0xeb5b884b crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xebb2b641 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xebc9bd81 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xebe3bd6c inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0xebe8389e tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec1c76a7 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec317f8c seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xecc5a617 tcp_twsk_destructor +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 0xedcdade1 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0xedeb4666 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0xedf3f1f1 do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0xee2fa378 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xee4aad8a i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xee7fca8f ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0xee8dbb41 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0xeeae7ae0 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0xeee66171 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef229245 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xef2cd688 scsi_dh_detach +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 0xf06c1cc7 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xf083411f tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xf0c1926d inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0xf123f373 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xf12b3eed crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf133a15e vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1867cb1 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xf191adb3 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0xf1aec1e6 dm_rh_region_context +EXPORT_SYMBOL_GPL vmlinux 0xf1b4e105 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xf1b92bc7 perf_arch_fetch_caller_regs +EXPORT_SYMBOL_GPL vmlinux 0xf1d8942a ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xf218115c ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0xf2388338 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xf240c6d8 sysfs_remove_bin_file +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 0xf33a47ac inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xf343cb32 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf3622de1 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf3757c66 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0xf38ad7bc skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf3b361b9 ata_std_bios_param +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 0xf3d77c42 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0xf45cdaf7 ring_buffer_time_stamp +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 0xf4c2187e ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0xf4c44750 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0xf519f92e blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0xf541d258 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5654c36 __ip_route_output_key +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 0xf64813b1 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xf6764492 erst_get_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xf6b6a1ff usb_ep0_reinit +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 0xf7734d40 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xf7ea74c4 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0xf802c7ee get_task_mm +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 0xf85a2d80 blkdev_ioctl +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 0xf91f6248 sata_std_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 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 0xf9f1be3c ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa17aaff ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa2f066d usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xfa6b32f1 blk_queue_dma_drain +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 0xfb59d316 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xfbce6b77 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xfbd6e7b3 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xfbee8ea7 dm_send_uevents +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 0xfc679e9c ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xfc7b6098 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfc983df6 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xfd1a0f4d apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xfd3bd949 inotify_init +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +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 0xfde72597 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0xfe06f584 virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0xfe0efa4b scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0xfe2eaabf xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xfe327245 __mmdrop +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 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff918aab platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xff9501b7 ata_sff_freeze +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-28.49/i386/virtual.modules +++ linux-2.6.35/debian.master/abi/2.6.35-28.49/i386/virtual.modules @@ -0,0 +1,501 @@ +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 +auth_rpcgss +autofs4 +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 +fscache +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 +lockd +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 +nfs +nfs_acl +nfsd +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 +sunrpc +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 +vmware_balloon +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-28.49/i386/generic-pae +++ linux-2.6.35/debian.master/abi/2.6.35-28.49/i386/generic-pae @@ -0,0 +1,11282 @@ +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 0x33e9995a kvm_cpu_has_pending_timer +EXPORT_SYMBOL arch/x86/kvm/kvm 0xac0da75b 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 0x434627a4 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0xc061b2ff 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 0x00133c8b drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x06e33c1b drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e3d3e09 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fc546c7 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x103c2be8 drm_core_ioremap +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 0x12f22572 drm_lock_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x16377d59 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a85cbb9 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ad7e59c drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1cca39df drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1fa43ac1 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24cfdaf8 drm_lock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25577f83 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x270f8e71 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2718fed6 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27e3e153 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2849dab7 drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x293c80ef drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a32ea4d drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ec53530 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3189f143 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32a6eb2f drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33311877 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37bd8def drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38b269e3 drm_addbufs_pci +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 0x3e2fc27b drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x404b3efc drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x441b15bf drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44ebdc98 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x45bdd606 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x463f7e72 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46887a66 drm_sysfs_connector_add +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 0x4adc6528 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c345627 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53f3c3af drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ac2235a drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b39022d drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5bc1d275 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5bf85573 drm_get_resource_len +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d6e62bb drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d521d18 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc3e101 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ff9f915 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71dbc10c drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72556926 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7328e07a drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x777c2395 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x78107d1a drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x78e30cae drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1b43cd drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e04fae5 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e41646b drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e7d8b51 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f9af353 drm_get_drawable_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8288c0d9 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82ef26fe drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x83371a63 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x862deed8 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x89c6f880 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8bb685c7 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c61db06 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ce571b5 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ceed987 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ed58686 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f9e35d6 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x90d3351d drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x926d74dd drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x967852d1 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9903f12c drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ce8d78d drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d0b95c2 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d6876ec drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9fd52882 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0b2617f drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa13926f2 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6324b60 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa90d1f33 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa97a376e drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaba6cab9 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xabb1c144 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad4eaa5c drm_get_resource_start +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae75e970 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb03fa10a drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0d23c78 drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb108f598 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4f8b867 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5c92613 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb92036ee drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd154563 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbefea44f drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc25d5d4a drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc37dd6de drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5806d02 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6999a7e drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc825c833 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8411a2f drm_sg_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc93b1cdd drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca28272e drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca385dd0 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcad1b13c drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc755d8a drm_agp_chipset_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf2aa3af drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcfb76ea6 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd23be224 drm_init +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 0xd415ef10 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd486367e drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5d34f40 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd63d6819 drm_core_get_map_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbf018bd drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbf98fa9 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdef21ffc drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf2efdd6 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe22ee7de drm_i_have_hw_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe4e46a12 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5721e4c drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7cd880d drm_agp_enable +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 0xea2a394f drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xef27db48 drm_get_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xef92887d drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0xef990bee drm_mode_config_init +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 0xf42a2b26 drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4ca1876 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4cded88 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf585f206 drm_put_dev +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 0xfae8d014 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdaed998 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x09a6635e drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x12bd6b8d drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1f481cf4 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2eba006e drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x31a3c2dc drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x33e35d16 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x35d2524c drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x411096db drm_fb_helper_fini +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 0x55743996 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x69285034 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7539194c drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7976150a drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8b37a3ef drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9b6d2e46 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa1d84d47 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xadb402e5 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc58d6e5d drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc99c32c9 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcaa39e8c drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd0cbb135 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdbcf1425 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xeac4d134 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xeb7a541c drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xefc6caa6 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf081b081 drm_kms_helper_poll_disable +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 0x7e4eaa67 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x89ec0c6a rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 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 0x00461664 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0d2e7018 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1f70fb18 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2e57c5f5 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x404e9366 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4414a7ba rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x47db8274 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x519690fb rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x61e1eafb rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6eaf8f79 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7e5e5717 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa4e40b00 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbf0e5560 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc3d14000 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc8023f8e rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd2734142 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd46679d7 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe3f36a50 rdma_init_qp_attr +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 0x4ebdeab7 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x791f87fb mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x84c3c43f mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x86d2b0e0 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x08753e64 mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x3ac8c722 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 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 0x18b05fa2 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xba6fe699 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xbf222918 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 0x020b6cf0 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x02e528a2 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x04efa709 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x258e5224 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x25f3c929 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b6385aa mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2fa55f46 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x34b710cf create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x354d0e9c confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x37eee51a mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3cf3bf1b mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ef163b9 mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x44b62dee mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x543bca69 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5ba008f1 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x76ee63a7 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8459d386 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x86a71d7a get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9900a112 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x99de25d7 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa11d0300 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa6c622ac mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa986f7dc mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xab8bddb6 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbd22830f recv_Bchannel_skb +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 0xfdebde75 recv_Dchannel_skb +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 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 0x777b40b9 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x805b87b0 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 0x02c84b5a mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x050c4016 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0ecc2d95 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1024ec63 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x13af0887 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1e2f5d7c mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x28307006 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2a329746 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x318338a1 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x32cb9be3 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3971a26e mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x45cc9052 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x57fdec61 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6f1201fc mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x755f4830 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7ae14adf mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8194d532 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x81d23c0a mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8caaa31c mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbc45f21d mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc2a6c6eb mpt_Soft_Hard_ResetHandler +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 0xdd9e403f mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdfdacc14 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe4ad81e2 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe8bb55b0 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe98deffc mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf76d12c3 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfae694f1 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfbb2f2f7 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1255a1ad mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x203ca5e6 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x343e2fd7 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x37c246f8 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3ad9b9bf mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3f491f6a mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x49f8b986 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4b374294 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6a517ddc mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7014f29b mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x801e3260 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x80295d43 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x88643a86 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8a0c073a mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x90e87f58 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x963d22f5 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9e7ba6ae mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa1d433e2 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb1aa4cbb mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcb1ed7fc mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd4026f0e mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xde4e99ae mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe7af0cd7 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe9bdeb1a mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf53ea1ef mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfa8b7b59 mptscsih_slave_configure +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 0xe16357da 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 0x7f5376e5 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x 0xe688ef29 bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x077fe0fb cnic_register_driver +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x021e56fc cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x037d4c81 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1484d288 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1eb92ac9 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2314244a dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3af9e0b5 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4494535f cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5d6c6c75 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5e346274 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7107df2f cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x736b148e cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x992bfffa cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa8105ca3 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd4929dc0 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf1e72d53 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf96c1b5f t3_l2t_send_event +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 0x4fb7fe5d cxgb4_pktgl_to_skb +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 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 0xb8fac7c6 cxgb4_ofld_send +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 0x283cde90 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0x8f6d9005 register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xfc16c0a9 pppox_ioctl +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 0x10c78988 z8530_dead_port +EXPORT_SYMBOL drivers/net/wan/z85230 0x189f42f9 z8530_sync +EXPORT_SYMBOL drivers/net/wan/z85230 0x213abac6 z8530_interrupt +EXPORT_SYMBOL drivers/net/wan/z85230 0x3aa8e269 z8530_shutdown +EXPORT_SYMBOL drivers/net/wan/z85230 0x4c6b87d7 z8530_describe +EXPORT_SYMBOL drivers/net/wan/z85230 0x5cd24d29 z8530_hdlc_kilostream +EXPORT_SYMBOL drivers/net/wan/z85230 0x5fff7816 z8530_sync_dma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x63be243b z8530_init +EXPORT_SYMBOL drivers/net/wan/z85230 0x7b71cb1a z8530_channel_load +EXPORT_SYMBOL drivers/net/wan/z85230 0x7fe32a5e z8530_null_rx +EXPORT_SYMBOL drivers/net/wan/z85230 0x8786d58a z8530_sync_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x9899edf1 z8530_sync_open +EXPORT_SYMBOL drivers/net/wan/z85230 0xa62381a4 z8530_nop +EXPORT_SYMBOL drivers/net/wan/z85230 0xbf381223 z8530_sync_txdma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0xe3d80064 z8530_hdlc_kilostream_85230 +EXPORT_SYMBOL drivers/net/wan/z85230 0xe6c19915 z8530_queue_xmit +EXPORT_SYMBOL drivers/net/wan/z85230 0xec1fab59 z8530_sync_dma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0xfe9c8053 z8530_sync_txdma_open +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 0x155f8294 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x193bf5c9 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1b527dee libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x207ddeb1 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x34d0d327 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3852137e libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x481e567d libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6e524be8 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6f158bac libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x79ac11d7 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8a995c29 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8d7536c0 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb35fde47 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbc8d7a30 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc0e6e98f libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc7b556aa alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdcb702da libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe26c9fc2 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe48c2df5 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf07cf750 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf5bfa90b libipw_freq_to_channel +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 0x1d7308a2 NCR_700_release +EXPORT_SYMBOL drivers/scsi/53c700 0xc36f2129 NCR_700_detect +EXPORT_SYMBOL drivers/scsi/53c700 0xf13d9adc NCR_700_intr +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00cf1d1d fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x16f616cd fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x45aee64e fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5aa10977 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7b5a519c fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x81298b5e fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa508efa3 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x07c780b5 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x169b8ae7 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x187c1c00 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x21779bd7 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22ea1d45 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2a4ec119 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3b70cd4d fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x41647453 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4afcb07b fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5fd3884d fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x610f439c fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6f7a909b fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x78c5e87a fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7a1cd249 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x89d5ccf8 fc_vport_setlink +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 0x8e29aa15 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x933fe60d fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9f83b44d fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xab8fbc2c fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xacfab10d fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xba099266 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbb461ddf libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc2f374d1 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc9b9459b fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xca562b51 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb3bf547 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb85207c fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd3be1fc3 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd5748851 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdf46d4d3 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe20804b4 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe2c1afdf fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe337a08d fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe4f7e4a1 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe6cf8af6 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xee3ac109 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf7da31c6 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf8373f6c fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf8e1007e fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfd72a9a2 fc_slave_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 0x7c81ed1a mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x060d95a4 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1caf902c osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x206db073 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x28970c73 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2f2c53d7 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x328327dd osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4586ca12 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x49e31c1c osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4b1f533a osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5106c5c8 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x533fc782 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x578b01d5 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x597a5ab6 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x63bc2503 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x73947ff8 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7a907028 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7e146450 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8112932a osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8d79e8e2 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9f2c6be6 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa714e43a osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb6598a77 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb74dab05 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbd14d5e4 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbf0ed8c2 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc16ae209 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd07da6a0 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd2d2b8db osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe7cd0aed osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe92178ed osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xea49475e osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf2f3a4c9 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/osd 0x03e0d6d4 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x22593701 osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x4e73445c osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x9eca4621 osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0xe4ffec3a osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xf04a3c4a osduld_device_same +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x31aa7ddb qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x99c90f2f qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xaf2a14dc qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdae4b9fc qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdda22c12 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xea8275c1 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x25ca8e03 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0x7d6a12bc raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xe652d9a9 raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00e1d8e9 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1a159d1b fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x22b04829 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x22fbb53d fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x391c8911 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x42e5663f fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4dd73452 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5571caba fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x71f3dfad scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x83959775 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x852e7d64 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8f49ad96 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd15eca66 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0e031bcd sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x15fd2193 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x21d61a0c sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x21e1011c sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2ac223b2 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2b9e99fd sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x381459ce sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5052a8ed sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x54a016f8 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5b4d437b sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5e9716f3 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x69250f69 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x774f2d4e scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x78e698a4 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8ac081cd sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8d8076ba scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9902ab9a sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xad15fe6b sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb8570130 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb916e4fa scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbb1a9f96 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbbb834c0 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc0cc6a83 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc9bc40d1 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdad1c5fe sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfff11b4b sas_read_port_mode_page +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 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 0x2499fbe8 ieee80211_rx_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 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 0xcedb7832 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xda6f164e notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdc521588 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdcaf7d37 ieee80211_stop_scan_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 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/staging/vme/vme 0x0772338f vme_bus_type +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 0x18d2f4c5 vme_dma_list_add +EXPORT_SYMBOL drivers/staging/vme/vme 0x1c23232b vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x1e87b8cf vme_irq_handler +EXPORT_SYMBOL drivers/staging/vme/vme 0x2be058ef vme_lm_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x310a0423 vme_unregister_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x361b91c0 vme_register_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x382e67e9 vme_slave_request +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 0x59b92ab3 vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0x6259fc62 vme_register_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f vme_dma_pci_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x67d10ea5 vme_slot_get +EXPORT_SYMBOL drivers/staging/vme/vme 0x76bab4d4 vme_master_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x7797a741 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x7fde2edb vme_master_read +EXPORT_SYMBOL drivers/staging/vme/vme 0x885546e7 vme_dma_list_free +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 0x99e51ae6 vme_irq_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/staging/vme/vme 0xa96a2aca vme_irq_generate +EXPORT_SYMBOL drivers/staging/vme/vme 0xb7b108e4 vme_irq_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xb9659459 vme_master_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 0xd797b9a5 vme_master_write +EXPORT_SYMBOL drivers/staging/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xe4f65634 vme_dma_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xe60cbb2f vme_master_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xe61b1e0b vme_slave_get +EXPORT_SYMBOL drivers/staging/vme/vme 0xe693a6ce vme_get_size +EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xedf6687d vme_dma_list_exec +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 0x020ac76e usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x03b978d4 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x06ae7077 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x15f8394d usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x17877bf5 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x18044aa8 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x531f2345 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6cc804ec usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6dc44f62 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x89a04040 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9213d5ba usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x99c89d32 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc23a3776 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xcc7b421f usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x6a2a36d9 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xd6920fad usb_serial_suspend +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 0xd761651a w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xf09e1d1e w1_remove_master_device +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop +EXPORT_SYMBOL fs/configfs/configfs 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 0x07789542 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x2f4366a4 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0xc5ce1fd0 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xe54cb1d8 atrtr_get_dev +EXPORT_SYMBOL net/atm/atm 0x26834fcf vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x4adb5d09 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x7d72361c deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x80dc99d6 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x86f719b4 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x92ae3170 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xa419f81b register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xb9d7a826 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0xcff14666 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0xe201f843 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xe531cf40 atm_charge +EXPORT_SYMBOL net/atm/atm 0xf199b7e8 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x26e6c235 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x4cbd37e0 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x6192cec7 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x67fe3ad0 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x82036e5f ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x86a2dbda ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd0a3e815 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xf7c5e797 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0xf8571ae2 ax25_hard_header +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0036b5f3 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x03fca5fe hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0bac657f hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x31f80c5f bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x39d9f4b5 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3bc1dafd bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3d3d8d25 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x434c1f30 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4ce60c71 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4e4f6506 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5d19133d hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5e8168c0 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6f532490 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7134fde2 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7d17bbdc bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x839352ef hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8686d035 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x88424834 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8aa63367 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x95a26578 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9971e4ef hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x99d2bb44 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa239d081 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa4e8021e hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa6d7af12 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xac2ca9b6 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbb8b24a2 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc5d5a487 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc7a2b18b hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcb932ac4 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd8dc8c2d hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfffbf77c hci_send_acl +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0xfee458c8 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x7b25fe4f ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xc05652e4 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd2ea8ee0 ebt_do_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 0x07d046dd can_proto_register +EXPORT_SYMBOL net/can/can 0x3967f5cb can_rx_register +EXPORT_SYMBOL net/can/can 0x483e9456 can_send +EXPORT_SYMBOL net/can/can 0xa3fd5a05 can_rx_unregister +EXPORT_SYMBOL net/can/can 0xa775dc0d can_proto_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x04cebd6b ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x23b31ac3 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x389ba988 wpan_phy_unregister +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 0x52909c0a ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc07ac4ce wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd4710ed8 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd699739d ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe0178bb5 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe427012e ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf8d8a11f wpan_phy_free +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x18bf11d3 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x403943e9 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xcf7f2d2e arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x53a2dc53 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x9e13f8bb ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xf36a015d ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x13fa199f nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x414bc4ae nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x4bac5fc1 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x5c3cae15 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x770d3288 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x947aefbc __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xdb914912 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/tunnel4 0x45158736 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xb07363c1 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x484405d4 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x7faeb966 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xc2d6e96e ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xcd4d3af1 ip6t_register_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x3ef0ab48 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0x5d3dd270 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x85af39e4 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x8dafe2f6 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xc1bfba09 xfrm6_tunnel_spi_lookup +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 0xd980df8e l2tp_tunnel_destruct +EXPORT_SYMBOL net/l2tp/l2tp_core 0xfcee9731 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x1adc0316 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x30073c7e lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x64af1e80 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x64eb2194 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x667d4e20 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x8e710d07 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0xc192b7ca lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xe126af35 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 0x008807b9 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0cc5b77e unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x397b68ea unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8406bcd7 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x97179859 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9fc9cae7 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb9e30c0f ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc2db716c register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd982e1f9 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe4cc0ee2 ip_vs_skb_replace +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe553a5e1 register_ip_vs_app_inc +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 0x113f0df8 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x27538978 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x5e0be0dc xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x5f2eb3da xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x92e174d0 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xa441177d xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xb4ee905c xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xc29d84b4 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xeed3eff8 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xf3e1ab7f xt_unregister_targets +EXPORT_SYMBOL net/phonet/phonet 0x04dc7896 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x53ef677c phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x853f28bb phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x91f3c9dc pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xb132e4c3 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0xc2531990 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0xe23266ef phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xf6689784 pn_sock_unhash +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x03636cbe rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1005dc27 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x13c2e0e4 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x152b6eeb rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x19959cc9 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x531c3183 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5e7982a1 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6e639639 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8b1a1455 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb0e76ed7 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb3e3adc3 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc8255a85 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xda68e14d rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe8332d7a rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf71b20ce rxrpc_kernel_send_data +EXPORT_SYMBOL net/sunrpc/sunrpc 0x81a8ba4e 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 0x13e10cd6 wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0x8dab55d3 wimax_reset +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 0x0af35dcd ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x0c800537 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x0ffa3ad0 ieee80211_amsdu_to_8023s +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 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 0x5a327926 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x5b29b11f __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0x5b79b815 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x757dfee3 cfg80211_classify8021d +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 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 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 0xc9991b26 ieee80211_data_from_8023 +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 0x87d77635 dm_mem_cache_client_destroy +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x963207f7 dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xac45e3d7 dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xae529fea dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xd1db178d dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xe3e78326 dm_mem_cache_free +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x0005e68c sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x000a4f1b scsi_finish_command +EXPORT_SYMBOL vmlinux 0x001a561b cdev_index +EXPORT_SYMBOL vmlinux 0x002c6e53 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x0065e195 sg_miter_next +EXPORT_SYMBOL vmlinux 0x006624bf register_md_personality +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00adc5ba put_page +EXPORT_SYMBOL vmlinux 0x00bd9d31 add_timer +EXPORT_SYMBOL vmlinux 0x00ca80f5 open_exec +EXPORT_SYMBOL vmlinux 0x00d5311f in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00fe1327 tty_write_room +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x011d6453 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x012ccfe5 dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0x01300c99 skb_unlink +EXPORT_SYMBOL vmlinux 0x015ab1e1 __register_chrdev +EXPORT_SYMBOL vmlinux 0x0172eac0 udp_disconnect +EXPORT_SYMBOL vmlinux 0x017fb1e9 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0x018c3130 eth_header_cache +EXPORT_SYMBOL vmlinux 0x018df92a vfs_read +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01a77c86 blk_get_request +EXPORT_SYMBOL vmlinux 0x01b70ef5 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x01edc9d3 lock_rename +EXPORT_SYMBOL vmlinux 0x020e9ff9 phy_print_status +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x021973fb vfs_statfs +EXPORT_SYMBOL vmlinux 0x02273b98 poll_initwait +EXPORT_SYMBOL vmlinux 0x0231b9d9 mmc_detect_change +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x0257ce10 fput +EXPORT_SYMBOL vmlinux 0x025c3aea mca_device_transform_ioport +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0286eaca unregister_quota_format +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 0x02cf5d8c mmc_host_lazy_disable +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02e5f603 phy_sanitize_settings +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x02f9386d devm_iounmap +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 0x0385f02d blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0x03908da4 set_user_nice +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03e70f2b simple_transaction_read +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04035491 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x04676193 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x048d3a29 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x04b47ac9 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x04cbea67 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x04ced34b bio_integrity_free +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04f98474 journal_destroy +EXPORT_SYMBOL vmlinux 0x05037e9b xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x05200626 sock_wake_async +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x052e26fc unregister_cdrom +EXPORT_SYMBOL vmlinux 0x055a463e scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x05607b79 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x05804a57 set_binfmt +EXPORT_SYMBOL vmlinux 0x05c3df9d xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x05feddeb blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x060db1ab jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x060f75b0 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0639c01c security_path_truncate +EXPORT_SYMBOL vmlinux 0x06402764 eth_header +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x06927a48 audit_log_start +EXPORT_SYMBOL vmlinux 0x069a38db inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x06ab60c0 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x06c089b0 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x06d09796 vfs_create +EXPORT_SYMBOL vmlinux 0x06d0d71c truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x06d106f3 write_cache_pages +EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x07318f58 sock_alloc_send_skb +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 0x076439df scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x076fde14 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x077464e9 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x07760c1b idr_get_new +EXPORT_SYMBOL vmlinux 0x077a9086 skb_push +EXPORT_SYMBOL vmlinux 0x077f8b7c generic_listxattr +EXPORT_SYMBOL vmlinux 0x07874254 write_one_page +EXPORT_SYMBOL vmlinux 0x079481f3 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +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 0x07e0625e page_symlink +EXPORT_SYMBOL vmlinux 0x08173623 register_framebuffer +EXPORT_SYMBOL vmlinux 0x082b63b3 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x083030bc dm_dirty_log_type_register +EXPORT_SYMBOL vmlinux 0x083a57e2 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x08413d09 tc_classify +EXPORT_SYMBOL vmlinux 0x0844ffb0 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x0849794b pnp_device_attach +EXPORT_SYMBOL vmlinux 0x085cbb4e sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x0888bac7 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x089bb7db blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x08a9c00f redraw_screen +EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x08fd36fd cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x09009419 ppp_register_channel +EXPORT_SYMBOL vmlinux 0x0921ccc8 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled +EXPORT_SYMBOL vmlinux 0x0936f5e3 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x093e947e posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0x0944d7f1 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x09486b3a __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x09625dc2 mem_map +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x097a03a4 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x09845e7f kdb_current_task +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x099a8288 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0x09b2bf26 tcf_exts_dump_stats +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 0x09d8f60e scsi_device_resume +EXPORT_SYMBOL vmlinux 0x09f20dda idr_init +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a59da95 slow_work_register_user +EXPORT_SYMBOL vmlinux 0x0a8e3467 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x0a999c86 dev_uc_del +EXPORT_SYMBOL vmlinux 0x0ab84c52 generic_writepages +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0af13d7b bio_unmap_user +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 0x0b636253 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0x0b69997d pci_pme_capable +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b766471 sock_create_kern +EXPORT_SYMBOL vmlinux 0x0b7fc4da abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x0bad8ada fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x0bbdf305 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x0bbf5adb irq_stat +EXPORT_SYMBOL vmlinux 0x0bc13b05 simple_fill_super +EXPORT_SYMBOL vmlinux 0x0bcd575a dget_locked +EXPORT_SYMBOL vmlinux 0x0bcfd96a phy_detach +EXPORT_SYMBOL vmlinux 0x0be0f8ce tcp_poll +EXPORT_SYMBOL vmlinux 0x0be6a591 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x0beee786 pipe_unlock +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 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c8e3f7d tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region +EXPORT_SYMBOL vmlinux 0x0ca9ee50 dm_io +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cc7f956 edac_mce_register +EXPORT_SYMBOL vmlinux 0x0cf4daa9 pcim_iounmap +EXPORT_SYMBOL vmlinux 0x0cf50de5 inet_put_port +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 0x0d512a79 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d74331f input_event +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dbf061e inet6_ioctl +EXPORT_SYMBOL vmlinux 0x0de8d85e eisa_driver_register +EXPORT_SYMBOL vmlinux 0x0e01d790 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x0e05db5c framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x0e1534f1 sk_reset_txq +EXPORT_SYMBOL vmlinux 0x0e174aa7 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x0e311cff security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x0e346d41 dev_mc_init +EXPORT_SYMBOL vmlinux 0x0e43fd18 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x0e51a523 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e57c790 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x0e595ace tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x0e5b012d pci_clear_master +EXPORT_SYMBOL vmlinux 0x0e5c6528 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x0e5dfa50 eth_change_mtu +EXPORT_SYMBOL vmlinux 0x0e5e6719 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x0e63e1ba __secpath_destroy +EXPORT_SYMBOL vmlinux 0x0e652689 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x0e6671ae pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x0e707ea4 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x0e75663a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x0e8fcfb5 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x0e9c599b abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x0ed38935 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x0ef12fbf eth_validate_addr +EXPORT_SYMBOL vmlinux 0x0f03267b kmem_cache_name +EXPORT_SYMBOL vmlinux 0x0f18ca85 unregister_key_type +EXPORT_SYMBOL vmlinux 0x0f531868 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x0fa947f0 lease_modify +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb15b15 __seq_open_private +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0fdd5d87 bio_kmalloc +EXPORT_SYMBOL vmlinux 0x0fec09d9 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x1003b66a ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x100e5886 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x100fc5cc bio_copy_kern +EXPORT_SYMBOL vmlinux 0x10256aca clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x102c56de irq_regs +EXPORT_SYMBOL vmlinux 0x104af86d scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x104e3c4d tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x104f6160 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x1079fdce tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10db71b3 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x10eaee2f skb_queue_head +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x11410c6f generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x11551696 bitmap_end_sync +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 0x11d4d76e dst_release +EXPORT_SYMBOL vmlinux 0x11dafa40 elv_register_queue +EXPORT_SYMBOL vmlinux 0x11e61da1 __elv_add_request +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x11ffecc6 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x1213eb91 key_negate_and_link +EXPORT_SYMBOL vmlinux 0x1217cf6d bdi_register_dev +EXPORT_SYMBOL vmlinux 0x12360b79 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x123b9a32 remove_inode_hash +EXPORT_SYMBOL vmlinux 0x1257de9e rtnl_unicast +EXPORT_SYMBOL vmlinux 0x1265c834 pci_dev_get +EXPORT_SYMBOL vmlinux 0x1289ec07 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x12b03e9b follow_down +EXPORT_SYMBOL vmlinux 0x12bae370 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x12c16013 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x12cd0184 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12daf629 invalidate_partition +EXPORT_SYMBOL vmlinux 0x12e54ad6 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x131d4b21 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x131f5f04 brioctl_set +EXPORT_SYMBOL vmlinux 0x1336b3bc generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x133cade5 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x1345363c force_sig +EXPORT_SYMBOL vmlinux 0x137495b7 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x1378e714 acpi_video_display_switch_support +EXPORT_SYMBOL vmlinux 0x13861f7b udp_proc_register +EXPORT_SYMBOL vmlinux 0x138e3082 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x13ae023c pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0x13ae2e3c skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0x13c777eb prepare_creds +EXPORT_SYMBOL vmlinux 0x13cd7865 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x13dbe425 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x13df508d vfs_readlink +EXPORT_SYMBOL vmlinux 0x13e1f351 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x13e572e9 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x13f86a90 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x13ffc3c7 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x140a7c34 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x1428c4c6 dm_exception_store_type_unregister +EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x1436917d down_write +EXPORT_SYMBOL vmlinux 0x1445d24b tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x1454be8e ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x1454fd76 block_prepare_write +EXPORT_SYMBOL vmlinux 0x1475efc7 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x14a11a1e backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x14ce0ed4 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x14e7035c netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x14fb327c dm_table_get +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 0x1561dd89 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x1585d78f call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x15b1daa4 dquot_commit +EXPORT_SYMBOL vmlinux 0x15d8c8aa edac_mce_unregister +EXPORT_SYMBOL vmlinux 0x15dc16f3 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x163660ce load_nls +EXPORT_SYMBOL vmlinux 0x1640ec78 generic_unplug_device +EXPORT_SYMBOL vmlinux 0x16592094 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x167c04ba bd_release +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x16ae9729 kfree_skb +EXPORT_SYMBOL vmlinux 0x16d7e6cf check_disk_size_change +EXPORT_SYMBOL vmlinux 0x16e9af52 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x16fc0a19 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x170b2049 posix_test_lock +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x171b61a5 bio_copy_user +EXPORT_SYMBOL vmlinux 0x1762583e vmtruncate +EXPORT_SYMBOL vmlinux 0x176cc799 fb_blank +EXPORT_SYMBOL vmlinux 0x177c444d md_write_start +EXPORT_SYMBOL vmlinux 0x17ab6cd5 mmc_card_awake +EXPORT_SYMBOL vmlinux 0x17b03c1b acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0x17cd6488 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x17d0938f inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x180fb8db jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x18240668 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x1855ed94 blk_remove_plug +EXPORT_SYMBOL vmlinux 0x187324e9 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x18b6dd95 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x18ccd7e3 input_register_handle +EXPORT_SYMBOL vmlinux 0x18cef0ad tcp_read_sock +EXPORT_SYMBOL vmlinux 0x18d4d265 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x18ebf5a3 dquot_destroy +EXPORT_SYMBOL vmlinux 0x18f4c57e input_set_capability +EXPORT_SYMBOL vmlinux 0x19045ae0 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x190a8c19 vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0x19154d40 kill_fasync +EXPORT_SYMBOL vmlinux 0x1962eefa poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x19679afc jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x198acc8f filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x19907d2e locks_copy_lock +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19f364e1 set_create_files_as +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x1a20dcaf netif_receive_skb +EXPORT_SYMBOL vmlinux 0x1a410dfb vlan_gro_receive +EXPORT_SYMBOL vmlinux 0x1a43e8a3 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x1a4528e4 dev_gro_receive +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a5f31fc default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a71822d fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x1a756e68 pci_enable_bridges +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 0x1abb22ee secpath_dup +EXPORT_SYMBOL vmlinux 0x1ac193f8 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x1ac65640 tcp4_gro_receive +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1add40c5 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x1afcef5f vfs_readv +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b13f394 idr_pre_get +EXPORT_SYMBOL vmlinux 0x1b19f12f sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b6726c6 path_put +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9857b7 linkwatch_fire_event +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 0x1bc6861d skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x1bdbb681 dm_exception_store_destroy +EXPORT_SYMBOL vmlinux 0x1bddbb8a tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x1bf434f9 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x1c16e9fe gen_new_estimator +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c5f5333 journal_init_dev +EXPORT_SYMBOL vmlinux 0x1c7b6ccf n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1caf1c58 user_path_at +EXPORT_SYMBOL vmlinux 0x1cbaa025 find_inode_number +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cefa570 inet_shutdown +EXPORT_SYMBOL vmlinux 0x1cfe929e dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d40d1f1 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x1d4459e5 netif_device_attach +EXPORT_SYMBOL vmlinux 0x1d926c8d bioset_create +EXPORT_SYMBOL vmlinux 0x1da5e578 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x1dab795c dev_addr_init +EXPORT_SYMBOL vmlinux 0x1db4c067 dquot_drop +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dce3fee pcim_enable_device +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1ddbf70e redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x1de0de41 deactivate_super +EXPORT_SYMBOL vmlinux 0x1e036c98 acpi_set_gpe +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e2f4382 skb_copy +EXPORT_SYMBOL vmlinux 0x1e4b3288 igrab +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 0x1ee57574 scsi_register +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f2b1d57 input_unregister_device +EXPORT_SYMBOL vmlinux 0x1f2ee4c0 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x1f63d981 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x1f654378 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x1f7f4903 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x1f82612a __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x1f91af1d input_release_device +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1feac570 jbd2_log_start_commit +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 0x2036a98a mmc_host_enable +EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x20460972 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x2057c1df acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x20603ab1 napi_frags_skb +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 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x2096271c blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x20a3d28d dm_io_client_resize +EXPORT_SYMBOL vmlinux 0x20fc05b2 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x2113040e bdget_disk +EXPORT_SYMBOL vmlinux 0x2146d662 neigh_create +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x2178af0b rtnl_notify +EXPORT_SYMBOL vmlinux 0x21cc36ae proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x222c867a tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x228bf5b1 phy_connect +EXPORT_SYMBOL vmlinux 0x22ae925e blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22e746cc ab3100_event_register +EXPORT_SYMBOL vmlinux 0x22edf99d netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x23050e38 get_user_pages +EXPORT_SYMBOL vmlinux 0x230e0443 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x230e6d92 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul +EXPORT_SYMBOL vmlinux 0x233ff309 elevator_init +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 0x236bd34d netif_device_detach +EXPORT_SYMBOL vmlinux 0x237a4ead pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x2394afe4 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x23aa3a2e cdev_add +EXPORT_SYMBOL vmlinux 0x23b3402d dma_async_device_register +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23c9ac63 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x23dad437 d_splice_alias +EXPORT_SYMBOL vmlinux 0x23ec3d5d unlock_buffer +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 0x24486520 dput +EXPORT_SYMBOL vmlinux 0x244967c3 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x244cf9cc i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x24842c90 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x249ba0f3 tty_mutex +EXPORT_SYMBOL vmlinux 0x24ae27e2 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x24be150b uart_match_port +EXPORT_SYMBOL vmlinux 0x24bf01cf uart_register_driver +EXPORT_SYMBOL vmlinux 0x24c67c0d alloc_buffer_head +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 0x2511771d x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x251a5a28 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x25334961 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x253e9e70 phy_find_first +EXPORT_SYMBOL vmlinux 0x25451ce3 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25a6c701 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x25d0182a dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x25d81960 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x25e551ba tty_register_device +EXPORT_SYMBOL vmlinux 0x25eba9da __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x260751a2 tty_throttle +EXPORT_SYMBOL vmlinux 0x26086be1 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x261848cd bio_alloc +EXPORT_SYMBOL vmlinux 0x264315ff acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0x26437eb7 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x264a9b33 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x26518b68 idr_replace +EXPORT_SYMBOL vmlinux 0x26554bbf sk_alloc +EXPORT_SYMBOL vmlinux 0x26609130 wireless_send_event +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x268cc6a2 sys_close +EXPORT_SYMBOL vmlinux 0x26993ce7 acpi_bus_start +EXPORT_SYMBOL vmlinux 0x26d6c0b6 mempool_create +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x2701aa7b dev_txq_stats_fold +EXPORT_SYMBOL vmlinux 0x270d68ab mnt_pin +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x2745a092 vfs_symlink +EXPORT_SYMBOL vmlinux 0x2757058c netif_carrier_on +EXPORT_SYMBOL vmlinux 0x275ac4fc netlink_broadcast +EXPORT_SYMBOL vmlinux 0x2781cd6e gen_pool_add +EXPORT_SYMBOL vmlinux 0x27851133 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x2798521a nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x27af4e13 vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0x27b8fe7d jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27bec2fb tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x27c42b3f ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic +EXPORT_SYMBOL vmlinux 0x27e123ee ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x28145f1c i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0x28219e6c block_write_end +EXPORT_SYMBOL vmlinux 0x283bd479 bd_claim +EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll +EXPORT_SYMBOL vmlinux 0x287a59fb jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x2899aa1b __rta_fill +EXPORT_SYMBOL vmlinux 0x289a6fcb inet_bind +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28a80d27 neigh_lookup +EXPORT_SYMBOL vmlinux 0x28b715a6 isapnp_cfg_end +EXPORT_SYMBOL vmlinux 0x28bff440 hippi_mac_addr +EXPORT_SYMBOL vmlinux 0x28e633b6 set_trace_device +EXPORT_SYMBOL vmlinux 0x29084361 __alloc_skb +EXPORT_SYMBOL vmlinux 0x2914f7d9 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x291fc161 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x29342d32 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x294002ab input_close_device +EXPORT_SYMBOL vmlinux 0x294e2b25 contig_page_data +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x2976895b submit_bio +EXPORT_SYMBOL vmlinux 0x29bb2931 inet_accept +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29bd8669 con_is_bound +EXPORT_SYMBOL vmlinux 0x29f221e7 lock_may_read +EXPORT_SYMBOL vmlinux 0x29f343d4 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x29f93af9 llc_add_pack +EXPORT_SYMBOL vmlinux 0x2a0f43ce mark_info_dirty +EXPORT_SYMBOL vmlinux 0x2a2285ec _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x2a2ebfaa tcp_ioctl +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a44f6ad skb_seq_read +EXPORT_SYMBOL vmlinux 0x2a67698f pnp_find_card +EXPORT_SYMBOL vmlinux 0x2a77b91f sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x2a866ca6 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x2a976fa4 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x2a9ecffc generic_fillattr +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2ac28cea __neigh_event_send +EXPORT_SYMBOL vmlinux 0x2acf657d phy_attach +EXPORT_SYMBOL vmlinux 0x2af3d00b dev_close +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b234161 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x2b76b5c9 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x2b87100d block_truncate_page +EXPORT_SYMBOL vmlinux 0x2b8e8553 kset_register +EXPORT_SYMBOL vmlinux 0x2b98af3f nonseekable_open +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 0x2becd43f vfs_writev +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c2cf04b pci_read_vpd +EXPORT_SYMBOL vmlinux 0x2c2e589e remove_arg_zero +EXPORT_SYMBOL vmlinux 0x2c40a521 simple_link +EXPORT_SYMBOL vmlinux 0x2c44552c journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x2c472ae6 loop_register_transfer +EXPORT_SYMBOL vmlinux 0x2c7ef356 spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0x2c86b261 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x2c924415 path_get +EXPORT_SYMBOL vmlinux 0x2c97e050 dm_snap_origin +EXPORT_SYMBOL vmlinux 0x2ca20a99 elv_rb_find +EXPORT_SYMBOL vmlinux 0x2cc4d5c7 ip6_xmit +EXPORT_SYMBOL vmlinux 0x2cc6fa44 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic +EXPORT_SYMBOL vmlinux 0x2d0c66fd may_umount_tree +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d37342e cpu_online_mask +EXPORT_SYMBOL vmlinux 0x2d3b575f panic_notifier_list +EXPORT_SYMBOL vmlinux 0x2d7d3c81 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2db02d7c deny_write_access +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2deb744d ppp_channel_index +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +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 0x2e4a39f8 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x2e50723f kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x2e60bace memcpy +EXPORT_SYMBOL vmlinux 0x2e681f69 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x2ebf12e2 fb_class +EXPORT_SYMBOL vmlinux 0x2f003ac0 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x2f00451b xfrm_register_type +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f464b47 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x2f9503b1 scsi_init_io +EXPORT_SYMBOL vmlinux 0x2f9cc4ec names_cachep +EXPORT_SYMBOL vmlinux 0x300ec2ea nla_reserve +EXPORT_SYMBOL vmlinux 0x3019851f ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x3024188a bioset_free +EXPORT_SYMBOL vmlinux 0x30415a70 register_8022_client +EXPORT_SYMBOL vmlinux 0x3055d1e1 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x30677c98 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x3093979e unregister_md_personality +EXPORT_SYMBOL vmlinux 0x30b77129 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x30b79202 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x30c32511 skb_insert +EXPORT_SYMBOL vmlinux 0x30c75199 downgrade_write +EXPORT_SYMBOL vmlinux 0x30d1d481 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x3104efb7 arp_create +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x311f1a61 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x312059a4 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x314d4e78 filp_close +EXPORT_SYMBOL vmlinux 0x3152664a pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x31732276 scsi_device_get +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x3194d615 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x319f42f9 skb_checksum +EXPORT_SYMBOL vmlinux 0x31b278c3 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0x31c54425 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31ff8bb4 slow_work_sleep_till_thread_needed +EXPORT_SYMBOL vmlinux 0x321d8584 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x3224a029 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x3228f379 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x3238ebba tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x325a88c7 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x326b4270 tcp4_gro_complete +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 0x328bc5fe alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x3294f9d0 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x329665fd __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x32a2264b blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x32b03542 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x32ca9939 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x330e3070 dst_destroy +EXPORT_SYMBOL vmlinux 0x3340d73c inode_init_owner +EXPORT_SYMBOL vmlinux 0x3349b85b module_put +EXPORT_SYMBOL vmlinux 0x337c2b85 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x33970aa0 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x33ba843e pagevec_lookup +EXPORT_SYMBOL vmlinux 0x33c9b3db dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x33d57c85 lookup_hash +EXPORT_SYMBOL vmlinux 0x33dd2ef8 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x3411142f tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x341ba441 notify_change +EXPORT_SYMBOL vmlinux 0x341f1b29 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x342f60fe apm_info +EXPORT_SYMBOL vmlinux 0x34354f0f dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x34438131 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long +EXPORT_SYMBOL vmlinux 0x345d7ff1 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x3476f81e dm_exception_store_create +EXPORT_SYMBOL vmlinux 0x3487d0e4 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x348c25af register_sysctl_table +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +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 0x34ddccbf dqput +EXPORT_SYMBOL vmlinux 0x3505dced mdiobus_read +EXPORT_SYMBOL vmlinux 0x351d85c1 do_splice_to +EXPORT_SYMBOL vmlinux 0x351dc09c iterate_mounts +EXPORT_SYMBOL vmlinux 0x35352a61 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x353ae255 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x353ca2b3 acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x3543124f get_sb_bdev +EXPORT_SYMBOL vmlinux 0x35522889 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x3584516d filemap_flush +EXPORT_SYMBOL vmlinux 0x359eb30c spi_dv_device +EXPORT_SYMBOL vmlinux 0x35a202b9 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x35aa077e dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x35b75e4d pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35cd6d97 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x35da2e61 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x35fe1260 fasync_helper +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x3614a3de phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x3623d973 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x362ef408 _copy_from_user +EXPORT_SYMBOL vmlinux 0x363216e9 tty_port_open +EXPORT_SYMBOL vmlinux 0x36368b50 inet_ioctl +EXPORT_SYMBOL vmlinux 0x36680c90 pci_restore_state +EXPORT_SYMBOL vmlinux 0x3671a70d alloc_fcdev +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x368fda97 inet_addr_type +EXPORT_SYMBOL vmlinux 0x36a94d27 bio_integrity_split +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 0x372d3f8c inode_init_always +EXPORT_SYMBOL vmlinux 0x37373393 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf +EXPORT_SYMBOL vmlinux 0x37802694 init_special_inode +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 0x37f38dd7 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x37f86c3a filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x37fcef01 do_truncate +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 0x3817d7f9 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x38551568 idr_for_each +EXPORT_SYMBOL vmlinux 0x3865bccc key_validate +EXPORT_SYMBOL vmlinux 0x386957f5 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x38761b3b phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x388681c3 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x388799f6 unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38aa7d58 rwsem_wake +EXPORT_SYMBOL vmlinux 0x38b67d2f tcf_hash_check +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38cd209f km_new_mapping +EXPORT_SYMBOL vmlinux 0x38e6e872 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x38f1ee29 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x38fd91dd vfs_getattr +EXPORT_SYMBOL vmlinux 0x392a403b pnp_device_detach +EXPORT_SYMBOL vmlinux 0x39413fd0 ip6_route_output +EXPORT_SYMBOL vmlinux 0x3976aa05 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x397b4bd1 slow_work_unregister_user +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39b022e5 mca_register_driver +EXPORT_SYMBOL vmlinux 0x39d8158a request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x39eb857f __ip_select_ident +EXPORT_SYMBOL vmlinux 0x39ee82fd __netdev_alloc_page +EXPORT_SYMBOL vmlinux 0x39f090f2 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x39fb16bd acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x39fe418c tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x3a13258f __ps2_command +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a4e99e5 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x3a5265af i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x3a7173ac complete_all +EXPORT_SYMBOL vmlinux 0x3a7da6dd __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x3a8e0732 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3a9bd6c4 elv_rb_del +EXPORT_SYMBOL vmlinux 0x3ac92bdd dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x3aed2a67 default_llseek +EXPORT_SYMBOL vmlinux 0x3b1f2fd2 md_check_recovery +EXPORT_SYMBOL vmlinux 0x3b213a4a bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b33576a dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x3b416025 inet_frags_init +EXPORT_SYMBOL vmlinux 0x3b4f0df2 seq_bitmap +EXPORT_SYMBOL vmlinux 0x3b59f249 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x3b622328 kobject_get +EXPORT_SYMBOL vmlinux 0x3b65efc1 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x3b662dbb sock_recvmsg +EXPORT_SYMBOL vmlinux 0x3b6b2b98 d_alloc_root +EXPORT_SYMBOL vmlinux 0x3b9925bb end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3c28d2d0 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c3f2c9d make_bad_inode +EXPORT_SYMBOL vmlinux 0x3c493fe0 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x3c5efd56 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x3c7c9eb3 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x3c8f2bb2 page_put_link +EXPORT_SYMBOL vmlinux 0x3c9706a0 pci_find_capability +EXPORT_SYMBOL vmlinux 0x3c99a2b1 blk_run_queue +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cb3931b sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x3cbcff4c new_inode +EXPORT_SYMBOL vmlinux 0x3ccac9e8 stop_tty +EXPORT_SYMBOL vmlinux 0x3ccfd237 __nla_put +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cede60b tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x3cf50675 thermal_cooling_device_register +EXPORT_SYMBOL vmlinux 0x3d2aafd1 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x3d41e53c tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x3d4a5d7e elv_abort_queue +EXPORT_SYMBOL vmlinux 0x3d520b1b generic_write_end +EXPORT_SYMBOL vmlinux 0x3d605d5d textsearch_register +EXPORT_SYMBOL vmlinux 0x3d60edbc write_inode_now +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d8ea13d bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3daa69da vfs_lstat +EXPORT_SYMBOL vmlinux 0x3db0ccd7 lookup_one_len +EXPORT_SYMBOL vmlinux 0x3dd41d1b scsi_free_command +EXPORT_SYMBOL vmlinux 0x3de1887b no_llseek +EXPORT_SYMBOL vmlinux 0x3defd6a1 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e04bc92 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x3e1a78c1 eth_type_trans +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e51c421 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x3e5b7cb9 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e886455 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ed63574 read_cache_pages +EXPORT_SYMBOL vmlinux 0x3ef78d80 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f09e422 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x3f14d53b is_bad_inode +EXPORT_SYMBOL vmlinux 0x3f1bc368 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x3f200666 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x3f243f45 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x3f3159b4 gen_pool_free +EXPORT_SYMBOL vmlinux 0x3f379c33 vga_put +EXPORT_SYMBOL vmlinux 0x3f37a533 add_disk +EXPORT_SYMBOL vmlinux 0x3f38f693 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f5e7df6 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x3f622645 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x3f6d8b99 single_release +EXPORT_SYMBOL vmlinux 0x3f857d26 kmem_cache_create +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 0x403b8519 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x40475000 pci_iounmap +EXPORT_SYMBOL vmlinux 0x404f617d dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x4052713e elv_add_request +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40992184 bio_pair_release +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40ce9c01 dquot_enable +EXPORT_SYMBOL vmlinux 0x40e4cdb4 dquot_acquire +EXPORT_SYMBOL vmlinux 0x40f8be01 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x4127952c kthread_bind +EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4150a9d3 free_buffer_head +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 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 0x426bac5d padata_add_cpu +EXPORT_SYMBOL vmlinux 0x4292364c schedule +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x429adb57 napi_get_frags +EXPORT_SYMBOL vmlinux 0x429d18fd dma_find_channel +EXPORT_SYMBOL vmlinux 0x42a20ff0 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache +EXPORT_SYMBOL vmlinux 0x42d394dc mutex_unlock +EXPORT_SYMBOL vmlinux 0x42e2ad21 audit_log_end +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +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 0x433d1aab inode_set_bytes +EXPORT_SYMBOL vmlinux 0x433e1d23 neigh_destroy +EXPORT_SYMBOL vmlinux 0x4341e7a0 unlock_super +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get +EXPORT_SYMBOL vmlinux 0x43d1814a tty_port_close_end +EXPORT_SYMBOL vmlinux 0x43d46b99 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x43d54fdd gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x43ea0028 kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x440060e0 end_page_writeback +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 0x44979517 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44e7472b filp_open +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x45107bfd pci_claim_resource +EXPORT_SYMBOL vmlinux 0x4511e258 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x45120b8e __find_get_block +EXPORT_SYMBOL vmlinux 0x451c1b3f serio_open +EXPORT_SYMBOL vmlinux 0x4539cd64 vfs_unlink +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x457a8a31 key_alloc +EXPORT_SYMBOL vmlinux 0x45947727 param_array_set +EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states +EXPORT_SYMBOL vmlinux 0x459cfa67 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x45aa886e neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x45b3734f d_move +EXPORT_SYMBOL vmlinux 0x45c7bf6e kill_anon_super +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45e203df blk_stack_limits +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x462c3eb7 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x465e1a4a alloc_disk +EXPORT_SYMBOL vmlinux 0x466af75d sock_register +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x46c530ec dma_supported +EXPORT_SYMBOL vmlinux 0x46fd7965 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x4719ea3c sk_free +EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x473a4a01 scsi_host_alloc +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 0x47c7b0d2 cpu_number +EXPORT_SYMBOL vmlinux 0x47cea6cf tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x47e2ae97 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x48478947 mddev_congested +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x48a771c5 cpu_core_map +EXPORT_SYMBOL vmlinux 0x48cf0477 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x48dd881b __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x48e3b113 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x48f26899 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x48f6bf29 sock_no_poll +EXPORT_SYMBOL vmlinux 0x493dabcd blk_integrity_compare +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 0x4956cbb8 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x4958eddb blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x49af8f6f napi_reuse_skb +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49cb4766 ip_defrag +EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string +EXPORT_SYMBOL vmlinux 0x49f66d6f mmc_card_sleep +EXPORT_SYMBOL vmlinux 0x4a0deb84 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a4627e8 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x4a5ed69d dm_table_event +EXPORT_SYMBOL vmlinux 0x4a631d45 scsi_unregister +EXPORT_SYMBOL vmlinux 0x4a75d1a0 inode_change_ok +EXPORT_SYMBOL vmlinux 0x4a7692f5 sock_init_data +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 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b40c015 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x4b40ea9b tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x4b5793fe inet_stream_connect +EXPORT_SYMBOL vmlinux 0x4b63cd5b xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x4b677dfb skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x4b961826 mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x4b9cc071 udp_prot +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bd12eda ip_fragment +EXPORT_SYMBOL vmlinux 0x4c057e2a mca_unregister_driver +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c26a372 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c2b42a5 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x4c4d4d5b mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x4c7aeb14 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x4cb9ef3a nf_register_hook +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4ce070ae udp_poll +EXPORT_SYMBOL vmlinux 0x4ce24338 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x4cec033e netif_napi_del +EXPORT_SYMBOL vmlinux 0x4cf21ee2 mca_device_transform_memory +EXPORT_SYMBOL vmlinux 0x4d11e171 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x4d20ddbc atomic64_inc_not_zero_cx8 +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d6a85df acpi_root_dir +EXPORT_SYMBOL vmlinux 0x4da6f65c xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dc7e3aa d_invalidate +EXPORT_SYMBOL vmlinux 0x4dcef1f6 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x4deab55e scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x4df0d0df unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4df7c1cd netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child +EXPORT_SYMBOL vmlinux 0x4e2474a1 iget5_locked +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e467621 sock_update_classid +EXPORT_SYMBOL vmlinux 0x4e472ac1 llc_sap_open +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e743069 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x4e7b85be netif_carrier_off +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e9236d2 send_sig_info +EXPORT_SYMBOL vmlinux 0x4e9ccd23 tty_devnum +EXPORT_SYMBOL vmlinux 0x4ed74c41 dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x4f176729 bio_init +EXPORT_SYMBOL vmlinux 0x4f1ba5a1 dev_open +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f2f2f08 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f5438c1 idle_halt +EXPORT_SYMBOL vmlinux 0x4f7442e3 xfrm_register_km +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4f934c27 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x4f9c6e99 revalidate_disk +EXPORT_SYMBOL vmlinux 0x4fa88d22 fb_get_mode +EXPORT_SYMBOL vmlinux 0x4fafe8ba mark_page_accessed +EXPORT_SYMBOL vmlinux 0x4fbe93a7 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x4fca59e3 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x502c7a3f tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x5048ecf4 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x505e05b0 arp_xmit +EXPORT_SYMBOL vmlinux 0x50641111 fb_is_primary_device +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x506e6f2f _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x50876eb8 register_quota_format +EXPORT_SYMBOL vmlinux 0x5098019c pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x5099024a submit_bh +EXPORT_SYMBOL vmlinux 0x50b847f0 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x50d36af6 sock_release +EXPORT_SYMBOL vmlinux 0x51084af2 vfs_rename +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5141272e pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x5152e605 memcmp +EXPORT_SYMBOL vmlinux 0x5162080a k8_northbridges +EXPORT_SYMBOL vmlinux 0x516bb306 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x516c1879 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x51826671 console_start +EXPORT_SYMBOL vmlinux 0x5186518f profile_pc +EXPORT_SYMBOL vmlinux 0x51878adb unregister_binfmt +EXPORT_SYMBOL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL vmlinux 0x51997f91 lock_may_write +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 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 0x5236d318 blk_rq_init +EXPORT_SYMBOL vmlinux 0x52373b22 bit_waitqueue +EXPORT_SYMBOL vmlinux 0x5239b676 fb_validate_mode +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 0x52ab8981 register_gifconf +EXPORT_SYMBOL vmlinux 0x52ae5acc cdrom_mode_select +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 0x52fd0b89 __netif_schedule +EXPORT_SYMBOL vmlinux 0x53058ecb cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x530b1e4c rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x53189155 f_setown +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 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x5385c449 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x53ac88c8 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53cb9729 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x53ce4e70 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x53e633d1 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x54005641 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x5408420e inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x5426602d eth_mac_addr +EXPORT_SYMBOL vmlinux 0x54274758 dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x542edf01 dquot_file_open +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x5444eee3 blk_plug_device +EXPORT_SYMBOL vmlinux 0x54856806 bio_map_user +EXPORT_SYMBOL vmlinux 0x54935666 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0x549758b7 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x54a285c5 atomic64_dec_return_cx8 +EXPORT_SYMBOL vmlinux 0x54c18ee9 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x5505d4a3 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x55340bf8 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x555f39fa __lock_buffer +EXPORT_SYMBOL vmlinux 0x55681783 nf_log_packet +EXPORT_SYMBOL vmlinux 0x558449c8 blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x55a4948f splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x55c06da3 unregister_con_driver +EXPORT_SYMBOL vmlinux 0x55cac4fe fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x55eef9ae inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x55fcab69 md_integrity_add_rdev +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 0x561e3478 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x5623aa74 pci_disable_msix +EXPORT_SYMBOL vmlinux 0x5634e8ab dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x565a0d69 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x5684efe0 nobh_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x569f5a80 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56cc7b76 blk_rq_count_integrity_sg +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 0x57078622 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x571575e4 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x57537f09 get_sb_single +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 0x5771a63b skb_dequeue +EXPORT_SYMBOL vmlinux 0x5775182d mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x57939c12 sk_filter +EXPORT_SYMBOL vmlinux 0x5796c33c blk_alloc_queue +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 0x57c07659 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x57c5f6eb phy_scan_fixups +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 0x58130cc2 xfrm_input +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 0x588c94e4 kobject_put +EXPORT_SYMBOL vmlinux 0x5890c8c8 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x5892d54c acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x58aa7777 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x58c47113 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x58d41742 ip_route_input_common +EXPORT_SYMBOL vmlinux 0x58e5e640 iget_failed +EXPORT_SYMBOL vmlinux 0x58e81de2 unregister_netdev +EXPORT_SYMBOL vmlinux 0x58fef6f8 ist_info +EXPORT_SYMBOL vmlinux 0x592b59af acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x592b9cd7 down_read +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x5934a855 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x59486d30 dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x5954ca82 idr_destroy +EXPORT_SYMBOL vmlinux 0x5959e53f scsi_put_command +EXPORT_SYMBOL vmlinux 0x5965a9e1 proc_symlink +EXPORT_SYMBOL vmlinux 0x5977d2fe dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x59897d2f bd_set_size +EXPORT_SYMBOL vmlinux 0x59944da4 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x59a95497 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59efd4b4 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x5a2bda12 udplite_table +EXPORT_SYMBOL vmlinux 0x5a36c195 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a6dfe87 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a981186 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x5a9ff008 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5acba180 d_instantiate +EXPORT_SYMBOL vmlinux 0x5acf0a9c pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x5ade9afe journal_check_available_features +EXPORT_SYMBOL vmlinux 0x5b08be95 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b1d39e8 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x5b2dbd93 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x5b368ec8 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x5b4c6297 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b5ee127 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x5b6e232e km_policy_expired +EXPORT_SYMBOL vmlinux 0x5b7a81fd clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x5b88e8c9 atomic64_sub_return_cx8 +EXPORT_SYMBOL vmlinux 0x5b8cb673 journal_lock_updates +EXPORT_SYMBOL vmlinux 0x5ba5b393 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x5befe655 register_key_type +EXPORT_SYMBOL vmlinux 0x5c1987e1 cdev_alloc +EXPORT_SYMBOL vmlinux 0x5c55562f ps2_begin_command +EXPORT_SYMBOL vmlinux 0x5c68705b mca_read_pos +EXPORT_SYMBOL vmlinux 0x5c881ba9 kmap_atomic_to_page +EXPORT_SYMBOL vmlinux 0x5c90d6bd neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x5c9a1629 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x5ccfa208 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x5ce6f187 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x5d070ddd lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x5d57c069 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x5d5e7200 unregister_nls +EXPORT_SYMBOL vmlinux 0x5d5e9beb mnt_unpin +EXPORT_SYMBOL vmlinux 0x5d6bcc41 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x5d95a3ee kill_litter_super +EXPORT_SYMBOL vmlinux 0x5d9baa54 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x5dab6585 dev_base_lock +EXPORT_SYMBOL vmlinux 0x5dda40f4 simple_lookup +EXPORT_SYMBOL vmlinux 0x5ddc02f8 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x5de05235 mca_bus_type +EXPORT_SYMBOL vmlinux 0x5de1eceb generic_setlease +EXPORT_SYMBOL vmlinux 0x5de9f72b journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x5e09ca75 complete +EXPORT_SYMBOL vmlinux 0x5e478c67 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x5e620cbc udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x5e7db207 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x5e8ce456 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5ec5b8ee scm_detach_fds +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5ed813e4 d_alloc +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5f054d52 read_cache_page +EXPORT_SYMBOL vmlinux 0x5f1ae291 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x5f1bd579 mca_find_adapter +EXPORT_SYMBOL vmlinux 0x5f21ba5b _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x5f2a2871 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x5f504806 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0x5f6208de scsi_scan_target +EXPORT_SYMBOL vmlinux 0x5f6d534b ip_route_output_key +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5faf993f dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x5fd6b2e9 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x5fd92700 get_unmapped_area_prot +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 0x6048cac7 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x60857ce0 acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60b92da6 mca_device_transform_irq +EXPORT_SYMBOL vmlinux 0x60e8365f xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x60ee53b0 kill_block_super +EXPORT_SYMBOL vmlinux 0x60f03083 inode_permission +EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n +EXPORT_SYMBOL vmlinux 0x610e8fe1 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x61284e9b __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x612a6e61 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x6138c396 arp_tbl +EXPORT_SYMBOL vmlinux 0x615a3dcb mod_timer +EXPORT_SYMBOL vmlinux 0x61634f61 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x61a50a1a give_up_console +EXPORT_SYMBOL vmlinux 0x61a73866 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x61a8826c __mutex_init +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61cc5107 km_state_expired +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x620de8f8 thaw_process +EXPORT_SYMBOL vmlinux 0x621fbd4b sg_miter_stop +EXPORT_SYMBOL vmlinux 0x6221a24c vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x6223cafb _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x622d843c deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x622f0042 netpoll_send_skb +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 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x6276d835 touch_atime +EXPORT_SYMBOL vmlinux 0x627b0756 key_revoke +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x6284687d scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x62e3c7ce processors +EXPORT_SYMBOL vmlinux 0x636104ad skb_recycle_check +EXPORT_SYMBOL vmlinux 0x6362eab4 d_validate +EXPORT_SYMBOL vmlinux 0x636626e7 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x63950e09 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x63ddc61b pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x63e05e8d sock_kfree_s +EXPORT_SYMBOL vmlinux 0x63e2f77f inode_add_rsv_space +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 0x63ff73f6 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x6414a618 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x6421e276 get_disk +EXPORT_SYMBOL vmlinux 0x6443d74d _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x644f55c9 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x645848cb fb_pan_display +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x6499d912 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x64a720da jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x64e90ef0 del_timer +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +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 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x655f2809 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x6565d33f scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x65a7495f generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x65c88d55 clear_inode +EXPORT_SYMBOL vmlinux 0x65d1e37b phy_disable_interrupts +EXPORT_SYMBOL vmlinux 0x65d20243 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x65e0e395 pci_request_regions +EXPORT_SYMBOL vmlinux 0x65ec0287 __lock_page +EXPORT_SYMBOL vmlinux 0x6608445d open_by_devnum +EXPORT_SYMBOL vmlinux 0x660b97a2 prepare_binprm +EXPORT_SYMBOL vmlinux 0x66189f0c kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0x6629633b sock_no_mmap +EXPORT_SYMBOL vmlinux 0x664850bb serial8250_register_port +EXPORT_SYMBOL vmlinux 0x664a9cc2 unlock_rename +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x6696d255 skb_split +EXPORT_SYMBOL vmlinux 0x66d364d6 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x66fdcf95 genphy_suspend +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x670c0597 down_interruptible +EXPORT_SYMBOL vmlinux 0x670d155f tty_register_driver +EXPORT_SYMBOL vmlinux 0x6720467e sock_no_connect +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x67366f4d xfrm_state_update +EXPORT_SYMBOL vmlinux 0x674f51f5 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x677e07d6 __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0x67804a19 __any_online_cpu +EXPORT_SYMBOL vmlinux 0x6789c8ce arp_find +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 0x67c3fe16 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x6805d4d3 ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0x68146245 bdi_unregister +EXPORT_SYMBOL vmlinux 0x68275859 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x68571b46 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x685a8ae3 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x68732301 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x6878650e inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x6885f602 journal_flush +EXPORT_SYMBOL vmlinux 0x689f4d53 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x68cb6ee6 mpage_readpage +EXPORT_SYMBOL vmlinux 0x68d076b6 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x68d13257 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x68e20a66 block_sync_page +EXPORT_SYMBOL vmlinux 0x68e6968c framebuffer_release +EXPORT_SYMBOL vmlinux 0x6945f765 km_state_notify +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int +EXPORT_SYMBOL vmlinux 0x698743d7 skb_pad +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x699af5e8 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a0d5d0 register_cdrom +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69c81e17 generic_pipe_buf_map +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 0x69ee479b key_type_keyring +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a177208 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x6a2576f3 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x6a27bfce csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x6a4a9105 input_open_device +EXPORT_SYMBOL vmlinux 0x6a585b30 journal_clear_err +EXPORT_SYMBOL vmlinux 0x6a5aabfb bitmap_unplug +EXPORT_SYMBOL vmlinux 0x6a737c76 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x6a755eeb dev_mc_add +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6ab3618a blk_requeue_request +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6aef8c8a dm_table_put +EXPORT_SYMBOL vmlinux 0x6af0e73c journal_restart +EXPORT_SYMBOL vmlinux 0x6b015c43 bio_map_kern +EXPORT_SYMBOL vmlinux 0x6b0bdcec mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b6dc165 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x6b937ffb mca_mark_as_used +EXPORT_SYMBOL vmlinux 0x6b9e66a9 vfs_link +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bf8d133 down_trylock +EXPORT_SYMBOL vmlinux 0x6c0e7215 mca_device_claimed +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 0x6c470aa6 slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c73211c scsi_device_put +EXPORT_SYMBOL vmlinux 0x6ca9afa6 seq_putc +EXPORT_SYMBOL vmlinux 0x6cbfd77e sk_receive_skb +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d288375 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d492a58 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x6d57e106 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6daa56a4 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x6dc3bd60 sk_reset_timer +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 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6dfb6841 security_path_link +EXPORT_SYMBOL vmlinux 0x6dfdaa40 vm_insert_page +EXPORT_SYMBOL vmlinux 0x6e2cea1e md_error +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 0x6e74005b unbind_con_driver +EXPORT_SYMBOL vmlinux 0x6e766ea1 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x6e9b0962 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6e9dfc7d bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x6ee2ea76 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x6f2178e5 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x6f36242b gen_pool_create +EXPORT_SYMBOL vmlinux 0x6f36a2b7 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x6f4a675f d_find_alias +EXPORT_SYMBOL vmlinux 0x6f50984e tty_vhangup +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_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 0x6fd1360f udp_sendmsg +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 0x701d0ebd snprintf +EXPORT_SYMBOL vmlinux 0x7020c11a blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x70239cdf cfb_copyarea +EXPORT_SYMBOL vmlinux 0x70390385 netif_rx +EXPORT_SYMBOL vmlinux 0x70458cbf simple_release_fs +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x705e01eb __destroy_inode +EXPORT_SYMBOL vmlinux 0x706f7b2c __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x7078b518 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x70a004fc phy_attach_direct +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 0x70fc7373 register_con_driver +EXPORT_SYMBOL vmlinux 0x710aae85 put_disk +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7138981b proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x714b9472 tty_kref_put +EXPORT_SYMBOL vmlinux 0x714bb63a md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x715453d2 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x71585a3a blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x715ae71a fb_find_mode +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x718333ec ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x718b8cb7 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x7193fa97 set_blocksize +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71aa15d1 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x71c9a495 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x71e1fb97 skb_append +EXPORT_SYMBOL vmlinux 0x72056eb2 replace_mount_options +EXPORT_SYMBOL vmlinux 0x7239cf63 mdiobus_write +EXPORT_SYMBOL vmlinux 0x725730a8 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x7296fc46 d_path +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72b2b8fb setup_arg_pages +EXPORT_SYMBOL vmlinux 0x72ba74f8 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x72bba148 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte +EXPORT_SYMBOL vmlinux 0x72cddec3 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72ff3c32 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x73177a8c i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x7319671d phy_start +EXPORT_SYMBOL vmlinux 0x7329d212 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x735d2a75 ndisc_build_skb +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +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 0x73947f9b page_readlink +EXPORT_SYMBOL vmlinux 0x739dc9c1 simple_unlink +EXPORT_SYMBOL vmlinux 0x73af0115 x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0x73d0bf2a llc_set_station_handler +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x740cd32a tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x7413793a EISA_bus +EXPORT_SYMBOL vmlinux 0x7424214d dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x742f3c86 pnp_find_dev +EXPORT_SYMBOL vmlinux 0x743eb739 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte +EXPORT_SYMBOL vmlinux 0x747fc3cc jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x7485fc35 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x749e90f2 lro_flush_all +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74c19b6a seq_read +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74cc4746 hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0x74d4d753 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x75271716 save_processor_state +EXPORT_SYMBOL vmlinux 0x753bfc2d inet_stream_ops +EXPORT_SYMBOL vmlinux 0x7587bc4c ip_ct_attach +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 0x75e7980c neigh_for_each +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 0x767b3e64 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x7682974b pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x768edc47 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x7694b8c9 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x769d6e5a phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +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 0x77523024 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x77533110 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x776546f5 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x779ff587 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x77aa1a60 dw_spi_add_host +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77c13833 __blk_end_request +EXPORT_SYMBOL vmlinux 0x77c41ea6 journal_wipe +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77e0e0b3 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x77fb6527 drop_super +EXPORT_SYMBOL vmlinux 0x782a29eb abx500_register_ops +EXPORT_SYMBOL vmlinux 0x782bf562 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x784df593 scsi_host_put +EXPORT_SYMBOL vmlinux 0x786da073 vc_cons +EXPORT_SYMBOL vmlinux 0x788086d0 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x78d8db9e idr_get_next +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78ec1c10 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x79200494 sock_setsockopt +EXPORT_SYMBOL vmlinux 0x7929b8e0 alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt +EXPORT_SYMBOL vmlinux 0x794af755 dm_dirty_log_destroy +EXPORT_SYMBOL vmlinux 0x795135cb __lru_cache_add +EXPORT_SYMBOL vmlinux 0x796c75c4 try_to_release_page +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x798cbdf4 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x7991ab03 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x79a69a5f pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x7a07c56a journal_init_inode +EXPORT_SYMBOL vmlinux 0x7a29d886 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x7a29dfd0 lookup_bdev +EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a4a7daf pci_iomap +EXPORT_SYMBOL vmlinux 0x7a625801 module_layout +EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip +EXPORT_SYMBOL vmlinux 0x7acbdb29 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x7ae16207 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x7ae95b4d unlock_page +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7aed2c1e generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x7aedc1ea tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7b11c60d bio_put +EXPORT_SYMBOL vmlinux 0x7b134ddf acpi_get_name +EXPORT_SYMBOL vmlinux 0x7b445b82 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x7b5ad85e bdget +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7b8a96f6 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x7b9e983f cpu_info +EXPORT_SYMBOL vmlinux 0x7ba25072 rfkill_destroy +EXPORT_SYMBOL vmlinux 0x7ba5ce4a block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x7ba5e811 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x7baba8f7 bio_add_page +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7bd6e1dd d_lookup +EXPORT_SYMBOL vmlinux 0x7bf6462b bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x7c21e8a1 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c539fa8 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x7c55e248 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x7c59a481 search_binary_handler +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c87f018 dquot_set_dqblk +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 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cd53804 generic_readlink +EXPORT_SYMBOL vmlinux 0x7cdcc668 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x7ceb4a54 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x7cf30193 rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x7d0e19fb blk_free_tags +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d14e128 bio_clone +EXPORT_SYMBOL vmlinux 0x7d23862d single_open +EXPORT_SYMBOL vmlinux 0x7d2ad3f3 skb_make_writable +EXPORT_SYMBOL vmlinux 0x7d387f1a __scm_destroy +EXPORT_SYMBOL vmlinux 0x7d76a080 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x7d7a222c napi_frags_finish +EXPORT_SYMBOL vmlinux 0x7db57751 proc_dointvec +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7dd1cc03 ll_rw_block +EXPORT_SYMBOL vmlinux 0x7dd56a21 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x7e04b35d __getblk +EXPORT_SYMBOL vmlinux 0x7e0abb2f journal_create +EXPORT_SYMBOL vmlinux 0x7e1d17cf atomic64_read_cx8 +EXPORT_SYMBOL vmlinux 0x7e1ef3f4 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x7e253005 tty_check_change +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e544f58 get_gendisk +EXPORT_SYMBOL vmlinux 0x7e56430d km_policy_notify +EXPORT_SYMBOL vmlinux 0x7e627925 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x7e6d9eec qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7ebe1ee8 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x7ebe55a8 rt6_lookup +EXPORT_SYMBOL vmlinux 0x7ecb001b __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x7efbc262 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x7eff1f7f have_submounts +EXPORT_SYMBOL vmlinux 0x7f114141 complete_and_exit +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f38257c padata_free +EXPORT_SYMBOL vmlinux 0x7f4dde35 noop_fsync +EXPORT_SYMBOL vmlinux 0x7f6d6497 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x7f9d7a50 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x7fb65850 current_task +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x8017d9a2 netdev_state_change +EXPORT_SYMBOL vmlinux 0x8051725f xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x806479ce splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x80952310 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x80a84993 register_exec_domain +EXPORT_SYMBOL vmlinux 0x80c59410 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x80d6b400 md_barrier_request +EXPORT_SYMBOL vmlinux 0x80edadf7 d_delete +EXPORT_SYMBOL vmlinux 0x812d88b8 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x81433e86 proto_register +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 0x8161a0fb __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf +EXPORT_SYMBOL vmlinux 0x8185f0df napi_gro_receive +EXPORT_SYMBOL vmlinux 0x819e1c25 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0x81a5152d blk_peek_request +EXPORT_SYMBOL vmlinux 0x81b14218 key_put +EXPORT_SYMBOL vmlinux 0x81b36f05 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +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 0x8228dda8 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user +EXPORT_SYMBOL vmlinux 0x822bbbd2 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x8235805b memmove +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x8294105f bio_split +EXPORT_SYMBOL vmlinux 0x82a8eb6b blk_insert_request +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82b45539 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x82bbbc6c netpoll_print_options +EXPORT_SYMBOL vmlinux 0x82e113d9 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x82e418c7 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x82eaf410 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x82fa952e prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot +EXPORT_SYMBOL vmlinux 0x831cb2a5 ___ratelimit +EXPORT_SYMBOL vmlinux 0x83269c06 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x833e270b bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x83636ee3 wait_for_completion +EXPORT_SYMBOL vmlinux 0x83647303 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x836b43cc blk_stop_queue +EXPORT_SYMBOL vmlinux 0x83767ca9 proc_dostring +EXPORT_SYMBOL vmlinux 0x8377940d ppp_input_error +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83e7adbd pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x83fc9d2d __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x84231a45 check_disk_change +EXPORT_SYMBOL vmlinux 0x84298439 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x8436f2f2 scsi_host_get +EXPORT_SYMBOL vmlinux 0x845474e6 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x845a60dc blk_unplug +EXPORT_SYMBOL vmlinux 0x849bd8bf sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x849e6744 release_sock +EXPORT_SYMBOL vmlinux 0x84a3930c clocksource_unregister +EXPORT_SYMBOL vmlinux 0x84a3e2b2 genphy_config_advert +EXPORT_SYMBOL vmlinux 0x84bbeaaf __bio_clone +EXPORT_SYMBOL vmlinux 0x850c161e journal_stop +EXPORT_SYMBOL vmlinux 0x8531f2ad neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x854a6932 input_grab_device +EXPORT_SYMBOL vmlinux 0x85518377 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85ef05b9 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x8612cc69 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x8612fd58 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x8618e163 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86b53be5 nf_afinfo +EXPORT_SYMBOL vmlinux 0x86b9b596 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x86d65e22 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x86f5e7a3 tty_hangup +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x871b1ddc inet_getname +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x873c376a tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x8749e226 cont_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x87560d78 proto_unregister +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x87745bcc key_unlink +EXPORT_SYMBOL vmlinux 0x8775376f dev_uc_add +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x8793f472 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x87a45ee9 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x87a4e52d xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87ac3bf3 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x87bd11c5 iget_locked +EXPORT_SYMBOL vmlinux 0x87e65337 netif_napi_add +EXPORT_SYMBOL vmlinux 0x87f6d484 file_permission +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x8832adfa hippi_change_mtu +EXPORT_SYMBOL vmlinux 0x8848bd59 sk_stream_error +EXPORT_SYMBOL vmlinux 0x8848fd22 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x8853be3b dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x88767f17 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x88941a06 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x889a79fd netpoll_poll +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 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x893f2cff tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x89457fe1 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x895a2b96 dev_get_stats +EXPORT_SYMBOL vmlinux 0x895bee77 seq_release_private +EXPORT_SYMBOL vmlinux 0x89705d96 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x897288fc qdisc_reset +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x898bf478 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x89a793cf pci_disable_msi +EXPORT_SYMBOL vmlinux 0x89bbec01 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x89d21548 register_netdev +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89dd6682 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x89fb1eb0 mpage_readpages +EXPORT_SYMBOL vmlinux 0x8a03bf6e pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x8a083df3 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x8a0b3abb __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x8a2d8109 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x8a3a67b3 tcf_em_register +EXPORT_SYMBOL vmlinux 0x8a48cd66 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x8a633fa9 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8ab263cd abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x8ae0e1b7 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x8ae45175 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x8af6202a uart_get_baud_rate +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 0x8b219113 sock_no_socketpair +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 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 0x8bd69e2b dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x8bfd6f6a __f_setown +EXPORT_SYMBOL vmlinux 0x8c1068eb generic_permission +EXPORT_SYMBOL vmlinux 0x8c183be5 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c1a26c2 eth_header_parse +EXPORT_SYMBOL vmlinux 0x8c4dafd7 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x8c4f662a dquot_transfer +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 0x8cfd6494 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x8d255b94 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x8d3edb85 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x8d456038 jbd2_journal_extend +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 0x8d72359f netlink_ack +EXPORT_SYMBOL vmlinux 0x8d834979 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x8d897285 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8d98e809 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x8da7f677 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x8da98dcc idr_remove_all +EXPORT_SYMBOL vmlinux 0x8dade944 locks_init_lock +EXPORT_SYMBOL vmlinux 0x8dbac33d tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x8dc6e564 restore_processor_state +EXPORT_SYMBOL vmlinux 0x8debf74c kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x8defb158 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x8dfa1f95 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0302b2 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e1bac16 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x8e46a2d7 scsi_remove_target +EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq +EXPORT_SYMBOL vmlinux 0x8e888ec3 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x8e8bac50 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x8eaf019c tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8ec86637 dm_put_device +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8f2371ba percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f39c861 register_sysrq_key +EXPORT_SYMBOL vmlinux 0x8f47c695 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f60ace1 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f849406 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x8f93787f __inet6_hash +EXPORT_SYMBOL vmlinux 0x8f98adb5 kunmap +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8f9ce5f8 scsi_add_device +EXPORT_SYMBOL vmlinux 0x8ff4079b pv_irq_ops +EXPORT_SYMBOL vmlinux 0x8ff62306 dm_io_client_create +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x901222c5 register_netdevice +EXPORT_SYMBOL vmlinux 0x9021b097 del_timer_sync +EXPORT_SYMBOL vmlinux 0x902789fa napi_skb_finish +EXPORT_SYMBOL vmlinux 0x903732a3 __scm_send +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 0x904e3b03 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x905ea180 soft_cursor +EXPORT_SYMBOL vmlinux 0x905f0443 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x90721e10 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system +EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active +EXPORT_SYMBOL vmlinux 0x90ab22c2 dm_get_device +EXPORT_SYMBOL vmlinux 0x90b0ea7c inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x90b51d6c schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x90c2497b skb_tx_hash +EXPORT_SYMBOL vmlinux 0x90eafefd sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x90f2995a get_fs_type +EXPORT_SYMBOL vmlinux 0x9102938f seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x910eb490 dm_exception_store_type_register +EXPORT_SYMBOL vmlinux 0x911a0ef7 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x9122ba97 bdput +EXPORT_SYMBOL vmlinux 0x913ece65 freeze_super +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 0x919e0954 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool +EXPORT_SYMBOL vmlinux 0x9238c53d netlink_unicast +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x92897e3d default_idle +EXPORT_SYMBOL vmlinux 0x92a7d6e5 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x92e48b26 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x93000bec blk_end_request_all +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9316987d dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x931dad1d set_pages_array_wc +EXPORT_SYMBOL vmlinux 0x93426b2c dm_dirty_log_type_unregister +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x936285f2 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x938a6c5c mmc_release_host +EXPORT_SYMBOL vmlinux 0x938ba6e6 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x939be7c1 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x93a2b695 seq_open +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93c6be8b path_is_under +EXPORT_SYMBOL vmlinux 0x93d7028e free_task +EXPORT_SYMBOL vmlinux 0x93f5b14d ip_dev_find +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 0x943bb27e kick_iocb +EXPORT_SYMBOL vmlinux 0x9445cad4 mca_device_status +EXPORT_SYMBOL vmlinux 0x948480b6 dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94b541b5 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x94bc31d9 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x94c3d28c kernel_getsockname +EXPORT_SYMBOL vmlinux 0x94d31752 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94d6f359 dst_alloc +EXPORT_SYMBOL vmlinux 0x94e678d5 fd_install +EXPORT_SYMBOL vmlinux 0x94e872c7 page_address +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 0x95ae9d73 abort_creds +EXPORT_SYMBOL vmlinux 0x95b243a5 neigh_update +EXPORT_SYMBOL vmlinux 0x95b57186 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x95f638d5 posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x96021559 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x9602dcd5 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x960e2d08 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x960f0d56 padata_stop +EXPORT_SYMBOL vmlinux 0x962fc1de __ht_create_irq +EXPORT_SYMBOL vmlinux 0x96376176 isapnp_protocol +EXPORT_SYMBOL vmlinux 0x9652aefb dentry_unhash +EXPORT_SYMBOL vmlinux 0x9659a5d8 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x968eb2ef pci_choose_state +EXPORT_SYMBOL vmlinux 0x968ebfa4 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x96bcbde0 scsi_get_command +EXPORT_SYMBOL vmlinux 0x96c23ffb mca_device_set_claim +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96dbb2a6 request_key_async +EXPORT_SYMBOL vmlinux 0x9707c4d2 netlink_dump_start +EXPORT_SYMBOL vmlinux 0x9707fbb4 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x975c56cb kunmap_high +EXPORT_SYMBOL vmlinux 0x978752cd tcp_make_synack +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 0x97dedbc6 nf_reinject +EXPORT_SYMBOL vmlinux 0x98203dec security_path_chown +EXPORT_SYMBOL vmlinux 0x9828a7ce i8042_install_filter +EXPORT_SYMBOL vmlinux 0x9842cdf9 thaw_super +EXPORT_SYMBOL vmlinux 0x9858227f padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x985a8c00 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x985cbf9c blk_end_request +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x9888cd08 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init +EXPORT_SYMBOL vmlinux 0x98c2cbba nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x98c61f86 simple_write_end +EXPORT_SYMBOL vmlinux 0x98dc2d76 input_set_keycode_big +EXPORT_SYMBOL vmlinux 0x98fcd1f4 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x98ffddad sk_dst_check +EXPORT_SYMBOL vmlinux 0x9905064b flush_delayed_work +EXPORT_SYMBOL vmlinux 0x99052a84 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x99281827 netdev_set_master +EXPORT_SYMBOL vmlinux 0x9928ad02 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x99299bca jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x996e8501 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x997f6d24 block_read_full_page +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x9996c949 read_cache_page_async +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 0x9a16db2e mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1f476c jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x9a480159 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x9a5864d4 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x9a608056 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x9a6a83f9 cmos_lock +EXPORT_SYMBOL vmlinux 0x9a6e7dd7 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x9a786a12 serio_rescan +EXPORT_SYMBOL vmlinux 0x9a7acaf0 md_register_thread +EXPORT_SYMBOL vmlinux 0x9ad49f58 pci_release_region +EXPORT_SYMBOL vmlinux 0x9add6ef8 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x9ae9967b eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x9aeca22f set_pages_wb +EXPORT_SYMBOL vmlinux 0x9b2e18e0 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b59d94c vfs_mkdir +EXPORT_SYMBOL vmlinux 0x9b62129b ida_get_new +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bcab86b skb_put +EXPORT_SYMBOL vmlinux 0x9bcf0590 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +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 0x9c6886a0 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt +EXPORT_SYMBOL vmlinux 0x9c937096 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x9cb14b8a scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +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 0x9d0fa623 skb_trim +EXPORT_SYMBOL vmlinux 0x9d0fb67d cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x9d20db36 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x9d2572bb file_fsync +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d3e9195 revert_creds +EXPORT_SYMBOL vmlinux 0x9d5e5554 fget +EXPORT_SYMBOL vmlinux 0x9d7a8b0e netpoll_setup +EXPORT_SYMBOL vmlinux 0x9d7dc6b6 dcache_readdir +EXPORT_SYMBOL vmlinux 0x9d8ba1ce cont_write_begin +EXPORT_SYMBOL vmlinux 0x9d8fe749 __task_pid_nr_ns +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 0x9dee7bc2 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x9df9a9e4 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x9e01871b unregister_snap_client +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e41a897 simple_setattr +EXPORT_SYMBOL vmlinux 0x9e4b3747 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x9e528f3e tty_port_put +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e8cf46c security_file_permission +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9ea77127 copy_io_context +EXPORT_SYMBOL vmlinux 0x9eaff352 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x9eb4dbab tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ec420a6 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x9ed0fee6 bio_free +EXPORT_SYMBOL vmlinux 0x9ed249db blkdev_get +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 0x9effb5c4 bmap +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f20f75b security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool +EXPORT_SYMBOL vmlinux 0x9f2d8984 do_splice_from +EXPORT_SYMBOL vmlinux 0x9f412818 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f471843 mntput_no_expire +EXPORT_SYMBOL vmlinux 0x9f4a2bd1 set_pages_x +EXPORT_SYMBOL vmlinux 0x9f78dfa2 dm_dirty_log_create +EXPORT_SYMBOL vmlinux 0x9f8eb208 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x9f92efc4 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f9bc6fa sync_inode +EXPORT_SYMBOL vmlinux 0x9f9fd6d2 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x9fa83406 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fc5fa7e generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x9fd4556d sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x9fd8a3aa napi_gro_frags +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe3eb96 pci_map_rom +EXPORT_SYMBOL vmlinux 0x9ffe98c1 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xa002df53 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0xa00f8796 uart_add_one_port +EXPORT_SYMBOL vmlinux 0xa016bba7 kthread_stop +EXPORT_SYMBOL vmlinux 0xa02d19f6 scsi_dma_map +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa041c0ba ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa04a975d bdev_read_only +EXPORT_SYMBOL vmlinux 0xa04e4b3d phy_start_aneg +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa061e893 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xa0726adb wake_up_process +EXPORT_SYMBOL vmlinux 0xa0a41a27 rtc_lock +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa10129ea _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa1315243 pneigh_lookup +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa146e4dc pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xa14d6ed7 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xa14f0d18 devm_ioport_map +EXPORT_SYMBOL vmlinux 0xa167e761 sock_rfree +EXPORT_SYMBOL vmlinux 0xa17af934 mdiobus_register +EXPORT_SYMBOL vmlinux 0xa19e7c99 security_file_mmap +EXPORT_SYMBOL vmlinux 0xa1a0bbe1 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xa1a25c68 take_over_console +EXPORT_SYMBOL vmlinux 0xa1a58ae3 vga_tryget +EXPORT_SYMBOL vmlinux 0xa1a78823 down_read_trylock +EXPORT_SYMBOL vmlinux 0xa1b4ba9e tty_free_termios +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba18db posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1cc76c3 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xa1e42dcd flush_old_exec +EXPORT_SYMBOL vmlinux 0xa1f195e7 inet_recvmsg +EXPORT_SYMBOL vmlinux 0xa1fce784 journal_extend +EXPORT_SYMBOL vmlinux 0xa206c6ab ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa2161a10 security_path_symlink +EXPORT_SYMBOL vmlinux 0xa234ba1a nf_unregister_hook +EXPORT_SYMBOL vmlinux 0xa25ca1d2 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xa25d0884 lock_fb_info +EXPORT_SYMBOL vmlinux 0xa26d38f8 dev_addr_del +EXPORT_SYMBOL vmlinux 0xa29f9367 blkdev_fsync +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2c413a5 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xa2c7a74f kernel_bind +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 0xa2f6b0f6 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xa32874d5 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa33cb71a __bforget +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa371b894 tcp_close +EXPORT_SYMBOL vmlinux 0xa3845c67 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0xa38497cb current_fs_time +EXPORT_SYMBOL vmlinux 0xa3979e7e __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xa3cc7b41 security_inode_permission +EXPORT_SYMBOL vmlinux 0xa3ecace7 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0xa4005f59 noop_qdisc +EXPORT_SYMBOL vmlinux 0xa41a6022 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xa431a045 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa456b06c simple_pin_fs +EXPORT_SYMBOL vmlinux 0xa45e674f tty_set_operations +EXPORT_SYMBOL vmlinux 0xa45ea973 dev_change_flags +EXPORT_SYMBOL vmlinux 0xa465d662 find_or_create_page +EXPORT_SYMBOL vmlinux 0xa46cc205 pnp_get_resource +EXPORT_SYMBOL vmlinux 0xa478ad65 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0xa487a29b pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0xa49944de blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0xa4b3112a ftrace_event_seq +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4c3bbda cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0xa4ea0990 tc_classify_compat +EXPORT_SYMBOL vmlinux 0xa51c3650 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xa51cdfe8 __FIXADDR_TOP +EXPORT_SYMBOL vmlinux 0xa53c9c09 dma_ops +EXPORT_SYMBOL vmlinux 0xa54dcb69 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xa566d2b2 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5aa98a4 d_add_ci +EXPORT_SYMBOL vmlinux 0xa5c23375 mdiobus_free +EXPORT_SYMBOL vmlinux 0xa5ca8522 free_netdev +EXPORT_SYMBOL vmlinux 0xa5da0abd acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0xa60b6a84 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xa60ff2c9 kunmap_atomic +EXPORT_SYMBOL vmlinux 0xa624209d journal_force_commit +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa667460e mpage_writepages +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 0xa6dbd26b sock_sendmsg +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6ebab17 vfs_readdir +EXPORT_SYMBOL vmlinux 0xa700ad92 scsi_scan_host +EXPORT_SYMBOL vmlinux 0xa7046549 vprintk +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa71e7463 __first_cpu +EXPORT_SYMBOL vmlinux 0xa7576ad6 __free_pages +EXPORT_SYMBOL vmlinux 0xa7731b25 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xa77d0f67 audit_log_format +EXPORT_SYMBOL vmlinux 0xa7877c22 skb_gso_segment +EXPORT_SYMBOL vmlinux 0xa791bbb2 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0xa7b33ed1 dquot_disable +EXPORT_SYMBOL vmlinux 0xa7b451d8 destroy_EII_client +EXPORT_SYMBOL vmlinux 0xa8035925 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xa8063a28 mmc_add_host +EXPORT_SYMBOL vmlinux 0xa83ee8e3 fsync_bdev +EXPORT_SYMBOL vmlinux 0xa87a4da6 dev_uc_sync +EXPORT_SYMBOL vmlinux 0xa8843ae1 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xa88d76c9 pnp_is_active +EXPORT_SYMBOL vmlinux 0xa898aaa9 scsi_remove_device +EXPORT_SYMBOL vmlinux 0xa89e43f6 pci_target_state +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +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 0xa90f3d5a inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa92fff2c generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0xa9370801 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xa95d61e3 arp_send +EXPORT_SYMBOL vmlinux 0xa98bef4e kmap +EXPORT_SYMBOL vmlinux 0xa99a1af6 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xa9b715e3 generic_file_llseek_unlocked +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 0xaa5d5781 scsi_bios_ptable +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 0xaa8fea18 acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0xaaab8067 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xaab0ab11 ip6_frag_init +EXPORT_SYMBOL vmlinux 0xaabc73aa tty_unthrottle +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 0xaafdc258 strcasecmp +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 0xab7a4622 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xab8832e6 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xab9d2b9a page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xaba259f1 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xaba6cc4e kern_path +EXPORT_SYMBOL vmlinux 0xabae90b2 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0xabd01332 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabdc3ce4 bioset_integrity_create +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 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac59092f serio_reconnect +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 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xace4a4e1 i2c_master_recv +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacf5988d cap_file_mmap +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad06b095 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad1b9927 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xad2df335 neigh_seq_next +EXPORT_SYMBOL vmlinux 0xad3c8f56 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xad414a49 generic_file_fsync +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad87f08d security_d_instantiate +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 0xade90bb1 flush_signals +EXPORT_SYMBOL vmlinux 0xadf2200a pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xadff3d6d genl_register_ops +EXPORT_SYMBOL vmlinux 0xae3d0f88 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xae5fee4c generic_read_dir +EXPORT_SYMBOL vmlinux 0xae8acf51 percpu_counter_set +EXPORT_SYMBOL vmlinux 0xae8cbe81 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0xae92491f blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xaea775cd security_path_rmdir +EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xaeb12845 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xaec2b6ae devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaef272aa sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xaf3c2ffa path_lookup +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +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 0xaf664dcc blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xaf832938 journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xafc7f702 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0xafda0c0d dump_trace +EXPORT_SYMBOL vmlinux 0xafe33502 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xb00ccc33 finish_wait +EXPORT_SYMBOL vmlinux 0xb00ef737 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xb0151d5f neigh_table_init +EXPORT_SYMBOL vmlinux 0xb027f40d input_free_device +EXPORT_SYMBOL vmlinux 0xb0296db7 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xb0405db0 journal_set_features +EXPORT_SYMBOL vmlinux 0xb056b366 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xb06dc5e3 skb_free_datagram +EXPORT_SYMBOL vmlinux 0xb077ef32 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xb07dfb3d acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0xb07fe53c skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xb0a122db pci_unmap_rom +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0c29b31 skb_find_text +EXPORT_SYMBOL vmlinux 0xb0c3e885 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xb0d4d341 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0e745fb ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0xb0fd52f6 sk_common_release +EXPORT_SYMBOL vmlinux 0xb10ec686 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xb11a9019 md_integrity_register +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb1406821 get_write_access +EXPORT_SYMBOL vmlinux 0xb147b755 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0xb14c3480 ppp_unregister_compressor +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 0xb1b38db8 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1d057f7 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xb1f89a60 __wake_up_bit +EXPORT_SYMBOL vmlinux 0xb1fc89ad xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xb203d750 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xb21715f0 ilookup5 +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +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 0xb230fd25 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xb25a95e5 blk_complete_request +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb27e13bc input_inject_event +EXPORT_SYMBOL vmlinux 0xb29a827b md_wakeup_thread +EXPORT_SYMBOL vmlinux 0xb2efb6be mca_read_stored_pos +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 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb36c6b65 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xb36f6840 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xb374de91 cdrom_release +EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xb3819110 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xb39b256b md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0xb39f38e7 mca_device_set_name +EXPORT_SYMBOL vmlinux 0xb3a302ff scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3c7a61e aio_complete +EXPORT_SYMBOL vmlinux 0xb3e0590d acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0xb3f285ff tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xb40d535c llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb4263372 skb_store_bits +EXPORT_SYMBOL vmlinux 0xb429410a posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb45578b8 memscan +EXPORT_SYMBOL vmlinux 0xb45b24f6 k8_nb_ids +EXPORT_SYMBOL vmlinux 0xb45de622 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xb4695e05 dev_disable_lro +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4aa9720 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xb4ac8d06 pipe_lock +EXPORT_SYMBOL vmlinux 0xb4c41da2 kmap_high +EXPORT_SYMBOL vmlinux 0xb4fe6a59 dquot_scan_active +EXPORT_SYMBOL vmlinux 0xb501254f xrlim_allow +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb5267835 kset_unregister +EXPORT_SYMBOL vmlinux 0xb53992c4 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb55c987d input_allocate_device +EXPORT_SYMBOL vmlinux 0xb58a969d vga_get +EXPORT_SYMBOL vmlinux 0xb58f6705 unregister_filesystem +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5b83790 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction +EXPORT_SYMBOL vmlinux 0xb5db0c16 vfs_write +EXPORT_SYMBOL vmlinux 0xb5fbd6e5 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xb607a30c journal_revoke +EXPORT_SYMBOL vmlinux 0xb619a73d skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb6292a69 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0xb62a0235 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0xb651a9c5 register_nls +EXPORT_SYMBOL vmlinux 0xb65a1f33 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0xb65b4932 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xb674cda0 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb69a7379 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6ba3048 install_exec_creds +EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6ed1e53 strncpy +EXPORT_SYMBOL vmlinux 0xb6f75773 set_pages_array_uc +EXPORT_SYMBOL vmlinux 0xb6fad23b delayed_slow_work_enqueue +EXPORT_SYMBOL vmlinux 0xb7216b97 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0xb72397d5 printk +EXPORT_SYMBOL vmlinux 0xb73a459e ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb773a83d xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xb7908e72 pci_bus_type +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7bf6644 pci_pme_active +EXPORT_SYMBOL vmlinux 0xb7c18040 send_sig +EXPORT_SYMBOL vmlinux 0xb7e54587 follow_pfn +EXPORT_SYMBOL vmlinux 0xb82d97ac release_firmware +EXPORT_SYMBOL vmlinux 0xb8421e57 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat +EXPORT_SYMBOL vmlinux 0xb85eb520 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xb85f3bbe pv_lock_ops +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb8728303 __bread +EXPORT_SYMBOL vmlinux 0xb87336f2 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xb876a064 pipe_to_file +EXPORT_SYMBOL vmlinux 0xb887765f xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb89e62ec remove_wait_queue +EXPORT_SYMBOL vmlinux 0xb8a6e122 sock_no_accept +EXPORT_SYMBOL vmlinux 0xb8b5ec08 sk_wait_data +EXPORT_SYMBOL vmlinux 0xb8bab504 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xb8c5269f get_super +EXPORT_SYMBOL vmlinux 0xb8c6ffeb mutex_lock +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb8fc1ab6 inetdev_by_index +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb9135605 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xb9225aca init_task +EXPORT_SYMBOL vmlinux 0xb93a705b filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xb942b513 smp_call_function_many +EXPORT_SYMBOL vmlinux 0xb944052d bio_sector_offset +EXPORT_SYMBOL vmlinux 0xb94fd5fa freeze_bdev +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb99d7b6f tcp_prot +EXPORT_SYMBOL vmlinux 0xb9c439c2 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xb9dd7edf generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xb9ee4b5f down_killable +EXPORT_SYMBOL vmlinux 0xb9fc8833 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xba01a008 netif_notify_peers +EXPORT_SYMBOL vmlinux 0xba1dda7a kill_pgrp +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba3cc386 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba5c73f7 elv_rb_add +EXPORT_SYMBOL vmlinux 0xba886bff d_alloc_name +EXPORT_SYMBOL vmlinux 0xba8a5b78 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbaacaff6 seq_write +EXPORT_SYMBOL vmlinux 0xbab40e3a tcf_em_tree_destroy +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 0xbaebd0b7 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xbb0ae3dc create_mnt_ns +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb17727e md_write_end +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb611274 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xbb719556 save_mount_options +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbd11660 acpi_device_hid +EXPORT_SYMBOL vmlinux 0xbbd9df65 do_SAK +EXPORT_SYMBOL vmlinux 0xbbf1bb59 acpi_get_hp_hw_control_from_firmware +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 0xbc33a37e scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xbc44dd47 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0xbc66733a ip_getsockopt +EXPORT_SYMBOL vmlinux 0xbc9c9f93 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0xbcb76a51 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcc62ece ppp_register_compressor +EXPORT_SYMBOL vmlinux 0xbcd8176a dev_add_pack +EXPORT_SYMBOL vmlinux 0xbcefb567 dma_pool_create +EXPORT_SYMBOL vmlinux 0xbd33270a gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xbd41529f scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xbd483e1c generic_removexattr +EXPORT_SYMBOL vmlinux 0xbd702430 pci_set_master +EXPORT_SYMBOL vmlinux 0xbd7a1755 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xbd84bbfa scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xbda28bae dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xbdb20b71 nf_register_hooks +EXPORT_SYMBOL vmlinux 0xbdcdb110 max8925_reg_write +EXPORT_SYMBOL vmlinux 0xbddcc4d9 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xbdebb6f3 idr_find +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe0d6628 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe168636 update_region +EXPORT_SYMBOL vmlinux 0xbe359542 mempool_create_node +EXPORT_SYMBOL vmlinux 0xbe3964cc block_invalidatepage +EXPORT_SYMBOL vmlinux 0xbe5b3802 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0xbebcdc0e bh_submit_read +EXPORT_SYMBOL vmlinux 0xbed2a05a call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf0c5c43 register_console +EXPORT_SYMBOL vmlinux 0xbf2c6909 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xbf3a43d3 kernel_accept +EXPORT_SYMBOL vmlinux 0xbf3bc4dd inet_release +EXPORT_SYMBOL vmlinux 0xbf4a63f6 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xbf72b72a jbd2_journal_init_inode +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 0xbfb18e07 spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0xbfb247fc seq_path +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfe0a456 __register_binfmt +EXPORT_SYMBOL vmlinux 0xbfe44c1e get_sb_ns +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +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 0xc028481e read_dev_sector +EXPORT_SYMBOL vmlinux 0xc049fbaf ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0xc04e079f pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +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 0xc0d4d900 spi_attach_transport +EXPORT_SYMBOL vmlinux 0xc0f65988 machine_real_restart +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc120065d nf_hook_slow +EXPORT_SYMBOL vmlinux 0xc12f8bf7 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xc138ef90 kmap_atomic +EXPORT_SYMBOL vmlinux 0xc1406759 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xc15a916a ip6_frag_match +EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic +EXPORT_SYMBOL vmlinux 0xc17abdf1 tty_port_init +EXPORT_SYMBOL vmlinux 0xc18b591c neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xc191c08b blk_put_request +EXPORT_SYMBOL vmlinux 0xc19634b2 vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0xc1abebe7 x86_hyper +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1d2c7b9 sync_blockdev +EXPORT_SYMBOL vmlinux 0xc1ed01e6 acpi_bus_add +EXPORT_SYMBOL vmlinux 0xc218578b qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xc241a220 jbd2_journal_abort +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 0xc2b1211c blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2d91b65 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc31ea431 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xc334e18f __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu +EXPORT_SYMBOL vmlinux 0xc369e4be __kfree_skb +EXPORT_SYMBOL vmlinux 0xc36e1f85 __serio_register_port +EXPORT_SYMBOL vmlinux 0xc377bc82 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xc38d9c7a down_timeout +EXPORT_SYMBOL vmlinux 0xc39f2e9b dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3d1b78f blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0xc3e1aba9 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xc3fa6a59 memchr +EXPORT_SYMBOL vmlinux 0xc3fa7b32 iput +EXPORT_SYMBOL vmlinux 0xc4029f6a seq_lseek +EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier +EXPORT_SYMBOL vmlinux 0xc42d4413 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xc4352367 inode_setattr +EXPORT_SYMBOL vmlinux 0xc435b5a1 __dquot_transfer +EXPORT_SYMBOL vmlinux 0xc4476d26 uart_suspend_port +EXPORT_SYMBOL vmlinux 0xc447a7a5 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0xc4718fc7 mapping_tagged +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc49a9ea7 udp_ioctl +EXPORT_SYMBOL vmlinux 0xc49bc862 register_qdisc +EXPORT_SYMBOL vmlinux 0xc4a71e6c load_nls_default +EXPORT_SYMBOL vmlinux 0xc4ac5dea pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xc4b40638 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xc4bb7aab scm_fp_dup +EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic +EXPORT_SYMBOL vmlinux 0xc4e5e02c thermal_zone_device_unregister +EXPORT_SYMBOL vmlinux 0xc4e86b6d netdev_features_change +EXPORT_SYMBOL vmlinux 0xc4ed3444 tcp_sendpage +EXPORT_SYMBOL vmlinux 0xc5067ad0 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +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 0xc5ab3eac sock_map_fd +EXPORT_SYMBOL vmlinux 0xc5adf785 sock_queue_rcv_skb +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 0xc5ee6b97 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xc5f5018d scsi_prep_return +EXPORT_SYMBOL vmlinux 0xc62ca72c security_path_unlink +EXPORT_SYMBOL vmlinux 0xc63c1cb8 tty_name +EXPORT_SYMBOL vmlinux 0xc63c8be6 dw_spi_suspend_host +EXPORT_SYMBOL vmlinux 0xc66f4139 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xc68adc12 tty_shutdown +EXPORT_SYMBOL vmlinux 0xc68d95c8 module_refcount +EXPORT_SYMBOL vmlinux 0xc6b27673 netlink_set_err +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc729c31f dm_table_get_md +EXPORT_SYMBOL vmlinux 0xc7417786 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0xc7675c8b jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xc768de19 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7a9e169 pci_get_device +EXPORT_SYMBOL vmlinux 0xc7c8ec31 acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0xc7cd9975 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc7ef584f inet_del_protocol +EXPORT_SYMBOL vmlinux 0xc7f10ae8 tcp_proc_register +EXPORT_SYMBOL vmlinux 0xc7f42d31 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xc7fa39ff alloc_tty_driver +EXPORT_SYMBOL vmlinux 0xc8033012 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc81f5a3c mmc_request_done +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc8592d11 neigh_seq_stop +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 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8f36fba nla_append +EXPORT_SYMBOL vmlinux 0xc918e512 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xc95a0e97 unregister_8022_client +EXPORT_SYMBOL vmlinux 0xc9710835 alloc_file +EXPORT_SYMBOL vmlinux 0xc982193b neigh_table_clear +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9dd74c4 do_munmap +EXPORT_SYMBOL vmlinux 0xc9e8b616 mmc_free_host +EXPORT_SYMBOL vmlinux 0xc9f46ef4 blk_init_queue +EXPORT_SYMBOL vmlinux 0xca37eb83 elv_queue_empty +EXPORT_SYMBOL vmlinux 0xca3f58a5 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca72755a aio_put_req +EXPORT_SYMBOL vmlinux 0xca7f2c6c boot_cpu_data +EXPORT_SYMBOL vmlinux 0xca8727e9 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca8c9b10 pid_task +EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel +EXPORT_SYMBOL vmlinux 0xcac4309c thermal_zone_bind_cooling_device +EXPORT_SYMBOL vmlinux 0xcad48441 register_filesystem +EXPORT_SYMBOL vmlinux 0xcad63d8d proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xcae16325 set_disk_ro +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 0xcb22ce82 invalidate_inodes +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 0xcbabdb42 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xcbb6a7ca ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xcbc5bbcf kill_pid +EXPORT_SYMBOL vmlinux 0xcbf550a9 put_tty_driver +EXPORT_SYMBOL vmlinux 0xcbfb9470 dquot_release +EXPORT_SYMBOL vmlinux 0xcc0e2ba5 acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc4d1fe5 qdisc_list_del +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc53f898 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xcc5b27b5 acpi_extract_package +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc81c85a scsi_print_sense +EXPORT_SYMBOL vmlinux 0xcc97f58e wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0xcca711d7 pci_write_vpd +EXPORT_SYMBOL vmlinux 0xccb2a3a1 open_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xcccd8f56 misc_register +EXPORT_SYMBOL vmlinux 0xccdcfdeb simple_readpage +EXPORT_SYMBOL vmlinux 0xcd3370ff fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0xcd40e564 do_sync_read +EXPORT_SYMBOL vmlinux 0xcd42748f generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xcd43e6ef xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xcd452646 dquot_operations +EXPORT_SYMBOL vmlinux 0xcd4b4c28 mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0xcd56c22d __put_cred +EXPORT_SYMBOL vmlinux 0xcd9b12d3 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xcda6cee7 skb_checksum_help +EXPORT_SYMBOL vmlinux 0xcdedc48a ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xcdfc8382 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0xcdfddedc nf_log_register +EXPORT_SYMBOL vmlinux 0xce03edbf bitmap_startwrite +EXPORT_SYMBOL vmlinux 0xce10ca7e devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xce146881 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce344ec4 scsi_print_command +EXPORT_SYMBOL vmlinux 0xce35ea65 setup_new_exec +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 0xce7b7122 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xce868bd5 pci_dev_driver +EXPORT_SYMBOL vmlinux 0xce86fa6f ppp_unit_number +EXPORT_SYMBOL vmlinux 0xcedf3406 registered_fb +EXPORT_SYMBOL vmlinux 0xceecfd70 mempool_free +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf0c0d4f inet6_bind +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 0xcf6262bd vfs_rmdir +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcf8f98bc seq_release +EXPORT_SYMBOL vmlinux 0xcf977b74 proc_create_data +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfcabdca tty_port_free_xmit_buf +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 0xcff2e175 lock_super +EXPORT_SYMBOL vmlinux 0xcffc2019 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xd013aaec generic_file_llseek +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd04419ff set_device_ro +EXPORT_SYMBOL vmlinux 0xd0469b08 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xd0635db8 genphy_update_link +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd09583ab is_container_init +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0d8621b strlen +EXPORT_SYMBOL vmlinux 0xd0df01a6 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0fa5f55 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd1781bec ipv4_specific +EXPORT_SYMBOL vmlinux 0xd189ca44 set_pages_array_wb +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd1d3cf2b default_file_splice_read +EXPORT_SYMBOL vmlinux 0xd1f4a595 dquot_initialize +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd1fa6028 slow_work_cancel +EXPORT_SYMBOL vmlinux 0xd22e01e4 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel +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 0xd26f1193 sock_no_getname +EXPORT_SYMBOL vmlinux 0xd27b22fa pnp_possible_config +EXPORT_SYMBOL vmlinux 0xd27d02dc pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match +EXPORT_SYMBOL vmlinux 0xd2afb365 __scsi_put_command +EXPORT_SYMBOL vmlinux 0xd2b4718d journal_ack_err +EXPORT_SYMBOL vmlinux 0xd2e6a582 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xd2e8afeb skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xd2faace1 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xd3084a09 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0xd30b3d85 init_net +EXPORT_SYMBOL vmlinux 0xd31df156 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xd337b902 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xd3453eaf pci_match_id +EXPORT_SYMBOL vmlinux 0xd3566446 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0xd3697a67 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xd383107d kobject_add +EXPORT_SYMBOL vmlinux 0xd38d5b01 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd3a37f93 nobh_write_begin +EXPORT_SYMBOL vmlinux 0xd3a6b6bd nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xd3a9fc37 del_gendisk +EXPORT_SYMBOL vmlinux 0xd3d5ff65 blk_execute_rq +EXPORT_SYMBOL vmlinux 0xd424c3c5 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xd42cf252 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xd4a27b2a rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xd4a7344c security_path_mkdir +EXPORT_SYMBOL vmlinux 0xd4a8d0d8 blk_register_region +EXPORT_SYMBOL vmlinux 0xd4bb8df9 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xd4d0ee3b kmem_cache_alloc_node_notrace +EXPORT_SYMBOL vmlinux 0xd4e4d9c9 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0xd50bb57b tcf_hash_create +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd51653ed simple_getattr +EXPORT_SYMBOL vmlinux 0xd5167af2 fsnotify_obtain_group +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd54b6320 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xd54c96c7 atomic64_add_unless_cx8 +EXPORT_SYMBOL vmlinux 0xd5544822 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0xd55b07c0 blk_init_tags +EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out +EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert +EXPORT_SYMBOL vmlinux 0xd56e5509 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xd5a02735 journal_release_buffer +EXPORT_SYMBOL vmlinux 0xd5a0da33 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xd5a795c1 dev_load +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5c53367 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xd5d4ab2b __breadahead +EXPORT_SYMBOL vmlinux 0xd5f73e7f dma_pool_free +EXPORT_SYMBOL vmlinux 0xd6072ed6 vfs_fsync +EXPORT_SYMBOL vmlinux 0xd6147ae2 up_read +EXPORT_SYMBOL vmlinux 0xd61dc016 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xd62974c1 ether_setup +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd6492286 dquot_quota_on_path +EXPORT_SYMBOL vmlinux 0xd6a6d12e key_link +EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xd6b10a57 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6c75408 kmem_cache_size +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd7150a4d _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xd747584e nobh_writepage +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7a0dc67 security_path_rename +EXPORT_SYMBOL vmlinux 0xd7cd7606 unregister_qdisc +EXPORT_SYMBOL vmlinux 0xd7d0c645 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0xd7d66cd7 simple_setsize +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7f36812 otg_get_transceiver +EXPORT_SYMBOL vmlinux 0xd80dbfce bio_endio +EXPORT_SYMBOL vmlinux 0xd83c2093 alloc_trdev +EXPORT_SYMBOL vmlinux 0xd8477ccb pskb_copy +EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user +EXPORT_SYMBOL vmlinux 0xd85ba9fa request_key +EXPORT_SYMBOL vmlinux 0xd89298b4 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd9571fe5 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xd957536d xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd98dcb41 dm_snap_cow +EXPORT_SYMBOL vmlinux 0xd9bd9f9d inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xd9c272aa mca_mark_as_unused +EXPORT_SYMBOL vmlinux 0xd9e1cc87 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xd9eefdf3 __dst_free +EXPORT_SYMBOL vmlinux 0xd9fe816d tcp_parse_options +EXPORT_SYMBOL vmlinux 0xda08c0d7 pcibios_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xda0974fb arp_broken_ops +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda2a9777 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xda511860 fb_show_logo +EXPORT_SYMBOL vmlinux 0xda5661a3 add_wait_queue +EXPORT_SYMBOL vmlinux 0xda5b5c54 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0xda7589e9 padata_start +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda81769a sock_i_ino +EXPORT_SYMBOL vmlinux 0xda81dc29 uart_write_wakeup +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 0xdaa6fb7f dev_alloc_name +EXPORT_SYMBOL vmlinux 0xdad4f008 mdiobus_scan +EXPORT_SYMBOL vmlinux 0xdae084e5 spi_release_transport +EXPORT_SYMBOL vmlinux 0xdb071dc9 sock_wfree +EXPORT_SYMBOL vmlinux 0xdb0d2067 block_write_begin +EXPORT_SYMBOL vmlinux 0xdb33da37 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdba4c45a lock_sock_fast +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbe08d7f input_mt_create_slots +EXPORT_SYMBOL vmlinux 0xdbe16d68 writeback_inodes_sb_if_idle +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 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc2f8897 security_inode_readlink +EXPORT_SYMBOL vmlinux 0xdc3c5fe2 neigh_compat_output +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc4ff41d ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xdc6ae43e splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0xdc985f09 override_creds +EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family +EXPORT_SYMBOL vmlinux 0xdca0ed4e gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xdcb20c5f tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xdcba7002 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xdce251a7 mpage_writepage +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd300dd5 simple_rename +EXPORT_SYMBOL vmlinux 0xdd343dcc generic_setattr +EXPORT_SYMBOL vmlinux 0xdd350f9a tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xdd4afa6e blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xdd605d03 vfs_mknod +EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xdd70fc73 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xdd877b28 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xdda9a4b3 init_buffer +EXPORT_SYMBOL vmlinux 0xddbc0690 generic_getxattr +EXPORT_SYMBOL vmlinux 0xddd368bc sk_run_filter +EXPORT_SYMBOL vmlinux 0xddf91613 netif_rx_ni +EXPORT_SYMBOL vmlinux 0xde191539 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xde1f9ea5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xde27ad62 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xde3c1971 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xde3d9153 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xde472d70 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xde629395 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xdedbcaab scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0xdeee8b96 dcache_lock +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +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 0xdf65271e dquot_quota_off +EXPORT_SYMBOL vmlinux 0xdf6aefef neigh_seq_start +EXPORT_SYMBOL vmlinux 0xdf859ec1 mmc_remove_host +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfa20bb4 unlock_new_inode +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfe34ca9 __nla_reserve +EXPORT_SYMBOL vmlinux 0xdff263c1 sockfd_lookup +EXPORT_SYMBOL vmlinux 0xdffc6811 kmem_cache_alloc_notrace +EXPORT_SYMBOL vmlinux 0xe0070c33 remap_pfn_range +EXPORT_SYMBOL vmlinux 0xe03d928c blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +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 0xe0c7eea8 sock_create +EXPORT_SYMBOL vmlinux 0xe0eecdfc tcp_connect +EXPORT_SYMBOL vmlinux 0xe100f362 kobject_init +EXPORT_SYMBOL vmlinux 0xe12bd527 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe13ffa94 softnet_data +EXPORT_SYMBOL vmlinux 0xe15cd5fc put_io_context +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1990d81 kernel_read +EXPORT_SYMBOL vmlinux 0xe1d03bab max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xe1e0d040 hippi_type_trans +EXPORT_SYMBOL vmlinux 0xe1f762d0 proc_mkdir +EXPORT_SYMBOL vmlinux 0xe230faa6 generic_delete_inode +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe279740e udplite_prot +EXPORT_SYMBOL vmlinux 0xe287a088 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xe2ce78bf elevator_exit +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2d68e6b xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2e866fb fb_set_cmap +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe3292aba alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xe32bf220 __page_symlink +EXPORT_SYMBOL vmlinux 0xe336d95f eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xe33ee0cc skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0xe38a0ba3 generic_show_options +EXPORT_SYMBOL vmlinux 0xe3c6079e atomic64_set_cx8 +EXPORT_SYMBOL vmlinux 0xe3c73223 tcp_child_process +EXPORT_SYMBOL vmlinux 0xe3d9f05d qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xe3e3115d dev_get_flags +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 0xe3fe1ec0 __blockdev_direct_IO_newtrunc +EXPORT_SYMBOL vmlinux 0xe4122203 follow_up +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe43f9377 file_update_time +EXPORT_SYMBOL vmlinux 0xe456d99a __init_rwsem +EXPORT_SYMBOL vmlinux 0xe46843b4 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe495482f pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xe49e2fb0 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xe4a25391 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xe4af0c60 handle_sysrq +EXPORT_SYMBOL vmlinux 0xe4cda99f journal_errno +EXPORT_SYMBOL vmlinux 0xe4e5e6cd input_unregister_handle +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 0xe53da2fb journal_check_used_features +EXPORT_SYMBOL vmlinux 0xe548e474 pnpbios_protocol +EXPORT_SYMBOL vmlinux 0xe55e144a proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5b10d5e generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe6060dc3 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xe60753fc inet_select_addr +EXPORT_SYMBOL vmlinux 0xe61b8f05 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xe62875a6 insert_inode_locked +EXPORT_SYMBOL vmlinux 0xe644ea27 generic_write_sync +EXPORT_SYMBOL vmlinux 0xe64a6794 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xe6540d12 input_register_device +EXPORT_SYMBOL vmlinux 0xe6639666 datagram_poll +EXPORT_SYMBOL vmlinux 0xe665d297 bdi_init +EXPORT_SYMBOL vmlinux 0xe66c505e sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xe68e9ca0 find_get_page +EXPORT_SYMBOL vmlinux 0xe690b8fd __ipv6_isatap_ifid +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6adc5f2 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xe6b10d0e bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xe6b8f685 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0xe6bd4ed3 blkdev_put +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 0xe7317674 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0xe74cf0a7 mempool_destroy +EXPORT_SYMBOL vmlinux 0xe799f502 dev_mc_del +EXPORT_SYMBOL vmlinux 0xe7a15a49 inet6_release +EXPORT_SYMBOL vmlinux 0xe7a28840 inet_add_protocol +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 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe82fe088 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xe83270a0 pci_select_bars +EXPORT_SYMBOL vmlinux 0xe851a162 find_lock_page +EXPORT_SYMBOL vmlinux 0xe867d9b4 d_genocide +EXPORT_SYMBOL vmlinux 0xe874f70a uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe886e67c poll_freewait +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 0xe8eb1a0c nf_log_bind_pf +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 0xe92f3573 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xe930439f mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0xe9872c27 simple_write_begin +EXPORT_SYMBOL vmlinux 0xe98dd999 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe9b1fa2c seq_open_private +EXPORT_SYMBOL vmlinux 0xe9d0f49e ps2_handle_response +EXPORT_SYMBOL vmlinux 0xe9e09dd2 scsi_print_result +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea1678d7 lro_receive_skb +EXPORT_SYMBOL vmlinux 0xea2d33a2 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0xea337d7a inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xea54f987 ilookup +EXPORT_SYMBOL vmlinux 0xea5fb642 block_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0xea6196aa d_obtain_alias +EXPORT_SYMBOL vmlinux 0xea6c85fc inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xea94bd58 cdev_del +EXPORT_SYMBOL vmlinux 0xea9c10c1 dquot_alloc +EXPORT_SYMBOL vmlinux 0xea9d8c40 kmalloc_caches +EXPORT_SYMBOL vmlinux 0xea9f2b07 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xeaadf15d xfrm_lookup +EXPORT_SYMBOL vmlinux 0xeab8e8d0 key_task_permission +EXPORT_SYMBOL vmlinux 0xeabcce41 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xead7d32e i2c_master_send +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeaf3129a consume_skb +EXPORT_SYMBOL vmlinux 0xeb09686b scsi_execute_req +EXPORT_SYMBOL vmlinux 0xeb0d0464 lease_get_mtime +EXPORT_SYMBOL vmlinux 0xeb0e49a2 sock_i_uid +EXPORT_SYMBOL vmlinux 0xeb3cda25 scsi_target_resume +EXPORT_SYMBOL vmlinux 0xeb50f599 tcp_splice_read +EXPORT_SYMBOL vmlinux 0xeb71c214 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n +EXPORT_SYMBOL vmlinux 0xeb8b7fdb posix_lock_file +EXPORT_SYMBOL vmlinux 0xeba60d95 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull +EXPORT_SYMBOL vmlinux 0xebdf9ab6 mmc_resume_host +EXPORT_SYMBOL vmlinux 0xebffbc6f tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xec0c19f8 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xec0ea5ed uart_update_timeout +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec165c9c dev_set_drvdata +EXPORT_SYMBOL vmlinux 0xec1dd3d7 d_prune_aliases +EXPORT_SYMBOL vmlinux 0xec312e83 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xec44e1f3 rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec543901 napi_complete +EXPORT_SYMBOL vmlinux 0xec65e16e tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xec76ca9e generic_setxattr +EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0xec9efd6c tcf_action_exec +EXPORT_SYMBOL vmlinux 0xecbfaca1 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xeccf7af7 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xed15cecb keyring_clear +EXPORT_SYMBOL vmlinux 0xed29d56f idr_remove +EXPORT_SYMBOL vmlinux 0xed2dd37a xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xed3422d6 inode_init_once +EXPORT_SYMBOL vmlinux 0xed4385b8 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xed8c53ac _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xeda94467 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xedb00f93 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xedb3a132 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0xedb9e875 noop_llseek +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xede0a1b0 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee3af653 sock_no_listen +EXPORT_SYMBOL vmlinux 0xee3eacc7 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xee5870b5 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee8dbac7 __pci_register_driver +EXPORT_SYMBOL vmlinux 0xee8e76f6 tcp_shutdown +EXPORT_SYMBOL vmlinux 0xee986f42 cfb_imageblit +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb235d2 d_rehash +EXPORT_SYMBOL vmlinux 0xeec411b9 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0xeecc147d set_anon_super +EXPORT_SYMBOL vmlinux 0xeed23dbb blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0xeed7600a block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xef0f3589 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xef1bce2c elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xef1d35b7 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0xef306f64 log_wait_commit +EXPORT_SYMBOL vmlinux 0xef3af9a2 __napi_schedule +EXPORT_SYMBOL vmlinux 0xef3bd862 mca_find_unused_adapter +EXPORT_SYMBOL vmlinux 0xef498f2e tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0xef62e85f mempool_alloc +EXPORT_SYMBOL vmlinux 0xef68a413 sock_create_lite +EXPORT_SYMBOL vmlinux 0xef6eba41 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool +EXPORT_SYMBOL vmlinux 0xef77488d vm_insert_pfn +EXPORT_SYMBOL vmlinux 0xef805247 skb_set_dev +EXPORT_SYMBOL vmlinux 0xef87ba74 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0xef8fec08 sget +EXPORT_SYMBOL vmlinux 0xef9a4aad dev_set_mtu +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefa45f0d pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xefa5d6d2 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0xefad6afe ppp_input +EXPORT_SYMBOL vmlinux 0xefb123c0 tty_unregister_driver +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 0xefe48556 dm_table_get_size +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 0xf013a4f1 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xf019c9d8 kernel_listen +EXPORT_SYMBOL vmlinux 0xf0241f31 should_remove_suid +EXPORT_SYMBOL vmlinux 0xf02a03a5 km_query +EXPORT_SYMBOL vmlinux 0xf05a8426 security_path_chmod +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf0713fce ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xf08f59e8 md_unregister_thread +EXPORT_SYMBOL vmlinux 0xf09c7f68 __wake_up +EXPORT_SYMBOL vmlinux 0xf09d3f84 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0xf0a056f3 md_done_sync +EXPORT_SYMBOL vmlinux 0xf0b48e77 __brelse +EXPORT_SYMBOL vmlinux 0xf0c0b61f ps2_end_command +EXPORT_SYMBOL vmlinux 0xf0c16542 tcf_register_action +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 0xf1167946 task_nice +EXPORT_SYMBOL vmlinux 0xf1174d4d set_pages_uc +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf16157b4 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf17cd66c phy_start_interrupts +EXPORT_SYMBOL vmlinux 0xf18caf46 phy_device_create +EXPORT_SYMBOL vmlinux 0xf191b787 security_path_mknod +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +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 0xf226db1f inet_register_protosw +EXPORT_SYMBOL vmlinux 0xf22aeb11 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0xf2346abe generic_file_open +EXPORT_SYMBOL vmlinux 0xf2357254 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0xf2371713 dev_mc_flush +EXPORT_SYMBOL vmlinux 0xf23fd269 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xf25f1981 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0xf2933a01 block_commit_write +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2a0376e user_revoke +EXPORT_SYMBOL vmlinux 0xf2ae57aa netdev_bonding_change +EXPORT_SYMBOL vmlinux 0xf2b63182 pci_disable_device +EXPORT_SYMBOL vmlinux 0xf2cce559 complete_request_key +EXPORT_SYMBOL vmlinux 0xf2cd2bef dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xf2e74040 mca_set_adapter_name +EXPORT_SYMBOL vmlinux 0xf2f245cb __dquot_free_space +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf31e77ba dqget +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 0xf33f9526 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf35e2047 vfs_llseek +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 0xf3bb025d pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3ee28d0 posix_acl_permission +EXPORT_SYMBOL vmlinux 0xf3f86c18 phy_enable_interrupts +EXPORT_SYMBOL vmlinux 0xf41a8da7 blk_start_queue +EXPORT_SYMBOL vmlinux 0xf41c48a8 pcim_iomap +EXPORT_SYMBOL vmlinux 0xf427350f alloc_disk_node +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf46936be padata_do_serial +EXPORT_SYMBOL vmlinux 0xf481d4fc bdevname +EXPORT_SYMBOL vmlinux 0xf487b640 start_tty +EXPORT_SYMBOL vmlinux 0xf48a2c4c MCA_bus +EXPORT_SYMBOL vmlinux 0xf4934eff dm_register_target +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4b10b7a dst_discard +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4d5de0a kernel_connect +EXPORT_SYMBOL vmlinux 0xf4df7531 cdrom_open +EXPORT_SYMBOL vmlinux 0xf4ee476a scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f458ab netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xf4ff754a ida_init +EXPORT_SYMBOL vmlinux 0xf502d273 acpi_get_current_resources +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 0xf552250c dev_get_by_name +EXPORT_SYMBOL vmlinux 0xf5585829 filemap_fault +EXPORT_SYMBOL vmlinux 0xf55f3d53 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xf5975449 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0xf5b1788d scsi_ioctl +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c4c495 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +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 0xf5fdd4cc blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0xf5ff3a6b unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xf60789b2 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0xf609aa30 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0xf619fdd8 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xf6428502 inet6_getname +EXPORT_SYMBOL vmlinux 0xf65502a8 input_register_handler +EXPORT_SYMBOL vmlinux 0xf6569b9d cad_pid +EXPORT_SYMBOL vmlinux 0xf658fd51 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xf664b364 i2c_transfer +EXPORT_SYMBOL vmlinux 0xf67ee6a2 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xf681722f alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0xf69dc99e textsearch_prepare +EXPORT_SYMBOL vmlinux 0xf6a2497f i2c_release_client +EXPORT_SYMBOL vmlinux 0xf6b56021 may_umount +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6d4fe5f unregister_console +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf70d3c35 block_write_full_page +EXPORT_SYMBOL vmlinux 0xf712a24c scsi_execute +EXPORT_SYMBOL vmlinux 0xf71973b2 zero_fill_bio +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xf762eba2 thaw_bdev +EXPORT_SYMBOL vmlinux 0xf769c1c9 find_vma +EXPORT_SYMBOL vmlinux 0xf77fffec __invalidate_device +EXPORT_SYMBOL vmlinux 0xf78a6d74 skb_clone +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7916bcc sync_inodes_sb +EXPORT_SYMBOL vmlinux 0xf7b89589 get_sb_nodev +EXPORT_SYMBOL vmlinux 0xf7b905a8 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xf7cb6300 xfrm6_rcv_spi +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 0xf814e4bb tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xf8188ee2 I_BDEV +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf83b781a console_stop +EXPORT_SYMBOL vmlinux 0xf850b2df sg_miter_start +EXPORT_SYMBOL vmlinux 0xf858b627 phy_device_register +EXPORT_SYMBOL vmlinux 0xf8661c3e set_pages_nx +EXPORT_SYMBOL vmlinux 0xf87fdbb0 tcp_check_req +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf8a6fa86 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xf8af8a37 close_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xf8d8cc89 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xf8dad62a __serio_register_driver +EXPORT_SYMBOL vmlinux 0xf8e52fbf skb_pull +EXPORT_SYMBOL vmlinux 0xf8e5bd06 do_sync_write +EXPORT_SYMBOL vmlinux 0xf8f1a967 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0xf8fe5dd2 dev_remove_pack +EXPORT_SYMBOL vmlinux 0xf91957d3 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xf92ca10e i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xf93eb255 mmc_host_disable +EXPORT_SYMBOL vmlinux 0xf940a328 __next_cpu +EXPORT_SYMBOL vmlinux 0xf97c805e file_remove_suid +EXPORT_SYMBOL vmlinux 0xf986af2d tcp_tso_segment +EXPORT_SYMBOL vmlinux 0xf98c652f blk_make_request +EXPORT_SYMBOL vmlinux 0xf99f4482 generic_write_checks +EXPORT_SYMBOL vmlinux 0xf9a1c6f4 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9bb974c icmpv6_send +EXPORT_SYMBOL vmlinux 0xf9f11fb1 cdev_init +EXPORT_SYMBOL vmlinux 0xfa164c2a blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xfa3bfd69 vc_resize +EXPORT_SYMBOL vmlinux 0xfa49c0b5 remove_from_page_cache +EXPORT_SYMBOL vmlinux 0xfa4ae626 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xfa4ed5f0 journal_abort +EXPORT_SYMBOL vmlinux 0xfa699e6a __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0xfa7932d5 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xfaa5d2f6 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xfaace614 generic_block_bmap +EXPORT_SYMBOL vmlinux 0xfac9345b jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xfaccb352 textsearch_unregister +EXPORT_SYMBOL vmlinux 0xfad443c2 __lookup_one_len +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb06d579 iunique +EXPORT_SYMBOL vmlinux 0xfb0851b5 vfs_follow_link +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb1d0aeb sk_release_kernel +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb76c862 journal_update_format +EXPORT_SYMBOL vmlinux 0xfb79c864 simple_empty +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfb96f1d1 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0xfb9be76a set_page_dirty +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbd06e19 kthread_create +EXPORT_SYMBOL vmlinux 0xfbd34642 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc1ba5bd keyring_search +EXPORT_SYMBOL vmlinux 0xfc2e9fb9 dquot_resume +EXPORT_SYMBOL vmlinux 0xfc3239d0 set_bh_page +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 0xfc9d6e62 km_report +EXPORT_SYMBOL vmlinux 0xfca1ef2e serio_close +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcb6a145 __napi_complete +EXPORT_SYMBOL vmlinux 0xfcb7660a rfkill_set_states +EXPORT_SYMBOL vmlinux 0xfcbf8dee __break_lease +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcec5caf generic_make_request +EXPORT_SYMBOL vmlinux 0xfcf8227f simple_transaction_set +EXPORT_SYMBOL vmlinux 0xfcf8c575 blk_fetch_request +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd33a3d2 simple_transaction_get +EXPORT_SYMBOL vmlinux 0xfd37d13e icmp_send +EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xfd760177 blk_start_request +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe0b0436 nf_getsockopt +EXPORT_SYMBOL vmlinux 0xfe15e878 dev_trans_start +EXPORT_SYMBOL vmlinux 0xfe183c9e put_mnt_ns +EXPORT_SYMBOL vmlinux 0xfe1f6b14 simple_statfs +EXPORT_SYMBOL vmlinux 0xfe514c4c inet_listen +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe602278 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xfe62c946 uart_resume_port +EXPORT_SYMBOL vmlinux 0xfe6dd92a sock_no_bind +EXPORT_SYMBOL vmlinux 0xfe71d4da journal_load +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe9115c4 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xfeb7560e dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfed53143 dq_data_lock +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfeeb2198 dentry_open +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff0e51fc nobh_write_end +EXPORT_SYMBOL vmlinux 0xff0eb3f5 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xff1c211b request_firmware +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff36f548 mb_cache_create +EXPORT_SYMBOL vmlinux 0xff44a6df tty_port_close +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 0xff76272e jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0xff778fdf dw_spi_resume_host +EXPORT_SYMBOL vmlinux 0xff78a2c4 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xff8f99ca lock_sock_nested +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 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 0x022b1f29 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x022e40f0 __tracepoint_kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x02d6f5da kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x04072afd kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x094ac8f4 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0b93fbf5 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0f980bef gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12d1b23b kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x19ce3296 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1db49742 kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e036c9e kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e4580bb kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e804d90 kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x203b09b7 kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x215a9848 fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2322e039 kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x24e6106f kvm_after_handle_nmi +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 0x2e92867f __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x307ebc0c is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3152c03c kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x36429ae3 kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3e784b10 kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406813bc __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x409c8805 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x43244899 kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4a60b456 kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4a7cbe69 is_error_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4c2346de kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5102cf94 __tracepoint_kvm_nested_vmexit_inject +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 0x59685583 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x599086dd kvm_handle_fault_on_reboot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x59b80296 kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x59bd70f9 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5a423cd8 gfn_to_memslot_unaliased +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5affceb8 __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5b9f2b0c kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5bc39bcb kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5fa793cf emulator_write_emulated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x640f3d44 kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x64fecb55 kvm_report_emulation_failure +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x68a91425 kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6ef36188 kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6fcfc837 kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8436023c kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x85ac8ecb kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x882188e2 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x88c7f6c7 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8fe99698 kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9227f4b3 __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x93074bd5 kvm_get_msr_common +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 0x9cc011f6 gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa0250a2c kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa361bc65 kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa7c1add9 kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa9a84e44 kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaa4da853 kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xab132643 kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaf051022 kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb3b91a6e kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb7b44de2 kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb8c03036 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbb1c50fb kvm_inject_pending_timer_irqs +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 0xbdee52f1 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc08f1560 kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc5c288c3 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc655480a kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc6cdc394 kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc96e4bb5 kvm_requeue_exception_e +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 0xd0c4dfec kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd15b9414 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd1986bd2 kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd1d9fe7e kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd24fe221 kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd5cc2e2f kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7be16af __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7c71693 emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe1387494 kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe5635e9e kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe662ecb1 kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xee669b14 kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf2877904 kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf429bbb2 kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf6e15390 kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xff6fc44e 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 0xe3fd4fc4 crypto_aes_set_key +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xcdca9cc1 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x2d119901 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xc7122bff async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x45f157d3 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x9adb128c async_raid6_2data_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 0x03d20107 ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x07660691 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x12958ece ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x23d120d4 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x31586f5a ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3695bb70 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4fd617ad ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5fde4d0c ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x69b4e5af ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa4b3ddd0 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc16fd6a5 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xccc3ba4a ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe39b6ea7 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf04f8e18 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x07d3a3be btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x2e2a1e73 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x46251568 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x5bb2f9f2 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xbf748b73 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc2daf665 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xdf6abbab btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xfd30fbe2 btmrvl_check_evtpkt +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 0x65801bfd tpm_bios_log_setup +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x6ae0aca9 tpm_bios_log_teardown +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 0x032cd704 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0d054e38 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1160724b gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1e55a70f gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2f5627da gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x34fe1140 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x40da0095 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4ee57cb9 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x53fba6c7 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x548a51ac gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5f2df941 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7a8a71b3 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x87f1fbc8 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9787dc36 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa5be4be1 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb122034a gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xcce80f0c gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe9a363f9 gigaset_dbg_buffer +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 0x0987a170 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x09f844bd sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x116d38c8 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x9107d7a4 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xf54012c3 sm501_misc_control +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 0x1780ea58 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5435fc84 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x683ab085 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x72fa54d4 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd49cd9f3 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf33cbf93 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 0x26b81384 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x2fe7ae18 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x78b4b0f6 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xe1890a63 add_mtd_blktrans_dev +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 0x5407ad36 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x6150ca56 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x7317dad2 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x8859f982 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xab994ef7 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 0x8fd250b5 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 0x0028580f rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2395740a rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x44bb3e68 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x458e6c62 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4aca11cc rt2800_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4d5b3042 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4d7f6601 rt2800_init_bbp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4f5c350b rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x66e3ccca rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6e96bb54 rt2800_mac80211_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x73458eb2 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8157d9b8 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x883152b3 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x89320375 rt2800_init_rfcsr +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x896d9574 rt2800_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x89be5b9a rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9913b757 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x99385c26 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa4779a32 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc5770567 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd187fcf3 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd6ccf34e rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfc96294a rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfff9f63d rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x10052772 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1d72c5c9 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1fb728e4 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2e8833c7 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x36d16eaa rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x46493731 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x50ede41f rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5216c081 rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5416ca02 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x610085ca rt2x00mac_rfkill_poll +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 0x9f8c4d22 rt2x00lib_rxdone +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 0xc7078857 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdc9d4bdd rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdf5bd276 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdfcd9652 rt2x00lib_resume +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 0xeff5e6cc rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf19a568b rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x0edfced3 rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x14911819 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x288c39cc rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x2f358f7a rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x45f09ce5 rt2x00pci_uninitialize +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 0xc4a63e7a rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xc9cbe4b3 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x06481aaf rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0f1bb840 rt2x00usb_vendor_request_large_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x10e49804 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2eb34c51 rt2x00usb_kick_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x384f1f06 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3b7bab26 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4d797724 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5457e585 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x54ef12d2 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x894de62e rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa03baeb4 rt2x00usb_kill_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xca6879b6 rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xcd945070 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd4f3ed36 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd8d34252 rt2x00usb_vendor_request_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 0x866b5369 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x06ce4a95 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x09ea3cc0 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12bc8e2f iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x16d5164f iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1780e2ec iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x22a381a7 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x28f8337f iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2f5fa0a0 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3454e1f5 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3979a06a iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3999e8c3 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4056d815 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x41e337f6 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4eec054b iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x53a2f5f7 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x55aa5bff iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x66ead4b9 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6e707d5c iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6e7a61f7 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8194866c iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8b111549 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9b83f343 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9f7b09e5 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa1eb9ea8 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xab781582 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaba0a762 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xad7d7075 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb4ccaa47 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbbd91714 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc2438204 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc2de27d9 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc74767a7 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd60c4a81 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdcc46aaa iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdd035b99 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe988fccb iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe9ab1b21 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf463a21e iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf6b722fa iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf6feac37 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf8822603 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xffad19d6 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0d0567c4 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x18d3cc1a iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x46f9cd3a iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4e338f27 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5548f44d iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x55762936 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x56c83186 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5c03b2b2 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5e5f3c72 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x67fbc28a iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x758172e5 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8638f0bf iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8fe9ab5c iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xcae8fa38 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xcccb00f4 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe8d10033 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x21ee1609 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2c7c767a sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x345791a0 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3b1490d0 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x613001cf sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x669f2096 sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6829fedb sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6f73f25f sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x71ea16d2 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x795672cb sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9ab920ec sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa3444ff8 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa89abbfe sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaf6549e1 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbbd5dfae sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbf1544c3 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc0e31cf2 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc348108c sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xca9390c1 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe3c5105a sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf16bb137 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf296ddbf sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfa67cdd8 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x3e0064a5 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x7be95e04 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x8713e20b srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xb3eee9ce srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xd1b99bca srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xfad36f2b srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x100e39b1 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x1bdbb52e scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x38b4d461 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4748d8c5 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4b226f73 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4faeeca0 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9019967f scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb0db7176 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd2e6a8b7 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x06ca5411 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x13d2f44d iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1442ff0b iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x248defee iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2d8a1058 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3b1788cf iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4241af35 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x469cfb90 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x661cfcd3 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x72558106 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa7037508 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb553de75 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc49b0262 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcf0ec048 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdaf01250 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdc5b56e1 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdec0e495 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe14a5c86 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe548ee03 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe6040d9d iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf8a7daf8 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xffdd8dd9 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x0d549686 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x4d08b5a6 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xb16979dd sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xca7305b3 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x3458aefa srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x533c35f9 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x7764ea70 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xeff00b2c srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xf9df2199 srp_attach_transport +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 0xe569c5bf 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 0x3971b1cb usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x3c217d8a sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x40a8dae2 usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x4952baea usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x4c60e53a usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x5a3f658e usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x6142c0f4 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x77d36d00 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x7b82e82d usbip_task_init +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xa508a80e usbip_stop_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xa5b28262 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xc26198e2 usbip_start_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xc4dea495 usbip_recv_xbuff +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 0xe87f2686 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xf04c8b4e usbip_event_add +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 0x606ccefe usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xdf333704 usbatm_usb_probe +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 0x0744273a usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3f32e2dd usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x42628921 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4f3c15ea usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6fdd6eff usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x82314723 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8ee7edc6 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8f6a3eb9 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8f8d6369 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x980c8a53 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9d1dc787 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xaa48af0a usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xaac8db11 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbc099593 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbd57aad2 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd02d5b53 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd343fa14 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe5e2cd17 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf5dbe7f6 ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x05f4905e usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1db4d01a usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1fa60b2d usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x29608525 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x38214686 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5028ae82 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5fba2e95 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6144414b usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x65d828e9 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6682dad4 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6ded4eee usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7c958c77 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7f413b64 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x80127f2e usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x92aae529 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbbc930c8 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbd02713c fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc13c5b6c usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc43651c2 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcde2845a usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcfa71380 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd5529bc8 usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xdb80b745 usb_stor_bulk_srb +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 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 0x45c2a7a1 fat_free_clusters +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 0x6d1ea983 fat_getattr +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 0xb6386efe fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xba7a45ba fat_sync_inode +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 0x137af3b0 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x4de2fdec nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6a21cd0d nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xce967afb nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xea7f6fb9 nlmclnt_proc +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 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 0x2371fe55 o2hb_unregister_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 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81d7e55d o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9030c99a o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9f2dd570 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 0xcf2af0f1 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 0xd7189c9a 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 0xf4ac510a o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x349c9e79 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x5c9663aa dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x88ad7916 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x89d4c0fd dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xa4e28266 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xaa70b922 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 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 0x24f0befe 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 0x93767378 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00ad4f41 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0e8dd19d dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x13aa9c1c dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1540983a dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x17fc8f3c dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d0bb4b6 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2527dd4d dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2e6007ab dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4352c4f1 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x440c2e25 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x545c2019 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5a342668 dccp_disconnect +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 0x92b65874 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x94db5759 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x94fbca77 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9a427bb3 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9f71e98c dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00a52b9 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa71ec7a4 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa872edb8 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xae38040a dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xaf2cfae6 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb315a0e0 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc81d061b dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcc3549c1 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd30716dd dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe2a2b8f5 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe37ba50f dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xeb125550 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xeff6e082 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf4302e95 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf6472f41 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf97d2e2b dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfbfaa926 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x10c82543 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x331e9644 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x4f13f675 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x58c01d93 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7feb6b52 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x85a17679 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x637d8c4e arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xa9a90025 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 0xea7360b3 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 0x13c6dff9 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x3a583d79 nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x3ad0b986 nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x730e4525 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xac8f1ed4 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xb61bbeb4 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xb9d5d1fc nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xebb51c04 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 0x2d6986ee tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x45d505df tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x59c6ca31 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x6ec21abc tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd385dbb9 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x8c97f0e6 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0030072b l2tp_tunnel_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0f94db89 l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x13005981 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1f7291a0 l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x31c5dbd2 l2tp_udp_recv_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3293f0ef l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4395110d l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x69d41271 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6d958623 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7eda6189 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa6dec8cb l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa8dde881 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb3b4ab47 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xca4d03bd l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xcc6bf538 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd442dd21 l2tp_xmit_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd7938321 l2tp_tunnel_find +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 0x19fa1be4 nf_conntrack_l4proto_tcp4 +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 0x2bcc7966 nf_conntrack_l4proto_tcp6 +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 0x7ae10e55 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7d47d940 nf_ct_port_tuple_to_nlattr +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 0x865a3991 nf_conntrack_register_notifier +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 0x91357f5d nf_conntrack_l4proto_udp4 +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 0xa3031ddf nf_conntrack_l4proto_udp6 +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 0xb601a2f8 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +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 0x4eaa7468 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x29caed20 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0eb1fb22 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1a14c2d2 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x30efa285 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5217cf4f set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x56afce30 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x631a8146 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7106aec2 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb7e9b257 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf23315be set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf324e941 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xf8a885b2 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x88da1c0f nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x924d0305 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x958cebfa nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xd1cd1e1b 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 0x0c6aa0dd ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2fe8359e nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3ea18dfc nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x43680418 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4e1cec29 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7488ffe4 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7ebfcfcb ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x80ef5780 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8cfb88f0 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8d01bd04 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb77f6fdc ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd8642cd1 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfed09331 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x1135603e nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x3723712c nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x5ca30dd2 nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x24f3a908 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3a13bdd8 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x717c86d7 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7a894e55 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd9106866 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xda000f32 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xd8a9f402 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x202ba009 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2642e2ab xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2d60f5e1 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x64dbbe51 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6871255e xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6f926a7f xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7be624e1 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7df7cf78 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x81f39d12 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8ea8a849 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9797973a xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9cb06e9c xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa967193e xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xebb09b1a xt_table_unlock +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 0x050fb35b rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x1c9a2719 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 0x5c31660d rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x5e36d0d9 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x6ea27d95 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x74359234 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x758fcef9 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x7cedc3c4 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x88bd9d4e rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x8940a87a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x8dc18ee8 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x8e7e0440 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x961ec9ac rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x9bd785d7 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x9fd20c2c rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0xa0410c90 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0xa6a095f9 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xade2ac8a rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xb67d4d14 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xceedea2c rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xd35f9c17 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0xefe2a195 rds_inc_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xf58ccc3b rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0xfe95e143 rds_info_register_func +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x4a75f0a8 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x6b83f932 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 0x2e72a8a2 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x649706dd gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6f02243f 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 0x9193dea1 gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x9330acbc gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x97996ae9 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xad47b818 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 0xbc1eaac8 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xdde7c4bd gss_mech_get_by_pseudoflavor +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 0x0171cfef rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x050246ef rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05207868 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e25839 svc_create +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 0x06935d27 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b06a599 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ed6c203 rpc_shutdown_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 0x11c249f8 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12c7f661 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1565a1ce svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1610c48b rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16699c37 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x181a5a59 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x19cf535d rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b4a2a45 svc_create_xprt +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 0x1e1b7123 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ef5869a put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28f98a32 rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2926ba27 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29d0f2a4 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b4b0f6d rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2bd7e1e9 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2cf32c36 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d8c12ee rpcauth_unregister +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 0x33c4ba5a xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x34a9f62a svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3558e3c6 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35e8acea rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3870ce8c svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3882d6ba auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a269ec6 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b17eaed rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x414c3b6d __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41f62e29 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41f6bfdb rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x429b131c cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ea13035 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51a89c45 auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52102f8b rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x554dadf7 xprt_adjust_cwnd +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 0x5c0e837f svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f22feac sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f77fd5f xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61380b17 cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61466ba4 auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62b90a76 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6373e2e1 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x678831f5 svc_sock_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6852be82 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a3f06cf xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6bf854ae rpc_proc_register +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 0x715de9e8 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77033fff xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a992389 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 0x7ee6f706 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x808464a0 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80a22ac2 svc_sock_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x83428ab0 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84b60156 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x853d9ad9 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85cda59b rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85f6b4c5 rpcauth_generic_bind_cred +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 0x8bf4265c xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e7a4cd9 rpc_exit_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ee4164e rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ef7602a svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9151cbd2 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x949355b5 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94c25c84 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x951e354e svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9521f7a8 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c9b6b32 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cc07685 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d3f6739 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ddfd1c9 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e504da5 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ea5ceee xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa04a7a46 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa11f5f8f xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa1b87ad6 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa1ee9680 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa459def0 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa5092a91 xdr_decode_array2 +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 0xa9653d2b svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac6577e7 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xacbb1fb0 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb013ade6 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb049887f rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0f390b4 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1c0a143 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3399794 rpc_call_start +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 0xb8b9574a xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe0c6852 svc_create_pooled +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 0xc12435e3 rpc_calc_rto +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 0xc307588d svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc57ccb69 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5f6540e rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc717c734 rpcauth_register +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 0xcd827a18 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce06909d rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf80e373 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf91650c svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd116cf1e rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd1496bec rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd38e7063 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4a31e2b xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6ef1ef3 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd91f7b55 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd1b7cbd xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf746df0 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdfeabed6 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe027346c rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0e77696 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe39a2aff rpc_delay +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 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeed56dbe rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef19e516 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2897fcb svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3b5b818 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf54cdd95 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7683fb6 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa29196c xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb8d94e8 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfcf623fe rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe34344b xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe82db3a xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/wimax/wimax 0x04b9b491 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x17a1df65 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x21c741be wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2d923503 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x49e98245 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x4b20d72d wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x56279845 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x5b2253f7 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x712583c9 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x923586be wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x99931204 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb275356e wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd45b732c wimax_state_change +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 0x31038147 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x38f83622 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x8c7df715 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x9d0960b0 ipcomp_init_state +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 0x0009e0d5 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x00114ec9 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x003ed6a6 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x00405536 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00a86fbd usb_kill_urb +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 0x010552b3 queue_work +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 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0213f803 sdio_claim_irq +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 0x03169d61 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x03556d4b tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x0388b796 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x03a2eddc usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0x03bf0e0b ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x03d3087a ring_buffer_read_prepare +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 0x0462a204 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x04717678 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x04a93edb sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x04aada29 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x04bb288a vfs_test_lock +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 0x052372c7 bd_claim_by_disk +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 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 0x06346f50 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x063d3aee bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x06562e51 dev_attr_em_message +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 0x0806ae7f ip6_dst_blackhole +EXPORT_SYMBOL_GPL vmlinux 0x0813b6ac i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x082196b3 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x08cbb849 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x08e2fd84 skb_cow_data +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 0x09c8b491 inet_twsk_alloc +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 0x0a1ae97d page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x0a3fc4b9 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x0a55e6d0 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x0a696f3b br_fdb_test_addr_hook +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 0x0b4e3f88 xfrm_output +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 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 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0c83cd23 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0cd419ab crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x0cda5669 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x0cf19ca0 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x0d106e7c find_vpid +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 0x0e2c6878 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x0e4d99f8 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x0e6a0889 eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x0e9a6c4c inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x0ec210b8 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0x0eea57a6 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0ef87db0 put_device +EXPORT_SYMBOL_GPL vmlinux 0x0f04bc70 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x0f1b6144 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL vmlinux 0x0f33f49c spi_async +EXPORT_SYMBOL_GPL vmlinux 0x0fb5322b tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x0fcdbbd8 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x100be06d ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x101fc0a4 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x10621889 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x10b53e4e crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x1125a51d usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x1127a40d sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x1149c9a0 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x11501cec pci_set_pcie_reset_state +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 0x11feac8d xfrm_audit_state_notfound +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 0x127654fe ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x12ca1a80 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x12d956bc ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x1310b666 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x13143b1c blk_rq_unprep_clone +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 0x1386ec3e dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13f8ecea anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x141adc3d sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x1428258f skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x145784d1 gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x148162fc ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x14b9feb9 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1513089f ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x151aea33 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x152259c8 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x15568631 lookup_address +EXPORT_SYMBOL_GPL vmlinux 0x1563c9f9 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x1566b3ce ring_buffer_peek +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 0x15f15082 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x16044851 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x16234e28 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x1656971a device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x166cf528 ip6_sk_dst_lookup +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 0x16d5abac dm_rh_recovery_prepare +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 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 0x188f631e trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x18c3e75e vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x1938f873 flush_workqueue +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 0x1a3bf4ae bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x1a594416 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x1a6ee615 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x1ac4ebc5 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x1afbdf2e scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x1b1f2bda speedstep_get_freqs +EXPORT_SYMBOL_GPL vmlinux 0x1b5c48be ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x1b6b881f css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1b88b6bb sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bd2a56f ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x1c195df7 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x1c2973be ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0x1c45f322 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x1c5fa88b wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x1c716f97 debugfs_create_u16 +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 0x1ca15531 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x1d4676a2 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x1d6781a9 klist_next +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 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ecfdf10 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x1ed3db0b elv_register +EXPORT_SYMBOL_GPL vmlinux 0x1f1fa574 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x1f234edf ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x1f85dcaa fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1f8ce680 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1fcb9abb vfs_lock_file +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 0x207d24ed class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x20b4d174 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x2112aa0d scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x215f51ea crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x21e56c31 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x22300e41 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x2274645a __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x22925335 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22eb19d2 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x2322c72d wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x23555bd2 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23d9122a dm_rh_stop_recovery +EXPORT_SYMBOL_GPL vmlinux 0x23f38f25 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x23fa8a18 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x2416e9cd vfs_cancel_lock +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 0x24963038 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x2497d17f sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x24a5542c pci_test_config_bits +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 0x25239864 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x25343e3c __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x2553f632 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x25565a27 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x2560e5a1 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x2565a6f4 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x25bd27d8 dm_rh_flush +EXPORT_SYMBOL_GPL vmlinux 0x25ff66c6 pm_request_idle +EXPORT_SYMBOL_GPL vmlinux 0x263fbac1 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x2659e942 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x266fb30f tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x2671ce5d dm_rh_recovery_start +EXPORT_SYMBOL_GPL vmlinux 0x26a925b9 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26d1c9da find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x272c4eb4 securityfs_create_file +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 0x278addd2 macvlan_handle_frame_hook +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 0x27cbe910 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x27cdba1c pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x27e059bd usb_interrupt_msg +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 0x289c967b __blk_put_request +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 0x2915fd28 vfs_getxattr +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 0x2a8916a9 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x2a9b7f84 ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2a9cc9e5 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x2aabb777 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x2aba1358 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x2ad3fd98 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x2adaa2fa class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2b28c5ae sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x2b373a78 fib_rules_unregister +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 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2bc5e438 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x2be7fb8e disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c271b35 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x2c3b1c31 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x2c6a0800 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x2c83aa6c skcipher_geniv_free +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 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d6263e9 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x2d6b4fa5 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2db0c42e driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2df1010b cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x2e0a07da regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x2e18389f scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x2e43b101 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x2e45a90d blk_queue_rq_timed_out +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 0x2e98f9ce ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x2ebad30b eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x2ec83069 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0x2ef5482c xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x2ef83e5b ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x2f094bb6 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x2f18ae8f debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x2f1e5682 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x2f302a75 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x2f444c21 securityfs_create_dir +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 0x2fa42b89 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0x2fa99f87 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x2fbe307e wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x2fc1c636 d_materialise_unique +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 0x303bd010 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x306ab978 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0x306e3a24 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0x30a0a01f relay_open +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x315e8fec ring_buffer_record_disable +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 0x32d598be regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x330cc8a1 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x331eda0d fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x333fab6a crypto_unregister_shash +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 0x343723c4 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x34445c78 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x34b6d031 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x351591ce ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x35bd1720 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x363e731f device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x36b6077a clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x36d04797 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x36f3357a nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x378e500f xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x37ec4652 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x3841ab01 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x386d7a97 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38d2b14e ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x38e781e4 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x38f65d5b ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x390d2467 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x3931ce13 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x3949c45e usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x396ba6b7 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x399f5bc1 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x39be9cdc sysfs_get +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 0x3aa72416 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3b99864e dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3c2fd580 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x3c432388 __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x3c452b13 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x3c6dafdc pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x3c6f4ea8 register_net_sysctl_rotable +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 0x3cad06c9 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d6e8f43 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3d8d361a register_net_sysctl_table +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 0x3e5ac275 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x3e5c10df ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x3e757637 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x3eae77d8 dm_rh_delay +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 0x3f50c160 netlink_has_listeners +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 0x401b5dad fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x403a59dd ata_eh_analyze_ncq_error +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 0x4079aec5 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40da25fa sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x410ee029 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x418ecdeb perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x41a55cf5 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x41ad1b44 dm_region_hash_destroy +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 0x42c5dcce inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x42df7bc9 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x42fcabc9 generic_subsys_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x43339157 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x43396254 __blk_end_request_err +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 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 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x44ad0d6c ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x44d8d15c __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x44e76e96 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x45176270 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x452f4130 ring_buffer_unlock_commit +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 0x45d14bdf hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x45dc7075 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x45e1928a pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x45f034b3 dm_rh_get_region_size +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x4612c235 xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x46290cb5 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x464c984d sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x46e06e12 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x470ba734 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x470d9c96 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x470ef36e __rtnl_register +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 0x485b2fb0 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x48672258 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +EXPORT_SYMBOL_GPL vmlinux 0x48c51c71 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x48c95f67 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x490db010 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x491b85d1 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x494c3649 generic_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0x496ac406 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49c7ea9a ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x49d87326 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x49db8db4 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x49e9aade inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x4a071979 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x4a44e7de hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4acdd713 user_read +EXPORT_SYMBOL_GPL vmlinux 0x4b23978b blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x4b36ab72 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x4b81a958 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x4b8a3dce debugfs_remove_recursive +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 0x4c005157 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x4c140854 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x4c328962 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x4c4d6801 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x4c5d95c5 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c81557c ring_buffer_reset +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 0x4d1cfb53 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x4d28c458 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x4d9c52d5 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x4d9e23c2 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4e4df5db ata_host_suspend +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 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 0x4f6e7da7 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4ff1b6d1 gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x502c8467 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x505c57be pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x5081c8b4 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x508ed17a inode_add_to_lists +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 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 0x51a03b19 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x51dffbbf securityfs_remove +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 0x520e6711 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x5249f0be srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x52958e15 mnt_clone_write +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 0x534ec30c usb_hcd_pci_pm_ops +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 0x54063872 each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x5428ac56 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x5477b4c6 ata_dev_pair +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 0x54f4ac41 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x54fb8ad6 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x550559f7 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x552d9b3e xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0x55429680 blk_rq_err_bytes +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 0x55db6bb5 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5614398c inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x5623f468 wm831x_auxadc_read_uv +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 0x56bc3472 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x56c49cc8 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x57093364 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x571599d8 br_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x572d9260 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x572f483b skb_pull_rcsum +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 0x57f9671a fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x580684ac kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x5880b324 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x58db1531 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x5949da41 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x59527332 ata_sff_qc_issue +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 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a86bcac ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5a9566e2 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x5ab5288d register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5b1ac981 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5b42005d debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x5b95ae20 use_mm +EXPORT_SYMBOL_GPL vmlinux 0x5b98a216 rtnl_kill_links +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 0x5c59dc84 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5c77f9c2 register_user_hw_breakpoint +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 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 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 0x5e673164 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x5e6ff2d1 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x5e82e865 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x5e8a225a xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x5ead4a75 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x5eadacd6 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x5eca59a0 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x5ed954e1 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f0b4823 dm_rh_start_recovery +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 0x6012bb09 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x601421dc da903x_clr_bits +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 0x60ceb439 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x613b7d0b usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x616f7776 dm_rh_dec +EXPORT_SYMBOL_GPL vmlinux 0x61bad0fd vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x61e1ff05 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +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 0x62c9be2a eventfd_fget +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 0x64385806 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x64a37310 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x64ebe677 wmi_query_block +EXPORT_SYMBOL_GPL vmlinux 0x6526aff0 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x6535f07e usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x654af242 ata_do_dev_read_id +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 0x65a89814 sg_scsi_ioctl +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 0x661f772f ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x66323d24 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x66506593 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x668c07db __sock_recv_ts_and_drops +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 0x678404ba zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67a4145f wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x67b696a8 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x67d326ce ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x680a72ac wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x680cdc3f part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x680f7d6b sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x6841551a bdi_writeout_inc +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 0x695640d2 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x698c543f blk_rq_prep_clone +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 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 0x6a8ac529 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6aceded5 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x6ad54a03 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x6b11e778 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +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 0x6bcabec4 find_module +EXPORT_SYMBOL_GPL vmlinux 0x6bdcc53f usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c37ecd7 sdio_get_host_pm_caps +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 0x6d3eb545 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x6d5eeff8 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x6d8c5f14 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x6de65839 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x6e090c1c adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x6e3688c6 screen_glyph +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 0x6ec03e8a ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x6ecbe3cb rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f27b078 __inet_hash_nolisten +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 0x70a21194 hvc_remove +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 0x70e1d31d blk_trace_remove +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 0x71d82c84 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x71db3f46 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x7204132c __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x723cd119 dm_rh_get_region_key +EXPORT_SYMBOL_GPL vmlinux 0x7244ccd7 ata_port_desc +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 0x72d1492f cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x73033e6c __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x73618135 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x738e596c elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x738fb2c9 unregister_net_sysctl_table +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 0x742f8cf3 disk_map_sector_rcu +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 0x7457fee6 generic_drop_inode +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 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x755671f5 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x757f9af7 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x758c0fba sata_scr_read +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 0x75da245f ip6_local_out +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 0x76f4c317 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x776653b8 dm_rh_get_state +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 0x7845542e scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x7860a857 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x788b8617 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x78bd0c8f fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x78ceab93 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x78e0eab5 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar +EXPORT_SYMBOL_GPL vmlinux 0x793c8bde blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x795fba0e debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x79b68085 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x79cf2087 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x79d86363 ata_cable_ignore +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 0x7a480cdd queue_work_on +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 0x7a5f7017 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x7a701f4e ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7aa0ea8a invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b21b106 regulator_enable +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 0x7c260e62 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x7c47b89d iounmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0x7c59b995 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x7d0ab8b6 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x7d53d6a7 pciserial_init_ports +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 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e654576 ata_slave_link_init +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 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 0x7f9b1f87 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x7fa7251b transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x7fa8927b mce_chrdev_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fb11b66 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x7fb7e986 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7fbc21ce input_class +EXPORT_SYMBOL_GPL vmlinux 0x7fe0b374 console_drivers +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 0x80771ba6 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x8086f62e crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80b3f97c raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x80b943fd mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc +EXPORT_SYMBOL_GPL vmlinux 0x80f2d215 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x81548913 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x81633c9f sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x8197ea70 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x8214473f skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x8269c4e0 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x827280f1 xfrm_audit_state_add +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 0x82f6e8dc gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export +EXPORT_SYMBOL_GPL vmlinux 0x832e27eb wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x8393a468 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x83ca05db adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x83e4bbe8 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x8412712e dm_rh_recovery_end +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 0x843e3214 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x84418924 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x846131f2 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x8467f348 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x84752abc get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x84933aa4 dev_forward_skb +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 0x84f48d49 sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x85237354 pci_disable_pcie_error_reporting +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 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 0x86020117 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x8641f515 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x867c684a setup_APIC_eilvt_ibs +EXPORT_SYMBOL_GPL vmlinux 0x8681c93e bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +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 0x8747a87a register_posix_clock +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 0x882a57e5 ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0x883a6ec0 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x886736fc olpc_platform_info +EXPORT_SYMBOL_GPL vmlinux 0x8887dc93 usb_autopm_get_interface_async +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 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x892a9efc dm_rh_inc_pending +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 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 0x8a967253 sync_filesystem +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 0x8b8cade1 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x8bb65b58 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x8bd65520 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c180e28 vma_kernel_pagesize +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 0x8caefad0 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0x8cb09009 get_device +EXPORT_SYMBOL_GPL vmlinux 0x8cc088d1 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x8cd48281 inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0x8cfbe50a blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x8d0be797 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x8d17edb0 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x8d261a43 inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x8d4ff44c ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x8d789e4a crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x8dfba04b usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x8e17f064 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x8e4f514c kick_process +EXPORT_SYMBOL_GPL vmlinux 0x8ea63ac2 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x8edfc605 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f8b3597 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8ff724e7 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x9021b597 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x902b1c37 __sock_recv_timestamp +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 0x90cad332 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x90cb4956 dev_change_net_namespace +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 0x918afd53 ata_pci_device_suspend +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 0x920f171a inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x9261bcf4 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x92aa2d16 __module_address +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 0x92e40dd3 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x92e5278b rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x92ffa5e0 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x930c644a ata_do_set_mode +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 0x93b96498 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93efad44 acpi_smbus_write +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 0x94d13fe0 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +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 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 0x969b11b6 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x96acd913 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x97835911 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x97c3cba1 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x97d1c8c9 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x97e37f80 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x985a5b79 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x986c30b5 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x98a124aa ata_port_schedule_eh +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 0x991dc344 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +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 0x99dd1de3 disk_part_iter_next +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 0x9b18ada4 debugfs_create_x16 +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 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 0x9cde6cba led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x9cf3e2a3 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x9cf6a718 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x9cfdda34 perf_event_read_value +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 0x9d803c89 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x9dafd731 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x9dcfaf53 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x9de1888d pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0x9e7b6ca8 fib_rules_cleanup_ops +EXPORT_SYMBOL_GPL vmlinux 0x9ea06966 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x9ebff902 start_thread +EXPORT_SYMBOL_GPL vmlinux 0x9edebbd3 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0x9ef19427 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x9f181d95 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x9f29e55f skb_partial_csum_set +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 0x9fc79821 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa0208e02 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa0db1d8d usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xa138fdc2 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xa1c07bdb crypto_givcipher_type +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 0xa2a997df ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xa2e6034c sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa3934f44 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0xa3ac5699 destroy_workqueue +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 0xa4a4fd45 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xa4ac3e94 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xa4ea4d3a do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0xa53561d4 scsi_dh_set_params +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 0xa5b70857 __mnt_is_readonly +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 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa6317905 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0xa64d36df ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xa6bae256 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xa6bcc832 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xa6d390e3 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0xa7203926 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0xa7fa52a1 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0xa835a3d0 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa86bd6f0 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xa8bc256f transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xa8c52648 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0xa8e61fff ref_module +EXPORT_SYMBOL_GPL vmlinux 0xa8ebe1de dm_get_rq_mapinfo +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 0xa91a11d8 tty_ldisc_ref +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 0xaa304ef0 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xaa3c6f0b scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaa93b916 disk_part_iter_init +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 0xab17029f dm_disk +EXPORT_SYMBOL_GPL vmlinux 0xab222191 pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0xab25d52a __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0xab341c58 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0xab36b641 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab99013b vfs_removexattr +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 0xabf4d337 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0xac1a0e9a proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xac23ec10 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0xac6dcdb0 blk_rq_check_limits +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 0xad096363 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0xad2f445f tcp_done +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 0xade53d99 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xade98682 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae495b10 __blkdev_driver_ioctl +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 0xaf32b0c9 raw_hash_sk +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 0xb01364c5 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xb072cf86 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb0ab9f8c flush_work +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb1113249 tun_get_socket +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 0xb18506b9 smp_ops +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 0xb1d37302 sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0xb26a88b6 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb28ada9d inet6_hash_connect +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 0xb39630ce ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write +EXPORT_SYMBOL_GPL vmlinux 0xb3ef2ed6 tty_get_pgrp +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 0xb46e2d6e rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xb49c5614 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xb4a69d04 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0xb4d81e45 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb4f5aa39 ring_buffer_iter_peek +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 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 0xb6157f39 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xb61a6eca ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec +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 0xb6f7cbd1 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb6ff43c4 __ring_buffer_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 0xb77a0720 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xb78a3250 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xb7b1db25 dm_put +EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0xb7dd3955 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xb7e2eb91 mce_cpu_specific_poll +EXPORT_SYMBOL_GPL vmlinux 0xb7ef9e2d tc35892_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xb8220c37 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xb855109d inet_csk_listen_start +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 0xb8acc90d dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0xb900d237 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +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 0xb9b320b7 ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xb9d91ff5 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xb9e16ba1 scsi_nl_add_driver +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 0xba20b668 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xba5a000d pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0xbaa88125 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0xbad68aaf device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbafb8bc3 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb05b0bc tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xbb05cf26 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0xbb09f9ba dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb58b814 iomap_free +EXPORT_SYMBOL_GPL vmlinux 0xbb7b9af2 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbef7e72 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xbc12a43b ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xbc8f661e usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0xbcb2af32 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL vmlinux 0xbce836dd cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0xbcf2bb54 blk_queue_rq_timeout +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 0xbd62f80e usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0xbd973c62 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xbdbee7f4 dm_rh_region_to_sector +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 0xbe23c498 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xbe598c8c pm_runtime_allow +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 0xbf0c9730 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0xbf1de88f atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xbf5303cd ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xbf65f520 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xbf9c696e inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbfa30db9 ab8500_write +EXPORT_SYMBOL_GPL vmlinux 0xbfc33bdf ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xbfd94bb0 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xc041911f ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0xc0420353 tcp_register_congestion_control +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 0xc0eaacc4 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xc0f95070 sk_attach_filter +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 0xc18783d1 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0xc1a98888 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xc2060a9b __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc23c473f tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xc241da40 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xc24cbf27 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0xc25c9d89 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +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 0xc36acb88 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3a2f8cb raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xc3aab0e3 wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xc3c4533f dm_register_path_selector +EXPORT_SYMBOL_GPL vmlinux 0xc3f55520 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xc4023b9c ata_ehi_clear_desc +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 0xc474c51c usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4b5fc3f pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0xc4fe5016 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xc52c64ac ring_buffer_normalize_time_stamp +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 0xc5ec2fc9 ata_std_qc_defer +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 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 0xc78f00f7 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xc7c68701 ata_sff_irq_on +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 0xc88c6d07 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xc90abcca blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc9221c60 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xc92a16df xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0xc94cea91 cpuidle_unregister_device +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 0xc9eac12d scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca59a4e6 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xca680f6e scsi_unregister_device_handler +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 0xcb611ee0 pm_generic_runtime_suspend +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 0xcc1652f0 sata_link_hardreset +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 0xccc28835 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xccccb1a1 css_depth +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcd0dbfe9 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xcd682272 dm_unregister_path_selector +EXPORT_SYMBOL_GPL vmlinux 0xcd8fe524 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xcd9c1ce6 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0xcda828ba apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +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 0xce9832c3 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0xcee0e06f tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xceed1ffa spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xceed97a0 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcf88230f __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcfad843a sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xcfb4954d ata_link_offline +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 0xd02eeb6f rtnl_link_register +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 0xd0ee456c dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0xd11d4e76 queue_delayed_work_on +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 0xd1947955 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xd1967adc __class_register +EXPORT_SYMBOL_GPL vmlinux 0xd1a2edb1 ring_buffer_discard_commit +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 0xd1b6651f inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0xd1d26249 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0xd1dfecb5 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0xd210fff4 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xd213248d tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd2442616 spi_bus_type +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 0xd2eacb61 xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0xd2f66259 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0xd31eddeb fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xd32191b6 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd3685bb3 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xd36c5dd8 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xd370b4d8 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0xd3893999 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xd3ded567 isa_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd3e54a15 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xd428bf2d usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xd43a7bef __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xd4b54862 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xd4d45ed8 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xd516ec3e kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xd53e8f3d tty_encode_baud_rate +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 0xd59fd09f posix_timer_event +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 0xd617a1fd sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0xd65baac2 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0xd6734e99 led_trigger_set_default +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 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 0xd8289242 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xd832fa3b devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd8627b51 ring_buffer_free_read_page +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 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 0xd98e36d4 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd9ce6263 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xda16a0a2 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xda1d19c2 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0xda513e7e clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0xda526a81 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xda8cfb12 ring_buffer_reset_cpu +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 0xdb07322c file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb3040b0 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xdb521ff3 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xdb59816b usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0xdb806c7a __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0xdba71a30 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xdbba098e usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xdbc2c651 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0xdbeb5052 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0xdbfc60f3 xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xdc03e0cb lookup_create +EXPORT_SYMBOL_GPL vmlinux 0xdc13a1b0 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xdc714560 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xdc8e963d alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xdcd110de dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xdd20fb08 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xdd4051c1 pm_generic_runtime_idle +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 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 0xded760e5 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xdf1228b6 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xdf253ea7 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xdfa46cc4 dm_rh_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0xdfeaa95a iomap_atomic_prot_pfn +EXPORT_SYMBOL_GPL vmlinux 0xdffa94d6 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +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 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 0xe0ec45d1 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xe0f25327 usb_string +EXPORT_SYMBOL_GPL vmlinux 0xe105c38f ata_host_init +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 0xe1dc4b6e rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe1f45f29 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0xe2426710 wmi_evaluate_method +EXPORT_SYMBOL_GPL vmlinux 0xe24f3c01 dm_region_hash_create +EXPORT_SYMBOL_GPL vmlinux 0xe2838d16 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe296c585 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0xe2b0f818 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0xe2dd24a2 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0xe333261c ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xe371b33e get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xe388d471 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xe3bd26c4 mmput +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 0xe513afc0 cache_k8_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xe51ce135 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xe51f555d dm_rh_update_states +EXPORT_SYMBOL_GPL vmlinux 0xe537cdf2 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0xe589edbf crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xe5b0ad90 add_page_wait_queue +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 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe7012ffa cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0xe703b888 ata_port_pbar_desc +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 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 0xe8936b15 ata_port_abort +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 0xe97ae435 dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL vmlinux 0xe99793bc ring_buffer_overruns +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 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 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 0xeb584552 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0xeb5b884b crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xebb2b641 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xebc9bd81 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xebe3bd6c inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0xebe8389e tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec1c76a7 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec317f8c seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xecc5a617 tcp_twsk_destructor +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 0xedcdade1 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0xedeb4666 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0xedf3f1f1 do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0xee2fa378 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xee4aad8a i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xee7fca8f ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0xee8dbb41 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0xeeae7ae0 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0xeee66171 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef229245 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xef2cd688 scsi_dh_detach +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 0xf06c1cc7 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xf083411f tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xf0c1926d inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0xf123f373 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xf12b3eed crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf133a15e vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1867cb1 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xf191adb3 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0xf1aec1e6 dm_rh_region_context +EXPORT_SYMBOL_GPL vmlinux 0xf1b4e105 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xf1b92bc7 perf_arch_fetch_caller_regs +EXPORT_SYMBOL_GPL vmlinux 0xf1d8942a ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xf218115c ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0xf2388338 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xf240c6d8 sysfs_remove_bin_file +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 0xf33a47ac inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xf343cb32 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf3622de1 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf3757c66 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0xf38ad7bc skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf3b361b9 ata_std_bios_param +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 0xf3d77c42 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0xf45cdaf7 ring_buffer_time_stamp +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 0xf4c2187e ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0xf4c44750 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0xf519f92e blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0xf541d258 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5654c36 __ip_route_output_key +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 0xf64813b1 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xf6764492 erst_get_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xf6b6a1ff usb_ep0_reinit +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 0xf7734d40 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xf7ea74c4 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0xf802c7ee get_task_mm +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 0xf85a2d80 blkdev_ioctl +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 0xf91f6248 sata_std_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 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 0xf9f1be3c ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa17aaff ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa2f066d usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xfa6b32f1 blk_queue_dma_drain +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 0xfb59d316 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xfbce6b77 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xfbd6e7b3 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xfbee8ea7 dm_send_uevents +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 0xfc679e9c ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xfc7b6098 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfc983df6 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xfd1a0f4d apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xfd3bd949 inotify_init +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +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 0xfde72597 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0xfe06f584 virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0xfe0efa4b scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0xfe2eaabf xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xfe327245 __mmdrop +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 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff918aab platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xff9501b7 ata_sff_freeze +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-28.49/i386/generic.modules +++ linux-2.6.35/debian.master/abi/2.6.35-28.49/i386/generic.modules @@ -0,0 +1,3074 @@ +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 +dell-wmi-aio +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-28.49/i386/generic +++ linux-2.6.35/debian.master/abi/2.6.35-28.49/i386/generic @@ -0,0 +1,11217 @@ +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 0xd99a02b8 kvm_read_guest_atomic +EXPORT_SYMBOL arch/x86/kvm/kvm 0xf1b21131 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 0x3db5384e suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x385ee4dd 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 0x02b84ead drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x02e6774c drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03514f48 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x04c2ee62 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x04e82b1b drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x05b5b25d drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0890780c drm_lock_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ea0da50 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x110e96a9 drm_get_resource_len +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11d13802 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x15d8d7a3 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1650403f drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x186064b1 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b4f021a drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1dd97ba2 drm_master_put +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 0x20d413fd drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x243f5a69 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2526f613 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25979366 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2669268c drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27e53689 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x284979af drm_i2c_encoder_destroy +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 0x2b00a91c drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e5bd880 drm_pci_alloc +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 0x338ef588 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x366eaab6 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37bd8def drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3aa1a2b5 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3cdd2126 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d7d17c3 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f293459 drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f82bafb drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3fc503cd drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x40ed6f5a drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43eff756 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x456c697b drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47bcbaf5 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x480b0539 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4831d2c2 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x487462a4 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e5e2f38 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51d57fed drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53f3c3af drm_mm_search_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f44565 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x566d985d drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x574d4e33 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x581126cf drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59624fce drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59e9acef drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d643738 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e22e6e2 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x60ea7c6f drm_agp_chipset_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0x633aa88f drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x63f61dd2 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x655e618a drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65900f62 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66413c96 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6840f909 drm_addbufs_pci +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 0x700962d5 drm_core_ioremapfree +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 0x7351393e drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74e5b3f2 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x773fc1af drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77ad5fad drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7979bc48 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1755d1 drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7ce9ac25 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e5cd223 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7eb27033 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7efbec46 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x83215722 drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x887f7e0b drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x89265c0e drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8bbc40fa drm_lock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8fa443fc drm_get_resource_start +EXPORT_SYMBOL drivers/gpu/drm/drm 0x93e419d5 drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x954272a5 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9700758d drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x984731dc drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x989c4608 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9a49af93 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b6a0754 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f9bbbd6 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1c62af9 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4b6cdbe drm_gem_handle_create +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 0xaa38315c drm_i_have_hw_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad36dc2a drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad3d4993 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae740999 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb108f598 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2a8b59e drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2b662c0 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5fb8315 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba709df2 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbb474796 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf7cc768 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbfb51c8f drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc05774e5 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc094b7ef drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc28afedb drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc299ca45 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc2abc198 drm_sg_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6794f16 drm_core_get_map_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc98a5108 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc99c39eb drm_mode_create +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 0xd08fa3f0 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0a0a3db drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2969501 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3c53167 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4639ab7 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd6dc6103 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdac9481d drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdef17a6c drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf43a104 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe228395f drm_get_dev +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 0xe62feff8 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe759411e drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe87ae3fc drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8f0fa71 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeaf585bf drm_mode_config_init +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 0xf2fc6b57 drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4112f9b drm_get_drawable_info +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 0xf64cc753 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf70bc8b3 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfaa2bb49 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd8c4e7e drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xff080b0b drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x038b921f drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0b2d8ff3 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x26d1057e drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x29cdf57d drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3036021e drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x546f535d drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x653af4f7 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x678de8d6 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x697c5aca drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6e935e2a drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7579129d drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7cb80fcc drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7e83da62 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x822d5137 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9845b710 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9bbc6beb drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbd94c72d drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc2321f10 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 0xc7a31e94 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd17c846c drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd4ec86a6 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xda00044b drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xda59443d i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xec68c7c3 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xefaa1e89 drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf2c71dd6 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfc5f5eb2 drm_kms_helper_poll_fini +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 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 0x5ce77774 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x89ec0c6a rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 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 0x175a1051 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1a6c8b9a rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2664cda8 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x29d816d7 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x429056ef rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4effb321 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5f2326c2 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x64fcc786 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x67d498af rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x805d1fc5 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa0aed64a rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb72dc94d rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd34adc13 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd9788c8e rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe78b2629 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xecfa989f rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf4c09705 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfb2e9195 rdma_set_service_type +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 0x150436f1 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x6a5650bf mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xa2816a83 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xd31ff807 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x6b34d25a mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xbe97d10e 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 0xa1bb721c register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xc32e73c8 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xd1439692 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 0x020bd4e6 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x02e528a2 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0440d21b recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x08bc68ba recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x097e8151 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0a1fde63 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0b7b6580 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x22c21495 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x278ebc9e mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b6385aa mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2d72a75d recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x37eee51a mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ef163b9 mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x45bc1b20 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4db2e3d1 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5103459a queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x63af9279 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6f574805 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x73e0f284 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x76cf0f4e get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x88e3b276 confirm_Bsend +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8b8e8b57 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x94c3e201 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc412b211 mISDN_register_Bprotocol +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 0xe253f888 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xed930612 mISDN_freebchannel +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 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 0x6ad1b540 dib7000p_i2c_enumeration +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 0xdfec5ff3 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xea9fb798 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xfa573b3d dib7000p_get_i2c_master +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 0x02ce6021 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x03761781 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1a849338 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3ce8ef2c mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x49d46eab mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4b9dea15 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4e059996 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x62a2349d mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6d984f61 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x705249e1 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x86f1f673 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8775b076 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x91b426e0 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9d765dc0 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9deafb25 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa70b113a mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb5903172 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb71dbba1 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb99723f9 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 0xca85c175 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcbdc5d66 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcc2847ef mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xce66a310 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd607d811 mpt_get_msg_frame +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 0xde856f29 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe4e89bc7 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe61aa28d mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf17d97bb mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfb157572 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0f9c9f47 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x21f1af69 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2810296c mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2a1b0be0 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x337aef01 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4328b10b mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4464712c mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x59866f7d mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6382f717 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x640f9828 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x736e3d1e mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x74d19514 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x76e24851 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7baf2dcf mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7ebe1a7a mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x874f0611 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8e56fc7e mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa0dff460 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa401e9ce mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa6980f22 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc1523a7b mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc87fc29b mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdbdb8114 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xed229c8c mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xef7f0efb mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf1c641fd mptscsih_bus_reset +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 0x7b879334 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 0xcebe7e30 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x 0x1080247a bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cnic 0xa21dbd21 cnic_register_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x0bbf3851 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2d5301e7 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x408e4d0f cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x43accabf t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x62e437d4 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x801496b0 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8233af18 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8f2737a1 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x94fb9254 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb275c71c cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb67c0f1f cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc8ad5e1c cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe2fe1948 cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe962e16a t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf2163276 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf97cd84f cxgb3_insert_tid +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 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 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 0xb6c4bfae cxgb4_ofld_send +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 0xfced84dd cxgb4_pktgl_to_skb +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 0xb5a34c8e pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0xc4ff48c1 register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xe64b33b3 pppox_ioctl +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 0x10c78988 z8530_dead_port +EXPORT_SYMBOL drivers/net/wan/z85230 0x1f1b7bf6 z8530_sync_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x213abac6 z8530_interrupt +EXPORT_SYMBOL drivers/net/wan/z85230 0x239ca536 z8530_sync_dma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x35f3aef7 z8530_null_rx +EXPORT_SYMBOL drivers/net/wan/z85230 0x5cd24d29 z8530_hdlc_kilostream +EXPORT_SYMBOL drivers/net/wan/z85230 0x627b1af0 z8530_channel_load +EXPORT_SYMBOL drivers/net/wan/z85230 0x7ea22f7d z8530_sync +EXPORT_SYMBOL drivers/net/wan/z85230 0x94b2e9e0 z8530_sync_dma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x9d75cf7e z8530_nop +EXPORT_SYMBOL drivers/net/wan/z85230 0xa4dfd0ee z8530_shutdown +EXPORT_SYMBOL drivers/net/wan/z85230 0xaa018385 z8530_queue_xmit +EXPORT_SYMBOL drivers/net/wan/z85230 0xc85496bf z8530_sync_txdma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0xd7c3b9f5 z8530_sync_close +EXPORT_SYMBOL drivers/net/wan/z85230 0xd8140f2c z8530_sync_txdma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0xe3d80064 z8530_hdlc_kilostream_85230 +EXPORT_SYMBOL drivers/net/wan/z85230 0xf41570ca z8530_describe +EXPORT_SYMBOL drivers/net/wan/z85230 0xfa940af3 z8530_init +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 0x0f30bde2 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x16194d03 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x231a5bb8 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3a4dd533 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x44883f79 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4c0a648c libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4d0d4da1 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4fc67d35 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x51c9ed72 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x62c67428 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6b671be6 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7c73fe7a libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7d9f4262 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8e8152dc libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xadaad650 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc91950b3 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdd55e77a libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdf626d74 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe7182287 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfe3b4c3b libipw_get_geo +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 0x76aff54f NCR_700_release +EXPORT_SYMBOL drivers/scsi/53c700 0xd75db5e8 NCR_700_detect +EXPORT_SYMBOL drivers/scsi/53c700 0xf13d9adc NCR_700_intr +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x03407108 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x05a7d79e fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x281dec49 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x43e69340 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x840ac069 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x8cb7e823 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9468bdb0 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0201290c fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0665aacd fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0ec1322f fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x102c14c5 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x141623be fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x17b73cef fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1996c000 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1c154fe4 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x21779bd7 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x25499eb0 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x25f48dd2 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x27dd121a fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x32650876 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x35af98d6 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3cd366aa libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4afcb07b fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4d9cfdd7 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x515d6214 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x55bb3edc fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6c4a1edb fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6f7a909b fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x76e20348 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7c5e18da fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7cfd96b0 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7d66d7bc fc_exch_mgr_add +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 0xa2d24206 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa4b1393e fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbbc1f3a9 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbf2042e7 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb3bf547 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcce75d37 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcf785b20 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd2272f71 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdb1a2201 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe06052be fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xef06f4ca fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf26bb5e0 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf869a3bf fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfa197895 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfa85659c fc_set_rport_loss_tmo +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 0x05f805ff osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1f91b3bb osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2791c62a osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2be9c786 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2cd4bc50 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2d4af084 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2f7d4805 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x36a43ea0 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3839e137 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3a34e1e1 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3b142b72 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4b313ebb osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4d4e9cd4 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5b873c35 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x635de094 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7248cc28 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x74e1345b osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7b313d27 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x85241f4e osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x854dd33e osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8c07c658 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8da8fc8f osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8e334e05 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa2bacdcd osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xab8299f1 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xafcea95d osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb6f78966 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd27a3c32 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdf0a6d28 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe9602946 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf846a475 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfe2f757c osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/osd 0x09f5d04b osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x22ba32bb osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0x33948a6d osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x3d6174df osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0xb62d7165 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xf408e9b4 osduld_register_test +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3ea5af3f qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x4b04679a qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x4bad87be qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x8dd61cee qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xa97b4127 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xc4629e7a 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/raid_class 0x0015be4d raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0x016603a7 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xed22f3de raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0119c515 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0d068db9 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x17ad8281 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1de72a5c fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x25ed08a7 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2905a927 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4af85483 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4e4fe259 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x63747496 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x74b52717 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb40156be fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc884d5b6 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf751892c scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x08f56192 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1c72de49 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1c78ca33 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4294b42a sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x45bca46e sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6a004826 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6be00303 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7c2ecfe7 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7ce62b38 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8b1c5f84 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9a1680c9 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9a834faf sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa58c0853 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa7e393bc sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaa14b694 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaab1f1a5 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbdb30687 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbfa4d00d sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc26f77cd sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc599d133 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xeacb81e0 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xec25c7eb scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf09a5c0a scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf8c594d4 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfccb93e3 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfd410c54 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x331c61d6 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x57033ebb spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x8ddb463d spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xb2a308c7 spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xc3781582 spi_dv_device +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 0x1f29830a ieee80211_rx_mgt_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 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 0x68828423 ieee80211_txb_free_rsl +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 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 0xd6ba00d0 ieee80211_rx_rsl +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 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 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 0x101adce9 vme_new_dma_list +EXPORT_SYMBOL drivers/staging/vme/vme 0x1963ee5c vme_unregister_bridge +EXPORT_SYMBOL drivers/staging/vme/vme 0x1db385ab vme_dma_list_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x251b9ed8 vme_slave_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x25f4aad4 vme_bus_type +EXPORT_SYMBOL drivers/staging/vme/vme 0x2e9f7f6e vme_dma_list_add +EXPORT_SYMBOL drivers/staging/vme/vme 0x38e320a7 vme_register_driver +EXPORT_SYMBOL drivers/staging/vme/vme 0x3d1af350 vme_dma_pci_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf vme_lm_set +EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/staging/vme/vme 0x5b79851c vme_irq_generate +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 0x7797a741 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0x7bdad0d4 vme_master_request +EXPORT_SYMBOL drivers/staging/vme/vme 0x7c1ff1af vme_slot_get +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 0x88ce3c67 vme_irq_handler +EXPORT_SYMBOL drivers/staging/vme/vme 0x898d72da 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 0xb29cb652 vme_slave_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xb3b4ca1e vme_irq_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xc6934c8c vme_irq_free +EXPORT_SYMBOL drivers/staging/vme/vme 0xc8352002 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xccbcf12d vme_register_bridge +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 0xe4278903 vme_unregister_driver +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 0xea77da6c vme_dma_request +EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute +EXPORT_SYMBOL drivers/staging/vme/vme 0xed88964f vme_dma_list_exec +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 0x02ec9a47 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x080c7fc5 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x17974903 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x30fc9616 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x399f16cd usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x638493a4 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x77645b75 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8d0b70b7 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb175b0ba usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xbb6332c9 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd635376d usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xeac7cd2a usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xee7bb198 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xef4af6b3 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x3ef01f38 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x898003e5 usb_serial_suspend +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 0x5ec35a76 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x83f786bf w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xf91eb23e w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0xfe0c958c 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 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 0x1b8c15c4 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x3fb433be atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x4dd41825 atrtr_get_dev +EXPORT_SYMBOL net/atm/atm 0x28660ac9 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x77efb57a atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x7db4e70c atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x9c366bb0 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xae0c4b41 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0xbc4a3172 atm_charge +EXPORT_SYMBOL net/atm/atm 0xc26178db atm_proc_root +EXPORT_SYMBOL net/atm/atm 0xc950d8d0 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xdca8fa00 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xe201f843 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xf4f55ee5 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0xf5b976ff register_atm_ioctl +EXPORT_SYMBOL net/ax25/ax25 0x08311dde ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x0e02fd2d ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x308c81e2 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x4ea412e6 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x569a1f9d ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x79d23227 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x8abf6970 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xa0e6211b ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0xa314f878 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/bluetooth/bluetooth 0x053c197e hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0997998b hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x138c6eb5 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1e7f736a bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2005ce1b hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x33bd541f bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x33ca072d bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3c6ebd4c hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4264bc72 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4e738951 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x55cb3b7a bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5780d461 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x61d265a3 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x653d7e78 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6661fd47 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6701baae hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x698b6436 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8c9a2502 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x932c2b46 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9c2679c3 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa00ddfba hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb1086c57 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb135d982 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbfa2dc86 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc8b66ef3 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd3bd8afe hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd8638921 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe57f8799 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf4efa7c3 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfae68472 hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfcc4dcd9 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xffd13eac hci_get_route +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0xc7424d62 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x38817d8e ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x8213cdec ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xc5c9fa72 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 0x78ec7fff can_proto_unregister +EXPORT_SYMBOL net/can/can 0xa3149822 can_send +EXPORT_SYMBOL net/can/can 0xb19d0a8a can_proto_register +EXPORT_SYMBOL net/can/can 0xdd570e36 can_rx_register +EXPORT_SYMBOL net/can/can 0xfca7bde1 can_rx_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x0ac054c3 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x14abcd50 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x1dc37f22 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x23660b39 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x305b40af wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3cb02d2f ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5e8b2577 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x8a987676 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x91e463a6 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb884aa7f 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/ipv4/netfilter/arp_tables 0x32779d45 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x73387f3d arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xa4f3aeb9 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x4bc984cd ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x58d5767e ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x61715e60 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x43577a98 nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x4ef4242b nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa469278d nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xbd338017 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xcadc41e0 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf7a202c4 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xffc9a07e nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/tunnel4 0x7b734909 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xe5d026c2 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x01465a21 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x3f9554a3 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x40638454 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xef094bdd ip6t_do_table +EXPORT_SYMBOL net/ipv6/tunnel6 0xe11bdf7e xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0xe7459b89 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x176dde35 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x26390a4e xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xed37fc08 xfrm6_tunnel_spi_lookup +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 0x32c02c16 l2tp_tunnel_destruct +EXPORT_SYMBOL net/l2tp/l2tp_core 0x5e60405d l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x03bdf62b lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x2ebe540d lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x7b814f22 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x7c754b57 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x8a07b682 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x962d79a6 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0xc8e8d4eb lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0xe349fbc7 lapb_unregister +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 0x24ac8530 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2ffafc2e ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x336e1097 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3c2e8c18 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x57112bfa ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5a3b09a4 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7b79dd5c register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8a977e5c ip_vs_skb_replace +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb122ba91 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc2c3ea4e register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xda2db837 ip_vs_conn_out_get +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 0x2cb29295 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x37202f36 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x4666c339 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x508f2f74 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x5a9a11eb xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x67c5781a xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x95f19b16 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xbaa207ac xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xc54eb8cd xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xeb2ca0de xt_register_matches +EXPORT_SYMBOL net/phonet/phonet 0x225484a6 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x22bda8c3 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x4019ca3a pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x502eb572 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x52a198dc pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x60f997eb pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0xa6fa498e pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0xc0526d7d phonet_proto_unregister +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0b159b5c rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0f6bfd57 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x14b4e7b0 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2f06106b rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4128faab rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x476eddbb rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4ba79e9d rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4dfc9cc9 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa0c6e793 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa83ac3e8 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb79edd27 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xbc08e63d rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xcb0832c7 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xcb8a6393 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf0a7ab16 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/sunrpc/sunrpc 0xac1b23d4 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 0x0889ad99 wimax_reset +EXPORT_SYMBOL net/wimax/wimax 0x71ceb73a wimax_rfkill +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 0x38ca07ce cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x3cb8f7b0 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x3e694c6d cfg80211_send_rx_auth +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 0x9f456e7b ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xa4d708d4 __cfg80211_send_disassoc +EXPORT_SYMBOL net/wireless/cfg80211 0xa763c6a0 ieee80211_amsdu_to_8023s +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 0xac217b5e ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xb1b23a7c __ieee80211_get_channel +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 0xccc291b3 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xccff2862 ieee80211_data_from_8023 +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 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/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 0x09245bb5 dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x4ec6b43a dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x563e7088 dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x9e07e7c3 dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xe5464339 dm_mem_cache_client_destroy +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xff8d84e3 dm_mem_cache_free +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x000366ba ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x0024bd64 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x004bacaa dquot_scan_active +EXPORT_SYMBOL vmlinux 0x005da273 sock_wake_async +EXPORT_SYMBOL vmlinux 0x006b9145 rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00883f2d scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x008ff5f7 get_sb_ns +EXPORT_SYMBOL vmlinux 0x00ae1457 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x00bd9d31 add_timer +EXPORT_SYMBOL vmlinux 0x00c72ba5 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00f048d9 elv_register_queue +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 0x015840aa dst_discard +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x0196ab50 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x019bd3f9 kmap_high +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01ad1623 scsi_remove_target +EXPORT_SYMBOL vmlinux 0x01b70ef5 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x01e994a2 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x01f933be dquot_disable +EXPORT_SYMBOL vmlinux 0x01fb5103 vfs_readdir +EXPORT_SYMBOL vmlinux 0x01fd331f qdisc_list_del +EXPORT_SYMBOL vmlinux 0x02017da0 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x0233a3fd inode_init_owner +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x02415e18 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x02425937 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x025c3aea mca_device_transform_ioport +EXPORT_SYMBOL vmlinux 0x025c6f70 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +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 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x02f9386d devm_iounmap +EXPORT_SYMBOL vmlinux 0x030bc61e blk_requeue_request +EXPORT_SYMBOL vmlinux 0x03168f5d init_timer_key +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x0340d0e1 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0x034459ab pci_request_regions +EXPORT_SYMBOL vmlinux 0x03666f6f wireless_send_event +EXPORT_SYMBOL vmlinux 0x0368bb91 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x0373fe45 sock_create_lite +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 0x04004433 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x04153e09 sk_common_release +EXPORT_SYMBOL vmlinux 0x0419674c pnp_get_resource +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x042e9c5a vfs_writev +EXPORT_SYMBOL vmlinux 0x043c752b nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x046ceace xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04e2a843 generic_setlease +EXPORT_SYMBOL vmlinux 0x04f4c72e drop_super +EXPORT_SYMBOL vmlinux 0x0503a31e udplite_prot +EXPORT_SYMBOL vmlinux 0x051a64c7 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x05287929 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x052d3bac tty_name +EXPORT_SYMBOL vmlinux 0x0549164e mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x0554e608 __inet6_hash +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x05958cda redraw_screen +EXPORT_SYMBOL vmlinux 0x05e28d83 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x05ed42e1 end_page_writeback +EXPORT_SYMBOL vmlinux 0x05f873a5 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x061f8127 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x06335601 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x06731f50 journal_init_dev +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x0686cfcb alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0x06970be1 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x06a6a57b scsi_device_get +EXPORT_SYMBOL vmlinux 0x06ab60c0 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x06e93c05 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0713e23b pci_scan_slot +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x07366e9d sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x073876bc pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x073906fa ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x0758a15d xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x0760842a pneigh_lookup +EXPORT_SYMBOL vmlinux 0x07608604 acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x076ff95d open_by_devnum +EXPORT_SYMBOL vmlinux 0x07760c1b idr_get_new +EXPORT_SYMBOL vmlinux 0x077df33e ilookup +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b0efb0 __scm_destroy +EXPORT_SYMBOL vmlinux 0x07b67a3e padata_do_serial +EXPORT_SYMBOL vmlinux 0x07c027f5 ip_dev_find +EXPORT_SYMBOL vmlinux 0x07c7f027 unregister_filesystem +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 0x080bdf79 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x080cce23 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x0844ffb0 init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0x0849794b pnp_device_attach +EXPORT_SYMBOL vmlinux 0x084ead9a cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x087b20d3 padata_free +EXPORT_SYMBOL vmlinux 0x088a01dc dquot_operations +EXPORT_SYMBOL vmlinux 0x0899a7c2 bio_kmalloc +EXPORT_SYMBOL vmlinux 0x08a27b91 vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0x08a474cd try_to_release_page +EXPORT_SYMBOL vmlinux 0x08c87ca0 simple_link +EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x08fd36fd cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x0918e2b3 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x09251c28 scsi_register +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 0x096dd5df abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x09765ec6 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x097eff33 sock_no_poll +EXPORT_SYMBOL vmlinux 0x098a40ba ppp_channel_index +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +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 0x09f0565e page_symlink +EXPORT_SYMBOL vmlinux 0x09f20dda idr_init +EXPORT_SYMBOL vmlinux 0x0a1e5678 dst_alloc +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a24c679 bio_init +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a5a9a07 vfs_llseek +EXPORT_SYMBOL vmlinux 0x0a748027 register_cdrom +EXPORT_SYMBOL vmlinux 0x0a7df383 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x0a839d2e llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x0aa98580 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x0ac08231 ps2_drain +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ae7fdb3 elevator_exit +EXPORT_SYMBOL vmlinux 0x0aedc2f1 kill_litter_super +EXPORT_SYMBOL vmlinux 0x0b009cc6 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x0b09f2b8 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1523a3 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b25998f security_inode_init_security +EXPORT_SYMBOL vmlinux 0x0b30e6d0 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x0b5cf870 qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x0b719a33 bd_set_size +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b7ca0c2 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x0b8dad7b lro_receive_skb +EXPORT_SYMBOL vmlinux 0x0ba3d1c0 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x0badcae9 __elv_add_request +EXPORT_SYMBOL vmlinux 0x0bbf5adb irq_stat +EXPORT_SYMBOL vmlinux 0x0bd9b6fe dma_ops +EXPORT_SYMBOL vmlinux 0x0beb30da dm_dirty_log_type_register +EXPORT_SYMBOL vmlinux 0x0bfb766d tty_port_init +EXPORT_SYMBOL vmlinux 0x0c12ff8b mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x0c1f4264 generic_read_dir +EXPORT_SYMBOL vmlinux 0x0c262d32 lookup_bdev +EXPORT_SYMBOL vmlinux 0x0c4969c5 pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x0c616fb8 poll_initwait +EXPORT_SYMBOL vmlinux 0x0c631502 mpage_writepages +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 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cc7f956 edac_mce_register +EXPORT_SYMBOL vmlinux 0x0ce2ab5b blk_rq_init +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d4370f4 path_is_under +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d5803eb mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x0d64e392 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0db5d2bd netif_carrier_off +EXPORT_SYMBOL vmlinux 0x0dbc3b97 mntput_no_expire +EXPORT_SYMBOL vmlinux 0x0de8d85e eisa_driver_register +EXPORT_SYMBOL vmlinux 0x0df86379 read_cache_pages +EXPORT_SYMBOL vmlinux 0x0df970d1 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x0e040849 phy_disable_interrupts +EXPORT_SYMBOL vmlinux 0x0e14a94b ps2_cmd_aborted +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 0x0e3cd38e pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e5e6719 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x0e75663a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x0ea10976 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x0eeb8bb0 block_read_full_page +EXPORT_SYMBOL vmlinux 0x0f1e8ffc dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x0f33b1cf netpoll_setup +EXPORT_SYMBOL vmlinux 0x0f38dec5 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x0f453fd4 unbind_con_driver +EXPORT_SYMBOL vmlinux 0x0f65ef78 blk_run_queue +EXPORT_SYMBOL vmlinux 0x0f7cadd1 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x0f93d170 dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x0fac4c69 udp_poll +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb084b0 generic_getxattr +EXPORT_SYMBOL vmlinux 0x0fb83daf sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x102c56de irq_regs +EXPORT_SYMBOL vmlinux 0x105a6e30 nf_reinject +EXPORT_SYMBOL vmlinux 0x1069d2e2 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x106a72b2 vfs_mknod +EXPORT_SYMBOL vmlinux 0x107e2f2c bdget_disk +EXPORT_SYMBOL vmlinux 0x1088226d nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x108b3fdc dquot_quota_on_path +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 0x10b2113f xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x10c9cbca scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x10d80764 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10eda741 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f2a89d scm_detach_fds +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x11343afd d_move +EXPORT_SYMBOL vmlinux 0x114d6f14 set_bh_page +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 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11aa6c61 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x11ad3ff7 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x11b05407 arp_broken_ops +EXPORT_SYMBOL vmlinux 0x11b9f04f vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0x11f301ef do_splice_from +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x12330072 poll_freewait +EXPORT_SYMBOL vmlinux 0x12360b79 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x12617931 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x12cd5174 vfs_read +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12e43a2b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x12e54ad6 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x13163355 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x133c9865 find_vma +EXPORT_SYMBOL vmlinux 0x133cade5 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x1344fcb2 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x1378e714 acpi_video_display_switch_support +EXPORT_SYMBOL vmlinux 0x137af32f sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x1398c5bb jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x139a7dc7 generic_delete_inode +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 0x13e7d276 dw_spi_resume_host +EXPORT_SYMBOL vmlinux 0x13ebaa59 release_sock +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x13ffa458 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x14238721 km_policy_expired +EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x1436917d down_write +EXPORT_SYMBOL vmlinux 0x146f5989 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x149acf24 __bforget +EXPORT_SYMBOL vmlinux 0x14b9dd34 slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x14bf9a0b generic_show_options +EXPORT_SYMBOL vmlinux 0x14ccf7a3 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x14ce0ed4 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x14cf95d6 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x14dd0795 nf_log_packet +EXPORT_SYMBOL vmlinux 0x1501a069 nobh_write_end +EXPORT_SYMBOL vmlinux 0x153c9ed4 __register_chrdev +EXPORT_SYMBOL vmlinux 0x15494597 blk_complete_request +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x1564b705 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x15736118 register_key_type +EXPORT_SYMBOL vmlinux 0x15826cf3 scsi_execute_req +EXPORT_SYMBOL vmlinux 0x1585d78f call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x1590f428 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x159be93f __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x15d8c8aa edac_mce_unregister +EXPORT_SYMBOL vmlinux 0x15de6bb8 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x15fc4ca9 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x162f9559 tty_set_operations +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x163660ce load_nls +EXPORT_SYMBOL vmlinux 0x16592094 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x16727b3d page_follow_link_light +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x167f65bf sock_recvmsg +EXPORT_SYMBOL vmlinux 0x1680cc6d xfrm_input +EXPORT_SYMBOL vmlinux 0x16b018f9 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x16dd3d63 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x16ef4d80 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x16f594e1 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0x16fd377b tcf_hash_create +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x1755634f nf_setsockopt +EXPORT_SYMBOL vmlinux 0x17689bc6 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x178aabdd jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x17bad4a6 nobh_writepage +EXPORT_SYMBOL vmlinux 0x17c447b8 inode_change_ok +EXPORT_SYMBOL vmlinux 0x17dd76c1 sk_free +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x1820e7ca tty_unthrottle +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x18698044 simple_readpage +EXPORT_SYMBOL vmlinux 0x1869849e sock_map_fd +EXPORT_SYMBOL vmlinux 0x18770b4a shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x18793c51 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x18a21bdb register_exec_domain +EXPORT_SYMBOL vmlinux 0x18b43c1f dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x18cec292 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x1947e3cf kmem_cache_create +EXPORT_SYMBOL vmlinux 0x19664d73 vfs_create +EXPORT_SYMBOL vmlinux 0x19679c3b xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x1990ca0a neigh_connected_output +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19b6097a xfrm_init_state +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 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a7259ec sync_inode +EXPORT_SYMBOL vmlinux 0x1a8a845e idle_nomwait +EXPORT_SYMBOL vmlinux 0x1a925a66 down +EXPORT_SYMBOL vmlinux 0x1a9670ed mmc_add_host +EXPORT_SYMBOL vmlinux 0x1a9be522 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ae8a1fa copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x1aed7b06 noop_llseek +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b13f394 idr_pre_get +EXPORT_SYMBOL vmlinux 0x1b2eedc9 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b75f1d4 vfs_unlink +EXPORT_SYMBOL vmlinux 0x1b7d1f48 no_llseek +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bb2bacd mdiobus_free +EXPORT_SYMBOL vmlinux 0x1bebaa3e lease_get_mtime +EXPORT_SYMBOL vmlinux 0x1bf7a344 clear_page_dirty_for_io +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 0x1c377a7e dquot_release +EXPORT_SYMBOL vmlinux 0x1c651902 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1cb0b3d6 kdb_current_task +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1ce2c66e lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x1cf21912 serial8250_register_port +EXPORT_SYMBOL vmlinux 0x1d049ef8 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x1d1d4fed blk_put_request +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d2f4866 ip6_route_output +EXPORT_SYMBOL vmlinux 0x1d30b7dc vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x1d33ff5d max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x1d524fb8 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x1d5ec6c6 key_alloc +EXPORT_SYMBOL vmlinux 0x1da5c835 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x1dc0943a acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x1dc1784b sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1e036c98 acpi_set_gpe +EXPORT_SYMBOL vmlinux 0x1e4c6c65 default_file_splice_read +EXPORT_SYMBOL vmlinux 0x1e690c3c igrab +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e9a5780 get_phy_device +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ea11c41 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x1ec269be vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0x1eedb6e7 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f048792 d_rehash +EXPORT_SYMBOL vmlinux 0x1f39dfdd __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x1f4fa8dc dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x1f7bb91e xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x1f8db533 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x1fa6a8d7 inet_ioctl +EXPORT_SYMBOL vmlinux 0x1fcfc543 acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fe4806a inet6_release +EXPORT_SYMBOL vmlinux 0x1ff69dd8 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x203c11fb netif_receive_skb +EXPORT_SYMBOL vmlinux 0x206244aa thermal_zone_device_register +EXPORT_SYMBOL vmlinux 0x20643432 page_put_link +EXPORT_SYMBOL vmlinux 0x207331f9 seq_puts +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x207c95b9 key_type_keyring +EXPORT_SYMBOL vmlinux 0x207fb377 pci_request_region +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x208df2f5 ps2_init +EXPORT_SYMBOL vmlinux 0x20ea60a5 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x20eb471d abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x2118c06e tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x215d2e91 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x2173e784 audit_log_format +EXPORT_SYMBOL vmlinux 0x21af48bc skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x21d96478 console_stop +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21e5cc24 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x21e71962 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x21e98179 vm_map_ram +EXPORT_SYMBOL vmlinux 0x22095ab5 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x22302584 generic_file_aio_write +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 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22a30b21 fasync_helper +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22ca1239 dqput +EXPORT_SYMBOL vmlinux 0x22cee77f bio_integrity_split +EXPORT_SYMBOL vmlinux 0x2316dfd9 dev_add_pack +EXPORT_SYMBOL vmlinux 0x231c5f4c kernel_read +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 0x2371c1eb input_unregister_handler +EXPORT_SYMBOL vmlinux 0x23841669 phy_stop +EXPORT_SYMBOL vmlinux 0x238eab2a tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x238fdccf unregister_8022_client +EXPORT_SYMBOL vmlinux 0x23900df5 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x239de2d2 do_sync_write +EXPORT_SYMBOL vmlinux 0x23bfb12e rfkill_alloc +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23c9ac63 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x23d51987 d_splice_alias +EXPORT_SYMBOL vmlinux 0x23dc288f __seq_open_private +EXPORT_SYMBOL vmlinux 0x23f929f8 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x241760d3 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x243b28cb tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2453188c dev_get_stats +EXPORT_SYMBOL vmlinux 0x2453964a pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x24605462 dev_open +EXPORT_SYMBOL vmlinux 0x24703ba7 seq_open_private +EXPORT_SYMBOL vmlinux 0x2470709b blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x24a1e8f3 kernel_listen +EXPORT_SYMBOL vmlinux 0x24c3f49f posix_acl_permission +EXPORT_SYMBOL vmlinux 0x24d0aed6 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x24ddd89a __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x24e82ce0 padata_add_cpu +EXPORT_SYMBOL vmlinux 0x24ec86a9 vfs_readv +EXPORT_SYMBOL vmlinux 0x24fbf7c8 scsi_get_command +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 0x25490cfa dev_set_mtu +EXPORT_SYMBOL vmlinux 0x25536073 skb_split +EXPORT_SYMBOL vmlinux 0x256041aa scsi_unregister +EXPORT_SYMBOL vmlinux 0x257f6860 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25957f3c kmem_cache_alloc_notrace +EXPORT_SYMBOL vmlinux 0x25a6c701 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x25bbc638 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x25d81960 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x2614715c blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x2615a8aa acpi_bus_add +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 0x26a0e949 tcf_action_exec +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 0x273d0360 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x2742a886 mmc_free_host +EXPORT_SYMBOL vmlinux 0x2768c292 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x2769bb50 dw_spi_remove_host +EXPORT_SYMBOL vmlinux 0x2781cd6e gen_pool_add +EXPORT_SYMBOL vmlinux 0x2784d3d3 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x27b3dd3d phy_attach +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic +EXPORT_SYMBOL vmlinux 0x27f936ca deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x28184b03 pnp_possible_config +EXPORT_SYMBOL vmlinux 0x281f9427 bio_copy_user +EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll +EXPORT_SYMBOL vmlinux 0x28602080 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x28733228 journal_update_format +EXPORT_SYMBOL vmlinux 0x288d6e1a tcf_register_action +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28b28f9f ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0x28b715a6 isapnp_cfg_end +EXPORT_SYMBOL vmlinux 0x28c926c0 __lock_page +EXPORT_SYMBOL vmlinux 0x28ce1134 generic_write_end +EXPORT_SYMBOL vmlinux 0x28e633b6 set_trace_device +EXPORT_SYMBOL vmlinux 0x28e8f08e key_link +EXPORT_SYMBOL vmlinux 0x28eec158 generic_setattr +EXPORT_SYMBOL vmlinux 0x28f3a2d5 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x28ff1eeb proc_net_netfilter +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 0x29603cd7 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x296237ef sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x297cf985 serio_close +EXPORT_SYMBOL vmlinux 0x29b1c366 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29c29d11 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x29c62738 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x29dc30fa soft_cursor +EXPORT_SYMBOL vmlinux 0x29e41c55 rtc_dev_update_irq_enable_emul +EXPORT_SYMBOL vmlinux 0x29e5d5b4 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x2a09c97b setup_new_exec +EXPORT_SYMBOL vmlinux 0x2a2285ec _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a421672 __lock_buffer +EXPORT_SYMBOL vmlinux 0x2a4ef7ab rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x2a4fa496 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x2a67698f pnp_find_card +EXPORT_SYMBOL vmlinux 0x2a8a7933 bmap +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2ab089dc slow_work_register_user +EXPORT_SYMBOL vmlinux 0x2ac7c265 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x2acedb88 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x2ad50f33 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x2af07e9b vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x2af5fe94 uart_resume_port +EXPORT_SYMBOL vmlinux 0x2b03b68f wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b1c1bfc jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x2b3724b9 sock_update_classid +EXPORT_SYMBOL vmlinux 0x2b8e8553 kset_register +EXPORT_SYMBOL vmlinux 0x2b90359e mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba6b89f alloc_disk_node +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bc95bd4 memset +EXPORT_SYMBOL vmlinux 0x2be0101d xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x2bfaf7e2 blkdev_put +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c2a4ad4 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x2c86b261 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x2c9170d3 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x2ca80eba register_console +EXPORT_SYMBOL vmlinux 0x2cd75a9e dquot_commit +EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic +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 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d8ab17e pci_get_subsys +EXPORT_SYMBOL vmlinux 0x2db17db4 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x2dccb6e7 file_fsync +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2de32ca8 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2e15dae7 journal_start +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e4731d2 file_permission +EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x2e60bace memcpy +EXPORT_SYMBOL vmlinux 0x2e7f4c3a netdev_state_change +EXPORT_SYMBOL vmlinux 0x2e85c61b xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x2e8b25fb scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x2e98924e inet_csk_accept +EXPORT_SYMBOL vmlinux 0x2ee38e2d tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x2eea3dad elv_abort_queue +EXPORT_SYMBOL vmlinux 0x2f0a941a scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f961f01 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x2fb278b2 sg_miter_stop +EXPORT_SYMBOL vmlinux 0x2fce3266 security_path_mkdir +EXPORT_SYMBOL vmlinux 0x2fe45df7 lease_modify +EXPORT_SYMBOL vmlinux 0x2feb7568 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x2ff03d2e pnpbios_protocol +EXPORT_SYMBOL vmlinux 0x2ff1791a inet_getname +EXPORT_SYMBOL vmlinux 0x2ff438e9 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x30224d6d locks_remove_posix +EXPORT_SYMBOL vmlinux 0x302fb554 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x3063fd59 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x308ad176 bd_release +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 0x30fc1fa4 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x31150687 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x312b83d8 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x3144f916 dm_exception_store_destroy +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3161ff7d bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31b278c3 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0x31d0d94b d_path +EXPORT_SYMBOL vmlinux 0x31d55603 eth_change_mtu +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x3218a5cf tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x323e2680 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x32537766 read_cache_page_async +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 0x32c9b021 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x32ca9939 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x330e98e3 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x33186bac dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x335e05e6 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x33763d38 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x3391e2c4 hippi_change_mtu +EXPORT_SYMBOL vmlinux 0x33eff74d fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x340ea0d3 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x3411142f tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x3417ae89 cont_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x342f60fe apm_info +EXPORT_SYMBOL vmlinux 0x34424e10 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x344318e1 scsi_finish_command +EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long +EXPORT_SYMBOL vmlinux 0x345d7ff1 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x345da297 tty_port_close +EXPORT_SYMBOL vmlinux 0x3488a886 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34a0ae26 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x34aedd39 tcp_check_req +EXPORT_SYMBOL vmlinux 0x34b96002 fb_is_primary_device +EXPORT_SYMBOL vmlinux 0x34bbe72f dquot_commit_info +EXPORT_SYMBOL vmlinux 0x34c265bf atomic64_dec_if_positive_cx8 +EXPORT_SYMBOL vmlinux 0x34cedb40 i2c_use_client +EXPORT_SYMBOL vmlinux 0x34d58f48 iput +EXPORT_SYMBOL vmlinux 0x3508bd98 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x353ca2b3 acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x3552905b skb_copy +EXPORT_SYMBOL vmlinux 0x35564122 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x3586bdc4 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x35a63315 md_error +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35da2e61 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x361ded9d security_d_instantiate +EXPORT_SYMBOL vmlinux 0x362ef408 _copy_from_user +EXPORT_SYMBOL vmlinux 0x365deac4 ip_fragment +EXPORT_SYMBOL vmlinux 0x366fe18b simple_empty +EXPORT_SYMBOL vmlinux 0x36a8a014 pcim_iomap +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 0x371ccd24 search_binary_handler +EXPORT_SYMBOL vmlinux 0x372819cd cont_write_begin +EXPORT_SYMBOL vmlinux 0x372ab5af k8_northbridges +EXPORT_SYMBOL vmlinux 0x37354914 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x3743f1b7 ppp_input_error +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf +EXPORT_SYMBOL vmlinux 0x3774c514 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x377a3105 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x378d7a20 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x37a3c51a update_region +EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37ca7619 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x37cb232a __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x37d75a07 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37e703a5 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +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 0x38344f94 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x384e03a5 deactivate_super +EXPORT_SYMBOL vmlinux 0x38551568 idr_for_each +EXPORT_SYMBOL vmlinux 0x387ab17c dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x388799f6 unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x389bca7b nf_log_unregister +EXPORT_SYMBOL vmlinux 0x389dc3a6 netpoll_poll +EXPORT_SYMBOL vmlinux 0x38aa7d58 rwsem_wake +EXPORT_SYMBOL vmlinux 0x38ade9a8 registered_fb +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38df353b xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x38e329d7 dm_io_client_create +EXPORT_SYMBOL vmlinux 0x38e6e872 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x3912f94b scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x392a403b pnp_device_detach +EXPORT_SYMBOL vmlinux 0x39553cfe xfrm_register_type +EXPORT_SYMBOL vmlinux 0x396334de neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x397c3f2b __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x398382f4 audit_log_start +EXPORT_SYMBOL vmlinux 0x39b022e5 mca_register_driver +EXPORT_SYMBOL vmlinux 0x39bb4aa8 generic_permission +EXPORT_SYMBOL vmlinux 0x39d25ad4 skb_trim +EXPORT_SYMBOL vmlinux 0x3a027aa1 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x3a080586 x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0x3a0abe9e module_refcount +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a4fc32d simple_lookup +EXPORT_SYMBOL vmlinux 0x3a5265af i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x3a7173ac complete_all +EXPORT_SYMBOL vmlinux 0x3a997369 pci_save_state +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3a9ff563 cdev_init +EXPORT_SYMBOL vmlinux 0x3ad7afe0 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x3ae35686 module_put +EXPORT_SYMBOL vmlinux 0x3af98f9e ioremap_nocache +EXPORT_SYMBOL vmlinux 0x3b0355cb pci_fixup_device +EXPORT_SYMBOL vmlinux 0x3b036b3e task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x3b071470 kill_block_super +EXPORT_SYMBOL vmlinux 0x3b25f32e mdiobus_read +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b416025 inet_frags_init +EXPORT_SYMBOL vmlinux 0x3b4f0df2 seq_bitmap +EXPORT_SYMBOL vmlinux 0x3b622328 kobject_get +EXPORT_SYMBOL vmlinux 0x3b7a2889 input_set_keycode_big +EXPORT_SYMBOL vmlinux 0x3b7cbfbf jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x3b88a81e flush_old_exec +EXPORT_SYMBOL vmlinux 0x3b8a7a1f mpage_readpage +EXPORT_SYMBOL vmlinux 0x3bca1a65 fput +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3c13e6b8 tcp_connect +EXPORT_SYMBOL vmlinux 0x3c1dee88 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x3c1e2d17 pci_get_device +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c56a0b2 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x3c5798db input_register_device +EXPORT_SYMBOL vmlinux 0x3c7a9d6c __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0x3c91c1e0 thaw_super +EXPORT_SYMBOL vmlinux 0x3c9c4ed6 bioset_create +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3c9d5632 dquot_destroy +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 0x3d348ad8 dev_load +EXPORT_SYMBOL vmlinux 0x3d466bdc pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x3d53df2e inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x3d605d5d textsearch_register +EXPORT_SYMBOL vmlinux 0x3d672ba3 send_sig +EXPORT_SYMBOL vmlinux 0x3d7bd9d5 mnt_unpin +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 0x3db34f97 page_readlink +EXPORT_SYMBOL vmlinux 0x3dbe6493 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x3ddd2f2f scsi_init_io +EXPORT_SYMBOL vmlinux 0x3de357af __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x3dee8221 slow_work_unregister_user +EXPORT_SYMBOL vmlinux 0x3df129b7 tcf_generic_walker +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 0x3e1d9e18 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e396429 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x3e3dee77 neigh_update +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e51ad84 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x3e82b70e ps2_end_command +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ee38d1c sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x3ee8b29e pv_cpu_ops +EXPORT_SYMBOL vmlinux 0x3ef47d1d unregister_netdevice_queue +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 0x3f60d579 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x3f622645 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x3faab1ee journal_ack_err +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ff9a007 simple_fill_super +EXPORT_SYMBOL vmlinux 0x402675f3 acpi_device_hid +EXPORT_SYMBOL vmlinux 0x402f2046 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x405ded91 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x4081f304 dev_gro_receive +EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a02234 inet6_getname +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 0x41344088 param_get_charp +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414e650c journal_release_buffer +EXPORT_SYMBOL vmlinux 0x415f0c63 skb_tx_hash +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x416a1c4c xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x416d8281 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x4185cf4b radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x419811e3 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x41a96b0e inet_sendmsg +EXPORT_SYMBOL vmlinux 0x41af4bf6 iunique +EXPORT_SYMBOL vmlinux 0x41b73818 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x41e1625d bdi_register_dev +EXPORT_SYMBOL vmlinux 0x41e641e2 skb_put +EXPORT_SYMBOL vmlinux 0x41f1b43b i8253_lock +EXPORT_SYMBOL vmlinux 0x41f4ec3e blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x41f71639 devm_free_irq +EXPORT_SYMBOL vmlinux 0x41fbb202 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x4203168a iget5_locked +EXPORT_SYMBOL vmlinux 0x420a6ab8 up_write +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x421a0cc9 page_address +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +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 0x425e4c67 generic_write_checks +EXPORT_SYMBOL vmlinux 0x427e0e0b module_layout +EXPORT_SYMBOL vmlinux 0x4281857e generic_removexattr +EXPORT_SYMBOL vmlinux 0x42920261 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x4292364c schedule +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x4299c48d acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0x429e7aff cdrom_open +EXPORT_SYMBOL vmlinux 0x42ba3792 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x42bf1d4a jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x42c0ab31 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x42d8a292 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43051627 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x434aac87 input_event +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x43552412 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x4364d91c tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x436555da get_sb_nodev +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x43967b65 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x439a9454 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get +EXPORT_SYMBOL vmlinux 0x43b36d6e qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x43d54fdd gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x4429e4a4 eth_header_cache +EXPORT_SYMBOL vmlinux 0x44314efb radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x444282b7 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x447e2fe7 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x44a18ca7 elv_rb_add +EXPORT_SYMBOL vmlinux 0x44a316c8 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44bc7a92 blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x454c817a netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x45612c2a skb_free_datagram +EXPORT_SYMBOL vmlinux 0x45712ce1 security_path_link +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 0x45a0901d __rta_fill +EXPORT_SYMBOL vmlinux 0x45a1a8b2 delayed_slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x45a30ebd kmalloc_caches +EXPORT_SYMBOL vmlinux 0x45bc9f7a tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45d2a722 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x45e203df blk_stack_limits +EXPORT_SYMBOL vmlinux 0x45f73b74 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x46290ed2 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x463094c4 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x467b9e8e padata_do_parallel +EXPORT_SYMBOL vmlinux 0x467c514c inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x4683dc19 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x4687b5f7 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x46a0f800 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x46c60bdf filp_open +EXPORT_SYMBOL vmlinux 0x47073b10 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x471591c2 journal_check_used_features +EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x47345cd1 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475995c3 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x475f22e2 blk_make_request +EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x4797e85a vmtruncate +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47ac4631 generic_write_sync +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47c7b0d2 cpu_number +EXPORT_SYMBOL vmlinux 0x4818bf10 sk_stop_timer +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 0x48519da4 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x4872004e pipe_lock +EXPORT_SYMBOL vmlinux 0x4874a067 pci_release_region +EXPORT_SYMBOL vmlinux 0x48848356 pci_enable_device +EXPORT_SYMBOL vmlinux 0x48873a43 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x48919443 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x48a1be1e submit_bio +EXPORT_SYMBOL vmlinux 0x48a771c5 cpu_core_map +EXPORT_SYMBOL vmlinux 0x48c50a52 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x48c6734d __ip_select_ident +EXPORT_SYMBOL vmlinux 0x48cf0477 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x49259432 key_instantiate_and_link +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 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x497fb202 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x498251cb napi_gro_receive +EXPORT_SYMBOL vmlinux 0x49856056 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x49a92203 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49c561a4 md_integrity_register +EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string +EXPORT_SYMBOL vmlinux 0x49ed215e skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x49fa2fad acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0x4a217cd0 release_firmware +EXPORT_SYMBOL vmlinux 0x4a3151bc blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x4a322981 sg_miter_next +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a5ef84f dm_snap_cow +EXPORT_SYMBOL vmlinux 0x4a740ad0 llc_set_station_handler +EXPORT_SYMBOL vmlinux 0x4a890ea4 nla_append +EXPORT_SYMBOL vmlinux 0x4a971ec7 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4aaba41c inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4aafb9cf kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x4ad5ba94 phy_connect +EXPORT_SYMBOL vmlinux 0x4aeabee6 pci_map_rom +EXPORT_SYMBOL vmlinux 0x4af2c310 pci_get_slot +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b01e79e open_exec +EXPORT_SYMBOL vmlinux 0x4b08ce5b tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x4b1e8e8d cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x4b2fa985 skb_insert +EXPORT_SYMBOL vmlinux 0x4b311176 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b3db396 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x4b6baa22 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x4bace333 blk_start_queue +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bcace2b netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x4bda0a74 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x4c057e2a mca_unregister_driver +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c1efb4a inet_bind +EXPORT_SYMBOL vmlinux 0x4c25a963 skb_recycle_check +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c30d842 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x4c90b931 brioctl_set +EXPORT_SYMBOL vmlinux 0x4c95c2f6 sget +EXPORT_SYMBOL vmlinux 0x4c9c5409 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cf21ee2 mca_device_transform_memory +EXPORT_SYMBOL vmlinux 0x4d20ddbc atomic64_inc_not_zero_cx8 +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d55424c proto_unregister +EXPORT_SYMBOL vmlinux 0x4d5aff10 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x4d6cd6d4 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x4d8e1793 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x4d91c76d alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dde9e55 misc_deregister +EXPORT_SYMBOL vmlinux 0x4defaf58 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4dfaac5b qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x4dfade8a vfs_mkdir +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e155970 scsi_host_put +EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child +EXPORT_SYMBOL vmlinux 0x4e34b8c4 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e454edb nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x4e458cd3 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x4e6c10a7 invalidate_inodes +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e743069 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4ee45917 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x4f04846b rfkill_blocked +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f2e2ba1 set_disk_ro +EXPORT_SYMBOL vmlinux 0x4f34dfbd skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f50146c dm_table_get +EXPORT_SYMBOL vmlinux 0x4f5438c1 idle_halt +EXPORT_SYMBOL vmlinux 0x4f5adb3a md_done_sync +EXPORT_SYMBOL vmlinux 0x4f6b1fce tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x4f6ee04e tc_classify +EXPORT_SYMBOL vmlinux 0x4f75bd40 create_proc_entry +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4fbe93a7 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x4ff39fba napi_complete +EXPORT_SYMBOL vmlinux 0x4ff7bdb0 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x50204471 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x50469050 locks_init_lock +EXPORT_SYMBOL vmlinux 0x5047b792 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x506e6f2f _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x50a34d00 padata_stop +EXPORT_SYMBOL vmlinux 0x50a41af3 __register_binfmt +EXPORT_SYMBOL vmlinux 0x50ab025d llc_add_pack +EXPORT_SYMBOL vmlinux 0x50f83010 block_prepare_write +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5152e605 memcmp +EXPORT_SYMBOL vmlinux 0x5186518f profile_pc +EXPORT_SYMBOL vmlinux 0x519ac646 skb_dequeue +EXPORT_SYMBOL vmlinux 0x51a28d45 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x51b80d7b abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x51c53f34 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x51ccd1ad mmc_unregister_driver +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 0x51ffdfce max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x5204992d qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x521c4c91 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x5223ad34 vlan_gro_receive +EXPORT_SYMBOL vmlinux 0x52373b22 bit_waitqueue +EXPORT_SYMBOL vmlinux 0x5250d76c kill_fasync +EXPORT_SYMBOL vmlinux 0x525d9338 stop_tty +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 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52c5c962 bdev_stack_limits +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 0x5307e06f sock_create +EXPORT_SYMBOL vmlinux 0x530b1e4c rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x5316f707 scsi_print_result +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x533e0ec0 kstat +EXPORT_SYMBOL vmlinux 0x534d88ef bdi_register +EXPORT_SYMBOL vmlinux 0x537975c0 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x5393f9a2 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x539d2a06 km_report +EXPORT_SYMBOL vmlinux 0x53bffd36 blk_queue_invalidate_tags +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 0x54183804 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x541d5e76 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x543e13ad dm_table_get_size +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x5457a021 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x54646517 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x5465b5f0 put_disk +EXPORT_SYMBOL vmlinux 0x546b397d sock_i_uid +EXPORT_SYMBOL vmlinux 0x5471ac8e dm_table_put +EXPORT_SYMBOL vmlinux 0x54935666 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0x54a285c5 atomic64_dec_return_cx8 +EXPORT_SYMBOL vmlinux 0x54e30e01 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x5534503e generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x55633af7 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x557e1662 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x55ac05c4 mmc_host_disable +EXPORT_SYMBOL vmlinux 0x55bb3b2c register_con_driver +EXPORT_SYMBOL vmlinux 0x55bf78c7 security_path_symlink +EXPORT_SYMBOL vmlinux 0x55e580f5 tty_register_driver +EXPORT_SYMBOL vmlinux 0x55f75c07 i2c_put_adapter +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 0x5630c3a5 security_file_permission +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x565bed50 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56df5a59 mmc_regulator_set_ocr +EXPORT_SYMBOL vmlinux 0x56e0813d acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0x56f494e0 smp_call_function +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x572f0a96 security_file_mmap +EXPORT_SYMBOL vmlinux 0x573578d2 proc_mkdir +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 0x57859986 sk_receive_skb +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 0x57b73126 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x57bf2dfe skb_unlink +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57df8877 uart_register_driver +EXPORT_SYMBOL vmlinux 0x58119a3c __break_lease +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 0x586b075a bio_map_kern +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 0x5892d54c acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x58d90e2f do_sync_read +EXPORT_SYMBOL vmlinux 0x58f685fb mdiobus_register +EXPORT_SYMBOL vmlinux 0x58fef6f8 ist_info +EXPORT_SYMBOL vmlinux 0x5925538f dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x592b59af acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x592b9cd7 down_read +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x59476822 ppp_unit_number +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x5954ca82 idr_destroy +EXPORT_SYMBOL vmlinux 0x596587ff scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x596ee2b6 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x59ac4b76 force_sig +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 0x5a0285fa linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x5a2bda12 udplite_table +EXPORT_SYMBOL vmlinux 0x5a316d34 bio_map_user +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a4e5180 framebuffer_release +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a849319 mem_map +EXPORT_SYMBOL vmlinux 0x5a858b6c scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x5a8cbf14 neigh_destroy +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 0x5afcee1a iterate_mounts +EXPORT_SYMBOL vmlinux 0x5b001c60 dquot_acquire +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b372f71 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x5b4c6297 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b659f43 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x5b7348a5 sk_run_filter +EXPORT_SYMBOL vmlinux 0x5b7a81fd clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x5b88e8c9 atomic64_sub_return_cx8 +EXPORT_SYMBOL vmlinux 0x5bb70466 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x5bbb75a8 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x5bbc0064 register_netdevice +EXPORT_SYMBOL vmlinux 0x5bd312a5 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x5be94837 init_special_inode +EXPORT_SYMBOL vmlinux 0x5c23d27e mutex_lock +EXPORT_SYMBOL vmlinux 0x5c265cba sg_init_one +EXPORT_SYMBOL vmlinux 0x5c2ed2be dev_mc_init +EXPORT_SYMBOL vmlinux 0x5c55e0fb pci_disable_device +EXPORT_SYMBOL vmlinux 0x5c68705b mca_read_pos +EXPORT_SYMBOL vmlinux 0x5c6fdb48 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x5c7350c2 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x5c7843e4 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x5c9a1629 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x5cf7189f alloc_disk +EXPORT_SYMBOL vmlinux 0x5cff8416 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x5d09bf14 tcp_child_process +EXPORT_SYMBOL vmlinux 0x5d1998c1 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x5d256c4c __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x5d2d8926 kern_path +EXPORT_SYMBOL vmlinux 0x5d56e811 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x5d5814bb acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x5d5e7200 unregister_nls +EXPORT_SYMBOL vmlinux 0x5d6d7cb5 pci_iounmap +EXPORT_SYMBOL vmlinux 0x5d902bee abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x5dab6585 dev_base_lock +EXPORT_SYMBOL vmlinux 0x5db2176a pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x5dba38dc bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x5de05235 mca_bus_type +EXPORT_SYMBOL vmlinux 0x5ded739b sk_alloc +EXPORT_SYMBOL vmlinux 0x5dfba31c input_grab_device +EXPORT_SYMBOL vmlinux 0x5e09ca75 complete +EXPORT_SYMBOL vmlinux 0x5e2ffcda alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x5e3e604c ilookup5 +EXPORT_SYMBOL vmlinux 0x5e704688 generic_readlink +EXPORT_SYMBOL vmlinux 0x5e841dbe mddev_congested +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e9aabc6 nonseekable_open +EXPORT_SYMBOL vmlinux 0x5ec39c6a ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5ee7ec26 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x5efe39bd __mutex_init +EXPORT_SYMBOL vmlinux 0x5f12d076 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0x5f19ec04 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x5f1bd579 mca_find_adapter +EXPORT_SYMBOL vmlinux 0x5f1c21bd __destroy_inode +EXPORT_SYMBOL vmlinux 0x5f21ba5b _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x5f2b65fb i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x5f2e5a53 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x5f4506cf path_put +EXPORT_SYMBOL vmlinux 0x5f58d379 do_SAK +EXPORT_SYMBOL vmlinux 0x5f7731ba qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x5f8acba1 dcache_readdir +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fd90ac6 jbd2_journal_dirty_metadata +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 0x6026b315 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x603ee5ae phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x60653717 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x60688d41 block_write_begin +EXPORT_SYMBOL vmlinux 0x607daea8 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60b92da6 mca_device_transform_irq +EXPORT_SYMBOL vmlinux 0x60c6183b kick_iocb +EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n +EXPORT_SYMBOL vmlinux 0x6106df5e fb_blank +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6126eb0c neigh_table_init +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x613a663c mnt_pin +EXPORT_SYMBOL vmlinux 0x61479744 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x615a3dcb mod_timer +EXPORT_SYMBOL vmlinux 0x615fbd36 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x61975a77 path_lookup +EXPORT_SYMBOL vmlinux 0x61a0ac13 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x61afa683 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61c45b12 input_mt_create_slots +EXPORT_SYMBOL vmlinux 0x61d6ff65 bio_sector_offset +EXPORT_SYMBOL vmlinux 0x61eb5bcc dcache_dir_lseek +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 0x626f03bb dev_remove_pack +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x627f6450 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x628a6360 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x629154bb scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x6291c360 close_bdev_exclusive +EXPORT_SYMBOL vmlinux 0x62bcd457 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x62c960e7 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x62ddc0df journal_wipe +EXPORT_SYMBOL vmlinux 0x62e1f8bf tty_port_close_start +EXPORT_SYMBOL vmlinux 0x62e848dd bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x630cbc37 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x630fda65 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x633c0214 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x63506723 proc_symlink +EXPORT_SYMBOL vmlinux 0x635c9e96 current_task +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x639a8682 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x63ba87c8 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x63c52867 d_lookup +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 0x6414a618 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x6443d74d _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x646ade80 netlink_set_err +EXPORT_SYMBOL vmlinux 0x64726d1f xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64bfa7b7 dev_get_flags +EXPORT_SYMBOL vmlinux 0x64c7a67b security_path_mknod +EXPORT_SYMBOL vmlinux 0x64e90ef0 del_timer +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x65059c76 tty_register_device +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x651fbc7f generic_block_bmap +EXPORT_SYMBOL vmlinux 0x652b89fc splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x6530ef54 blk_remove_plug +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x655253e6 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x655a9665 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x655aac58 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x657bd4f5 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x6588a6ab phy_start +EXPORT_SYMBOL vmlinux 0x658dc62d dquot_enable +EXPORT_SYMBOL vmlinux 0x65a50ea2 journal_set_features +EXPORT_SYMBOL vmlinux 0x65a51888 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x65b54c76 vfs_symlink +EXPORT_SYMBOL vmlinux 0x65b71537 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x65bd9502 kmap_atomic +EXPORT_SYMBOL vmlinux 0x65be3224 phy_device_free +EXPORT_SYMBOL vmlinux 0x65c4f250 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x65ed27b3 kunmap +EXPORT_SYMBOL vmlinux 0x65fa1327 md_unregister_thread +EXPORT_SYMBOL vmlinux 0x660b9181 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x663ae2f1 key_validate +EXPORT_SYMBOL vmlinux 0x66509d1a dm_table_get_md +EXPORT_SYMBOL vmlinux 0x6680e453 get_user_pages +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x669324d0 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x6696ea65 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x66b48edb freeze_bdev +EXPORT_SYMBOL vmlinux 0x66ea046a md_register_thread +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x670c0597 down_interruptible +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x67321166 have_submounts +EXPORT_SYMBOL vmlinux 0x6739653c dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x674e204c elv_rb_find +EXPORT_SYMBOL vmlinux 0x6769a3c2 sock_rfree +EXPORT_SYMBOL vmlinux 0x677c15bf i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x677d37fb tcp_sendpage +EXPORT_SYMBOL vmlinux 0x67804a19 __any_online_cpu +EXPORT_SYMBOL vmlinux 0x678090ac bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x67a4d10c __secpath_destroy +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67c09c15 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x684213e9 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x6853c6a3 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x685b019c dquot_free_inode +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x68b8db04 netdev_features_change +EXPORT_SYMBOL vmlinux 0x68e64cab get_sb_bdev +EXPORT_SYMBOL vmlinux 0x68f86557 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x6910f9de end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x69144403 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x6926d075 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x6941ba87 dm_io +EXPORT_SYMBOL vmlinux 0x6945cb5e fb_set_suspend +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x697730b8 skb_queue_tail +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 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 0x6a137ecd fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x6a1718e7 mapping_tagged +EXPORT_SYMBOL vmlinux 0x6a27bfce csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x6a3fc223 block_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a9f2cc4 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x6aa11dd4 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x6aab3686 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp +EXPORT_SYMBOL vmlinux 0x6ad3ebdc dm_table_event +EXPORT_SYMBOL vmlinux 0x6ad9ac2c mmc_release_host +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b26f7ed kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b6dc165 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x6b84450a console_start +EXPORT_SYMBOL vmlinux 0x6b84c3a8 genphy_update_link +EXPORT_SYMBOL vmlinux 0x6b937ffb mca_mark_as_used +EXPORT_SYMBOL vmlinux 0x6ba0b4d7 thaw_process +EXPORT_SYMBOL vmlinux 0x6ba948be dm_get_device +EXPORT_SYMBOL vmlinux 0x6bb85a7e inet_release +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bd6a8bf tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bf8d133 down_trylock +EXPORT_SYMBOL vmlinux 0x6c0c24b9 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x6c0e7215 mca_device_claimed +EXPORT_SYMBOL vmlinux 0x6c0eed4c abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x6c1a5fbf con_is_bound +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c2e3320 strncmp +EXPORT_SYMBOL vmlinux 0x6c387cbe find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL vmlinux 0x6c3d8021 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x6c49aadf block_invalidatepage +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6ca9afa6 seq_putc +EXPORT_SYMBOL vmlinux 0x6cc0a204 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x6cd00cea blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x6cd739ff elv_add_request +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6cebe976 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x6d0c4a51 __bread +EXPORT_SYMBOL vmlinux 0x6d159a3b task_nice +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 0x6d2c1fc5 rfkill_register +EXPORT_SYMBOL vmlinux 0x6d2c7a55 dm_exception_store_create +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d464175 __sg_free_table +EXPORT_SYMBOL vmlinux 0x6d656cf5 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6dccdaf3 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x6dd21a35 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x6dd4410e skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6df5a224 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x6df9f1ba unregister_md_personality +EXPORT_SYMBOL vmlinux 0x6e3e8b81 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x6e3ecc9c cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x6e5853b7 acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0x6e7148ea __scsi_put_command +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e766ea1 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x6e873a51 blk_start_request +EXPORT_SYMBOL vmlinux 0x6e8f3243 dm_register_target +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6e9ebfe7 request_firmware +EXPORT_SYMBOL vmlinux 0x6ed982dc pci_release_regions +EXPORT_SYMBOL vmlinux 0x6f0f47ce blkdev_get +EXPORT_SYMBOL vmlinux 0x6f221b62 scsi_print_command +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 0x6f6ff387 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x6f70b5d3 get_disk +EXPORT_SYMBOL vmlinux 0x6f8315bb dm_io_client_resize +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6f894ac7 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x6f8c5412 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x6f9c2282 generic_writepages +EXPORT_SYMBOL vmlinux 0x6faf162d bdi_destroy +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 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 0x70856eb6 vfs_readlink +EXPORT_SYMBOL vmlinux 0x709fa9a0 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x70ad942d iget_locked +EXPORT_SYMBOL vmlinux 0x70b43178 inet_listen +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d1f8f3 strncat +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70ef482b nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x71074fcb clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7138981b proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x714c7a81 acpi_check_mem_region +EXPORT_SYMBOL vmlinux 0x715fe6a0 fsync_bdev +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x7180bea4 block_write_end +EXPORT_SYMBOL vmlinux 0x7186c774 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71abd380 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x71c4142d sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x71c463fa bio_put +EXPORT_SYMBOL vmlinux 0x71cc12df phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x71d69660 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x71f03099 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x723e03a1 scsi_scan_host +EXPORT_SYMBOL vmlinux 0x724100b2 __scm_send +EXPORT_SYMBOL vmlinux 0x725d7c13 alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x7273d1b4 kmem_cache_name +EXPORT_SYMBOL vmlinux 0x7289999a __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x728a4490 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x72b183fe scsi_register_driver +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72fd6a1d dm_put_device +EXPORT_SYMBOL vmlinux 0x73121e0e qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x734ef6e4 kill_pid +EXPORT_SYMBOL vmlinux 0x734fe8f9 ip_route_output_key +EXPORT_SYMBOL vmlinux 0x7354b808 create_mnt_ns +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +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 0x73de1af0 __lru_cache_add +EXPORT_SYMBOL vmlinux 0x73e1f834 freeze_super +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73f05e36 dquot_initialize +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x74108b55 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x7410f087 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x7413793a EISA_bus +EXPORT_SYMBOL vmlinux 0x742f3c86 pnp_find_dev +EXPORT_SYMBOL vmlinux 0x7440fbeb xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74a9dd9d check_disk_change +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74d2bf5d pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x74fca214 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x751a5c90 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x751bccda inode_setattr +EXPORT_SYMBOL vmlinux 0x75271716 save_processor_state +EXPORT_SYMBOL vmlinux 0x755d66be generic_listxattr +EXPORT_SYMBOL vmlinux 0x75819362 arp_find +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bf3822 uart_match_port +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 0x76212888 eth_type_trans +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x76344068 phy_disconnect +EXPORT_SYMBOL vmlinux 0x7641ad3e xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x7682974b pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x768c1e94 dm_dirty_log_destroy +EXPORT_SYMBOL vmlinux 0x768e7c57 netif_notify_peers +EXPORT_SYMBOL vmlinux 0x768edc47 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x76a3f1f3 elevator_init +EXPORT_SYMBOL vmlinux 0x76a9109c skb_append +EXPORT_SYMBOL vmlinux 0x76bb14d7 filemap_fault +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76dab4c9 register_quota_format +EXPORT_SYMBOL vmlinux 0x76e1d40c scsi_bios_ptable +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 0x77122a20 put_tty_driver +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x7744c6ae key_revoke +EXPORT_SYMBOL vmlinux 0x7756beaa add_disk +EXPORT_SYMBOL vmlinux 0x77588aed ipv4_specific +EXPORT_SYMBOL vmlinux 0x77a23a29 blk_stop_queue +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 0x7838c3cc xfrm6_find_1stfragopt +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 0x788fe103 iomem_resource +EXPORT_SYMBOL vmlinux 0x78b38423 i2c_smbus_write_byte_data +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 0x79248ff4 may_umount_tree +EXPORT_SYMBOL vmlinux 0x7924d88a netif_device_detach +EXPORT_SYMBOL vmlinux 0x792ca482 skb_push +EXPORT_SYMBOL vmlinux 0x79368d33 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x79769ac6 log_start_commit +EXPORT_SYMBOL vmlinux 0x7993eec7 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79d56f2a tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x79ddae49 keyring_search +EXPORT_SYMBOL vmlinux 0x7a040e35 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a44edbc blk_end_request +EXPORT_SYMBOL vmlinux 0x7aa89cac redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x7ac2a98b block_truncate_page +EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip +EXPORT_SYMBOL vmlinux 0x7acbc9b2 acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0x7adb13e0 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x7adf48ff truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7aedc1ea tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x7afd8550 skb_store_bits +EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7b134ddf acpi_get_name +EXPORT_SYMBOL vmlinux 0x7b2fb8c5 iget_failed +EXPORT_SYMBOL vmlinux 0x7b47bda5 __breadahead +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 0x7b63c5cd jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7b828539 proc_create_data +EXPORT_SYMBOL vmlinux 0x7b998302 read_dev_sector +EXPORT_SYMBOL vmlinux 0x7b9e983f cpu_info +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7c09c029 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x7c0edd7d acpi_check_region +EXPORT_SYMBOL vmlinux 0x7c21e8a1 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x7c2643ab del_gendisk +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c5257a8 eth_header_parse +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c6f095e consume_skb +EXPORT_SYMBOL vmlinux 0x7c754fd0 inet_put_port +EXPORT_SYMBOL vmlinux 0x7c75c744 vfs_rename +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cf30193 rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x7cf3b2d5 dquot_transfer +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d23da70 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x7d694512 tty_devnum +EXPORT_SYMBOL vmlinux 0x7d76e6b7 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x7d78b4d0 netif_rx +EXPORT_SYMBOL vmlinux 0x7d86756e scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x7d8af363 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x7d8d7b6e dma_find_channel +EXPORT_SYMBOL vmlinux 0x7db57751 proc_dointvec +EXPORT_SYMBOL vmlinux 0x7dcda1cd mmc_detect_change +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7df19edc jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x7e1d17cf atomic64_read_cx8 +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e4548aa mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x7e45605e add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x7e4a853c sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x7e7d3132 fsnotify_find_mark_entry +EXPORT_SYMBOL vmlinux 0x7e99ba36 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7ea24f75 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x7eaacad9 skb_set_dev +EXPORT_SYMBOL vmlinux 0x7ecb001b __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x7eda18a4 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x7f114141 complete_and_exit +EXPORT_SYMBOL vmlinux 0x7f1536ff dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x7f1b6d4e tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x7f1c7bd2 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f678a60 blk_queue_find_tag +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 0x7fd7b723 get_super +EXPORT_SYMBOL vmlinux 0x7fdeda92 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x7fff61f5 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x80015fde nobh_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x8033babd input_flush_device +EXPORT_SYMBOL vmlinux 0x80482198 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x804e81e6 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x80549205 dquot_drop +EXPORT_SYMBOL vmlinux 0x805f7561 phy_driver_register +EXPORT_SYMBOL vmlinux 0x805f79a9 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x806fefe4 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x8096540e ab3100_event_register +EXPORT_SYMBOL vmlinux 0x80ae4d2f nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x80e48ecb nf_log_register +EXPORT_SYMBOL vmlinux 0x80eee682 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x80f43150 dst_release +EXPORT_SYMBOL vmlinux 0x81002b8f dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x812021ad posix_unblock_lock +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 0x816a4751 touch_atime +EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf +EXPORT_SYMBOL vmlinux 0x8182302b arp_xmit +EXPORT_SYMBOL vmlinux 0x818e43c7 dev_uc_del +EXPORT_SYMBOL vmlinux 0x818ee887 bio_integrity_free +EXPORT_SYMBOL vmlinux 0x819e1c25 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0x819fc13e shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x81bccdcc padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x81c76be2 phy_device_register +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x81e7d79c truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x82024252 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x8204e302 mmc_card_awake +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user +EXPORT_SYMBOL vmlinux 0x8235805b memmove +EXPORT_SYMBOL vmlinux 0x823a014f journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x8243af36 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x824e665e __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8255c8c5 dev_change_flags +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x8273a187 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x827642e2 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x82776450 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x828199b0 dentry_open +EXPORT_SYMBOL vmlinux 0x82ac3d58 km_policy_notify +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82d3b48d scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x82f6572e nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x82fb1888 __find_get_block +EXPORT_SYMBOL vmlinux 0x82fbe769 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x8305ddb5 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x831cb2a5 ___ratelimit +EXPORT_SYMBOL vmlinux 0x8326d982 do_splice_to +EXPORT_SYMBOL vmlinux 0x833143b2 register_8022_client +EXPORT_SYMBOL vmlinux 0x834bc367 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x835105e7 rt6_lookup +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 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83a51a32 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x83bdd1c7 acpi_bus_start +EXPORT_SYMBOL vmlinux 0x83cfb262 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x83e2f99b generic_file_fsync +EXPORT_SYMBOL vmlinux 0x8405b52f kernel_getpeername +EXPORT_SYMBOL vmlinux 0x84298439 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x842d4dc8 tcp4_gro_complete +EXPORT_SYMBOL vmlinux 0x8431c175 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x843e0975 secpath_dup +EXPORT_SYMBOL vmlinux 0x8444e843 get_sb_single +EXPORT_SYMBOL vmlinux 0x8474d268 bdevname +EXPORT_SYMBOL vmlinux 0x84791cea arp_create +EXPORT_SYMBOL vmlinux 0x84a3930c clocksource_unregister +EXPORT_SYMBOL vmlinux 0x850b382e uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x851bee76 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x85219b66 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x85482c6a scsi_device_put +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x856e5ceb request_key_async +EXPORT_SYMBOL vmlinux 0x857ac299 register_sysrq_key +EXPORT_SYMBOL vmlinux 0x85b38ea6 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x85c58346 user_revoke +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e434ba ps2_command +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x861da382 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x866da3d6 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x8683d060 i2c_master_recv +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86937309 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x86a183da dev_txq_stats_fold +EXPORT_SYMBOL vmlinux 0x86b971b1 __dst_free +EXPORT_SYMBOL vmlinux 0x86e1276c security_path_chown +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x86ff9362 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x872066d0 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x873c376a tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x87610fd2 genphy_suspend +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +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 0x87eedf97 seq_open +EXPORT_SYMBOL vmlinux 0x87f7d313 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x8812086f elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x8816ad38 set_pages_wb +EXPORT_SYMBOL vmlinux 0x8836ed20 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x88941a06 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x88e88136 ioremap_prot +EXPORT_SYMBOL vmlinux 0x88fc1847 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x89320e74 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x893dfeb6 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x895cc809 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89c4e050 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89f55322 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x89fdc19a unlock_rename +EXPORT_SYMBOL vmlinux 0x8a03bf6e pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x8a18aa36 ppp_register_channel +EXPORT_SYMBOL vmlinux 0x8a1be8ed dm_dirty_log_create +EXPORT_SYMBOL vmlinux 0x8a250948 __kfree_skb +EXPORT_SYMBOL vmlinux 0x8a2b4def netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x8a3f6fef i2c_release_client +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a8110a6 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x8a8dcf32 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aa2e23c rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x8aeccff9 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x8af94c16 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x8b157fd4 sk_send_sigurg +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 0x8b989cf9 acpi_bus_can_wakeup +EXPORT_SYMBOL vmlinux 0x8b9dd495 kernel_bind +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 0x8bf8a7bc ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x8bfbc540 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c735a6c simple_rename +EXPORT_SYMBOL vmlinux 0x8cc29223 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cd0138e i2c_verify_client +EXPORT_SYMBOL vmlinux 0x8cdfeaee block_sync_page +EXPORT_SYMBOL vmlinux 0x8ce53dfc d_validate +EXPORT_SYMBOL vmlinux 0x8d048183 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x8d0c2efa inet_stream_connect +EXPORT_SYMBOL vmlinux 0x8d158e70 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x8d4307f9 neigh_table_clear +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 0x8d889b64 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8da98dcc idr_remove_all +EXPORT_SYMBOL vmlinux 0x8dbac33d tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x8dc6e564 restore_processor_state +EXPORT_SYMBOL vmlinux 0x8df2cffd i2c_master_send +EXPORT_SYMBOL vmlinux 0x8df62f1d __invalidate_device +EXPORT_SYMBOL vmlinux 0x8dfba25b generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e082b8f hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e48376e key_negate_and_link +EXPORT_SYMBOL vmlinux 0x8e5319cf scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq +EXPORT_SYMBOL vmlinux 0x8e7cd732 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x8e888ec3 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x8e94f2b5 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x8ead98a2 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8f088d13 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x8f0ac21a fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x8f1653c8 pci_match_id +EXPORT_SYMBOL vmlinux 0x8f1b1739 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x8f2371ba percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f503f02 key_task_permission +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f849406 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x8f8848f8 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8faa1191 sk_reset_txq +EXPORT_SYMBOL vmlinux 0x8fce1bc6 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x8fd35742 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x8fd3a301 rfkill_unregister +EXPORT_SYMBOL vmlinux 0x8fd3fb2b dput +EXPORT_SYMBOL vmlinux 0x8ff4079b pv_irq_ops +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 0x9021b097 del_timer_sync +EXPORT_SYMBOL vmlinux 0x90370230 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x90449479 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x908865f2 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x909342df jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system +EXPORT_SYMBOL vmlinux 0x90a7dbcc balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active +EXPORT_SYMBOL vmlinux 0x90b51d6c schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x90d07957 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x9102938f seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x91071705 sock_setsockopt +EXPORT_SYMBOL vmlinux 0x910bb09c udp_ioctl +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource +EXPORT_SYMBOL vmlinux 0x91644efa eth_mac_addr +EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong +EXPORT_SYMBOL vmlinux 0x9195a2d1 dump_trace +EXPORT_SYMBOL vmlinux 0x91a13f6b vfs_statfs +EXPORT_SYMBOL vmlinux 0x91b23db9 put_mnt_ns +EXPORT_SYMBOL vmlinux 0x91c97f82 set_create_files_as +EXPORT_SYMBOL vmlinux 0x9211e790 register_gifconf +EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x924ceca3 qdisc_reset +EXPORT_SYMBOL vmlinux 0x9267b86b tcf_exts_change +EXPORT_SYMBOL vmlinux 0x92714fbc free_task +EXPORT_SYMBOL vmlinux 0x92897e3d default_idle +EXPORT_SYMBOL vmlinux 0x9299ef43 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x92fbc853 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9330cb9f sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9336e105 revalidate_disk +EXPORT_SYMBOL vmlinux 0x933b0d8d eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x934d18e1 dqget +EXPORT_SYMBOL vmlinux 0x93702e23 proto_register +EXPORT_SYMBOL vmlinux 0x9378e19b generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x939127ad d_alloc +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93c8b5f6 genl_register_ops +EXPORT_SYMBOL vmlinux 0x93e17e3d ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x93e9c66a sk_filter +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x9445cad4 mca_device_status +EXPORT_SYMBOL vmlinux 0x944f9e81 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x94892824 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x9489f7c9 write_one_page +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x949a0020 set_pages_array_wc +EXPORT_SYMBOL vmlinux 0x94b541b5 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x94c1bdd5 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x94ce2246 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94f5e774 unlock_page +EXPORT_SYMBOL vmlinux 0x9529dfb8 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x952a4113 pci_clear_master +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x956932b6 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x9575c6bc sk_wait_data +EXPORT_SYMBOL vmlinux 0x95778d4c sk_stream_error +EXPORT_SYMBOL vmlinux 0x958204ef simple_getattr +EXPORT_SYMBOL vmlinux 0x95ae6da9 contig_page_data +EXPORT_SYMBOL vmlinux 0x95ae9d73 abort_creds +EXPORT_SYMBOL vmlinux 0x95f638d5 posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x96376176 isapnp_protocol +EXPORT_SYMBOL vmlinux 0x963e58f4 netlink_dump_start +EXPORT_SYMBOL vmlinux 0x96506b3b rfkill_destroy +EXPORT_SYMBOL vmlinux 0x96661960 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0x9669557c dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x968259b1 ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x96c23ffb mca_device_set_claim +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n +EXPORT_SYMBOL vmlinux 0x97270ac3 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x9728449d blk_insert_request +EXPORT_SYMBOL vmlinux 0x972aad67 arp_tbl +EXPORT_SYMBOL vmlinux 0x972ff0c6 vm_insert_page +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x976f3bde seq_read +EXPORT_SYMBOL vmlinux 0x979b098e seq_release_private +EXPORT_SYMBOL vmlinux 0x97b81c18 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x97bca205 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x97ca5057 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x97d1d9c9 netpoll_send_skb +EXPORT_SYMBOL vmlinux 0x97dcef29 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97f8eaf9 blk_get_request +EXPORT_SYMBOL vmlinux 0x98005ba1 elv_rb_del +EXPORT_SYMBOL vmlinux 0x981001d2 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x9828a7ce i8042_install_filter +EXPORT_SYMBOL vmlinux 0x982b21cc pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x9843eb61 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x984dfe88 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x98663be2 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x98810ffe __free_pages +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x98908aa9 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init +EXPORT_SYMBOL vmlinux 0x98b21224 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x98c19653 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x9905064b flush_delayed_work +EXPORT_SYMBOL vmlinux 0x99052a84 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x99118850 follow_pfn +EXPORT_SYMBOL vmlinux 0x9937dcab pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x993b488b tcp_parse_options +EXPORT_SYMBOL vmlinux 0x993b9813 vfs_getattr +EXPORT_SYMBOL vmlinux 0x9946258d unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x995b0154 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x99737cae tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x99746c8a cancel_dirty_page +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 0x99d85fd4 names_cachep +EXPORT_SYMBOL vmlinux 0x99e3ef34 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a3ae645 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x9a3e0489 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x9a6a83f9 cmos_lock +EXPORT_SYMBOL vmlinux 0x9a858ff5 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x9aa44e3d pci_pme_active +EXPORT_SYMBOL vmlinux 0x9ab06f3c set_pages_array_wb +EXPORT_SYMBOL vmlinux 0x9ae31484 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b4e56e8 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x9b62129b ida_get_new +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b733f46 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9badfbb1 pipe_to_file +EXPORT_SYMBOL vmlinux 0x9bae81d7 cad_pid +EXPORT_SYMBOL vmlinux 0x9bbdadd5 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x9bce482f __release_region +EXPORT_SYMBOL vmlinux 0x9be50bf1 register_netdev +EXPORT_SYMBOL vmlinux 0x9bf16f4a find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c14699e follow_down +EXPORT_SYMBOL vmlinux 0x9c1f392a devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x9c23bcba atomic64_add_return_cx8 +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 0x9ca85aa6 vlan_gro_frags +EXPORT_SYMBOL vmlinux 0x9cb291df cap_file_mmap +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cdcab7e security_path_truncate +EXPORT_SYMBOL vmlinux 0x9ce23ddb tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d035dae nla_reserve +EXPORT_SYMBOL vmlinux 0x9d0f8104 simple_unlink +EXPORT_SYMBOL vmlinux 0x9d15d22e eth_header +EXPORT_SYMBOL vmlinux 0x9d1f8cdc __set_page_dirty_nobuffers +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 0x9d86f3a8 dev_close +EXPORT_SYMBOL vmlinux 0x9db8c446 do_truncate +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 0x9dfc3032 current_fs_time +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e23915e remove_inode_hash +EXPORT_SYMBOL vmlinux 0x9e54af96 ll_rw_block +EXPORT_SYMBOL vmlinux 0x9e5e6ca6 vfs_write +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e672ff6 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x9e6ba960 posix_test_lock +EXPORT_SYMBOL vmlinux 0x9e72ac31 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea77127 copy_io_context +EXPORT_SYMBOL vmlinux 0x9ea9c7e3 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9eea1a9f _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9ef50664 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x9ef8f570 netlink_unicast +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f16e210 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x9f22811c scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool +EXPORT_SYMBOL vmlinux 0x9f431e2b inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f4bb56c llc_sap_open +EXPORT_SYMBOL vmlinux 0x9f92efc4 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9ff3ca24 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x9ff74b8a skb_checksum_help +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 0xa069246f blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xa06b69ee mutex_unlock +EXPORT_SYMBOL vmlinux 0xa074cb22 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xa086b592 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xa08a2e99 dm_dirty_log_type_unregister +EXPORT_SYMBOL vmlinux 0xa08ade17 tty_mutex +EXPORT_SYMBOL vmlinux 0xa0a41a27 rtc_lock +EXPORT_SYMBOL vmlinux 0xa0ab6080 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0c7466f unmap_underlying_metadata +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 0xa100973d tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xa10129ea _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa109f37b lock_rename +EXPORT_SYMBOL vmlinux 0xa1199272 netif_device_attach +EXPORT_SYMBOL vmlinux 0xa11df433 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa125c81d ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xa13b3547 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa14f0d18 devm_ioport_map +EXPORT_SYMBOL vmlinux 0xa15cabad rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xa16215d3 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0xa16355fd __nla_put +EXPORT_SYMBOL vmlinux 0xa166181e softnet_data +EXPORT_SYMBOL vmlinux 0xa1a367ba sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0xa1a78823 down_read_trylock +EXPORT_SYMBOL vmlinux 0xa1b4df5d tcp_close +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1c21605 send_sig_info +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1c9d080 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xa1d5c2c8 get_gendisk +EXPORT_SYMBOL vmlinux 0xa1f132c8 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xa1f63c12 tcp_prot +EXPORT_SYMBOL vmlinux 0xa1f64157 vmap +EXPORT_SYMBOL vmlinux 0xa1f98c30 journal_destroy +EXPORT_SYMBOL vmlinux 0xa2017be8 unregister_netdev +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa2103571 input_open_device +EXPORT_SYMBOL vmlinux 0xa21ad211 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xa220dc43 destroy_EII_client +EXPORT_SYMBOL vmlinux 0xa286420e udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0xa28dfb1e input_register_handle +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa2f145e1 journal_stop +EXPORT_SYMBOL vmlinux 0xa2ff80df unlock_new_inode +EXPORT_SYMBOL vmlinux 0xa300eeb0 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0xa30729d2 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xa30b747c lookup_one_len +EXPORT_SYMBOL vmlinux 0xa31bb463 udp_prot +EXPORT_SYMBOL vmlinux 0xa31e60d8 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa33e0575 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xa3409b5b is_container_init +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa361591b md_set_array_sectors +EXPORT_SYMBOL vmlinux 0xa37030ed remove_proc_entry +EXPORT_SYMBOL vmlinux 0xa393ed1c sock_i_ino +EXPORT_SYMBOL vmlinux 0xa3e2adaf sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xa3ecace7 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0xa4050619 sk_release_kernel +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa43df666 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa4687792 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xa48ccef4 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xa49bf74e vfs_fsync_range +EXPORT_SYMBOL vmlinux 0xa4b3112a ftrace_event_seq +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4c665df bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xa4e831b9 register_md_personality +EXPORT_SYMBOL vmlinux 0xa4fb532e tty_port_open +EXPORT_SYMBOL vmlinux 0xa50a435d remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0xa5138a8f skb_make_writable +EXPORT_SYMBOL vmlinux 0xa5183bee sock_no_getname +EXPORT_SYMBOL vmlinux 0xa51b91ab tty_vhangup +EXPORT_SYMBOL vmlinux 0xa51caee6 ip_defrag +EXPORT_SYMBOL vmlinux 0xa51cdfe8 __FIXADDR_TOP +EXPORT_SYMBOL vmlinux 0xa526de3f sock_wfree +EXPORT_SYMBOL vmlinux 0xa535d291 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xa5686a53 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa57b94e3 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5a633b9 sg_last +EXPORT_SYMBOL vmlinux 0xa5ac6c30 md_check_recovery +EXPORT_SYMBOL vmlinux 0xa5bac30d blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0xa5bc89aa tty_hung_up_p +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 0xa623660d set_page_dirty +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa645ff59 hippi_mac_addr +EXPORT_SYMBOL vmlinux 0xa67cb46d user_path_at +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6899656 serio_interrupt +EXPORT_SYMBOL vmlinux 0xa6a04581 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0xa6a45034 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xa6ac69ca inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xa6be7d52 xfrm_register_km +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 0xa6e253f2 init_buffer +EXPORT_SYMBOL vmlinux 0xa7046549 vprintk +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa7192833 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xa71e7463 __first_cpu +EXPORT_SYMBOL vmlinux 0xa77b338a i2c_transfer +EXPORT_SYMBOL vmlinux 0xa78459d4 generic_fillattr +EXPORT_SYMBOL vmlinux 0xa7c9e894 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xa7eb0b94 unlock_buffer +EXPORT_SYMBOL vmlinux 0xa8035925 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xa803fc13 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0xa80d93eb jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xa835836c mmc_host_enable +EXPORT_SYMBOL vmlinux 0xa83df093 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xa86e207b simple_transaction_read +EXPORT_SYMBOL vmlinux 0xa871ca6c phy_print_status +EXPORT_SYMBOL vmlinux 0xa883467b genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0xa88d76c9 pnp_is_active +EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa902e1d4 sock_no_listen +EXPORT_SYMBOL vmlinux 0xa9074e86 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xa90af9ff remove_arg_zero +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa91e199d read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xa9290e3b posix_lock_file +EXPORT_SYMBOL vmlinux 0xa9b2d3f2 ether_setup +EXPORT_SYMBOL vmlinux 0xa9bc4c86 mempool_resize +EXPORT_SYMBOL vmlinux 0xa9bd2676 __vmalloc +EXPORT_SYMBOL vmlinux 0xa9c2c802 phy_attach_direct +EXPORT_SYMBOL vmlinux 0xa9ca9a9e d_find_alias +EXPORT_SYMBOL vmlinux 0xa9d8d76d acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0xa9ece5bd test_set_page_writeback +EXPORT_SYMBOL vmlinux 0xa9f2c600 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0xaa20815c key_payload_reserve +EXPORT_SYMBOL vmlinux 0xaa384bf4 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0xaa3a114b __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0xaa6970b7 jbd2_journal_forget +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 0xaa8fea18 acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0xaaaaacd1 ioremap_wc +EXPORT_SYMBOL vmlinux 0xaaab8067 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xaac0be95 tty_check_change +EXPORT_SYMBOL vmlinux 0xaad89e97 otg_put_transceiver +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 0xab44ba48 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xab5ddb45 loop_register_transfer +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab6f6f94 flush_signals +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xab77f9f9 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xab7a4622 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xab8d32a2 nf_register_hook +EXPORT_SYMBOL vmlinux 0xab9fd669 alloc_tty_driver +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 0xabd44250 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xabd6f936 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0xabe9a692 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xabec4c91 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac14bb42 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xac1a415a skb_checksum +EXPORT_SYMBOL vmlinux 0xac2fa413 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0xac4be0b1 scsi_target_resume +EXPORT_SYMBOL vmlinux 0xac53f439 __dquot_alloc_space +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 0xac66fa02 inetdev_by_index +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 0xacace0a9 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad01410c napi_reuse_skb +EXPORT_SYMBOL vmlinux 0xad02050c tty_free_termios +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad044b66 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad5641e3 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0xad6575b1 journal_forget +EXPORT_SYMBOL vmlinux 0xad8035a4 vfs_link +EXPORT_SYMBOL vmlinux 0xad9fbbba gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xada09426 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadc28227 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xadc56942 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0xadc8e023 input_unregister_handle +EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region +EXPORT_SYMBOL vmlinux 0xae30abc1 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0xae492aa7 napi_frags_skb +EXPORT_SYMBOL vmlinux 0xae5abfa0 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0xae6c27bf generic_unplug_device +EXPORT_SYMBOL vmlinux 0xae8acf51 percpu_counter_set +EXPORT_SYMBOL vmlinux 0xae934f33 blk_unplug +EXPORT_SYMBOL vmlinux 0xae9d74f9 tty_port_put +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 0xaec87914 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xaee0cdee scsi_free_command +EXPORT_SYMBOL vmlinux 0xaef59b43 remap_pfn_range +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf49390f xfrm_state_delete_tunnel +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 0xaf56be7d pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xaf67e536 pci_claim_resource +EXPORT_SYMBOL vmlinux 0xaf90340d inet_shutdown +EXPORT_SYMBOL vmlinux 0xafb7ddae jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xafdd5334 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xaffde1eb register_framebuffer +EXPORT_SYMBOL vmlinux 0xb002126a bd_claim +EXPORT_SYMBOL vmlinux 0xb00ccc33 finish_wait +EXPORT_SYMBOL vmlinux 0xb031324d tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0xb077ef32 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xb07dfb3d acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0xb0908d5a bdput +EXPORT_SYMBOL vmlinux 0xb0a2c1c6 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xb0aa93a9 eth_validate_addr +EXPORT_SYMBOL vmlinux 0xb0b05509 blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0bbb75a max8925_reg_read +EXPORT_SYMBOL vmlinux 0xb0bfe3e3 scsi_block_requests +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0f27aa6 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0xb0fec5c0 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xb10ec686 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb131dc16 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xb156c7c3 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xb17668e9 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1e1921a jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xb1f89a60 __wake_up_bit +EXPORT_SYMBOL vmlinux 0xb1fe62be input_unregister_device +EXPORT_SYMBOL vmlinux 0xb2139c82 should_remove_suid +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +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 0xb23b22a2 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb27c58b8 serio_rescan +EXPORT_SYMBOL vmlinux 0xb2879853 security_path_rmdir +EXPORT_SYMBOL vmlinux 0xb2b60acc simple_write_begin +EXPORT_SYMBOL vmlinux 0xb2c5bf09 vga_tryget +EXPORT_SYMBOL vmlinux 0xb2e3be0c blk_integrity_compare +EXPORT_SYMBOL vmlinux 0xb2efb6be mca_read_stored_pos +EXPORT_SYMBOL vmlinux 0xb2f28cfb __wait_on_buffer +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb304bbaa neigh_ifdown +EXPORT_SYMBOL vmlinux 0xb3067bf1 ppp_dev_name +EXPORT_SYMBOL vmlinux 0xb31526ee sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0xb324d4be set_blocksize +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 0xb3554e54 __alloc_skb +EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xb3789713 invalidate_partition +EXPORT_SYMBOL vmlinux 0xb39f38e7 mca_device_set_name +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 0xb3f763a7 key_unlink +EXPORT_SYMBOL vmlinux 0xb411d112 get_write_access +EXPORT_SYMBOL vmlinux 0xb412b3e9 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xb413e72d bio_phys_segments +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb429410a posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb45578b8 memscan +EXPORT_SYMBOL vmlinux 0xb456d841 key_put +EXPORT_SYMBOL vmlinux 0xb45b24f6 k8_nb_ids +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb479da85 neigh_create +EXPORT_SYMBOL vmlinux 0xb4902193 sock_register +EXPORT_SYMBOL vmlinux 0xb4c8951e tty_port_hangup +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb51cdc46 bio_copy_kern +EXPORT_SYMBOL vmlinux 0xb5267835 kset_unregister +EXPORT_SYMBOL vmlinux 0xb5301a51 request_key +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5571dbc inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xb55af225 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0xb567d18f noop_qdisc +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aabbd2 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5d1493b iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction +EXPORT_SYMBOL vmlinux 0xb5ea5f15 acpi_is_video_device +EXPORT_SYMBOL vmlinux 0xb615dd68 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0xb622b14f journal_check_available_features +EXPORT_SYMBOL vmlinux 0xb634fb81 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0xb63918ec scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0xb651a9c5 register_nls +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 0xb6ed1e53 strncpy +EXPORT_SYMBOL vmlinux 0xb6fece2f blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xb714f16f blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0xb72397d5 printk +EXPORT_SYMBOL vmlinux 0xb73629f0 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0xb75606df tty_write_room +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb75945ea scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xb78e9b58 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7f783cc cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0xb8095ddf pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0xb816d9b9 sock_no_connect +EXPORT_SYMBOL vmlinux 0xb828e7a4 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xb83018c5 kernel_setsockopt +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 0xb86bd4d9 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb87046c8 scsi_device_set_state +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 0xb8aa2342 __check_region +EXPORT_SYMBOL vmlinux 0xb8ccdc44 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb90e3813 rtnl_create_link +EXPORT_SYMBOL vmlinux 0xb942b513 smp_call_function_many +EXPORT_SYMBOL vmlinux 0xb97a9532 bio_split +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb9998469 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xb9bdc743 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0xb9c58ca4 scsi_host_lookup +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 0xba44254f vfs_fsync +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba515c6f filp_close +EXPORT_SYMBOL vmlinux 0xba556a59 kmap_atomic_to_page +EXPORT_SYMBOL vmlinux 0xba598639 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0xba650079 lro_flush_all +EXPORT_SYMBOL vmlinux 0xba71c120 dcache_dir_close +EXPORT_SYMBOL vmlinux 0xba8a5b78 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbaacaff6 seq_write +EXPORT_SYMBOL vmlinux 0xbab7075d fb_pan_display +EXPORT_SYMBOL vmlinux 0xbac4ec6b inet6_add_protocol +EXPORT_SYMBOL vmlinux 0xbad7d2da interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb1d66a6 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xbb3183c3 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xbb43a522 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xbb5609d0 dquot_file_open +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb67e658 kill_pgrp +EXPORT_SYMBOL vmlinux 0xbb8696e2 d_instantiate +EXPORT_SYMBOL vmlinux 0xbb8a5ce0 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbc099b8 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0xbbcb6fb2 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0xbbd637ad journal_extend +EXPORT_SYMBOL vmlinux 0xbbdc40ca ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xbbe1e94f tcp_disconnect +EXPORT_SYMBOL vmlinux 0xbbf0636e __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xbbf4e52e d_add_ci +EXPORT_SYMBOL vmlinux 0xbc09797d scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc27eea8 udp_table +EXPORT_SYMBOL vmlinux 0xbc281dd8 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0xbc4fb914 sock_create_kern +EXPORT_SYMBOL vmlinux 0xbc539395 find_get_page +EXPORT_SYMBOL vmlinux 0xbc63db3b padata_alloc +EXPORT_SYMBOL vmlinux 0xbc718720 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xbc84ec60 set_pages_array_uc +EXPORT_SYMBOL vmlinux 0xbcbd4412 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0xbcc2a10d audit_log_end +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcc9ebd8 tcp_proc_register +EXPORT_SYMBOL vmlinux 0xbcde30bd __nla_reserve +EXPORT_SYMBOL vmlinux 0xbd0adb9b ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xbd14c35d tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xbd33270a gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xbd4244bc netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xbd4446b8 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xbd445af7 bioset_free +EXPORT_SYMBOL vmlinux 0xbd4da767 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xbd5a65a0 pci_iomap +EXPORT_SYMBOL vmlinux 0xbd67d02a __f_setown +EXPORT_SYMBOL vmlinux 0xbd92a166 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xbd9701c0 neigh_lookup +EXPORT_SYMBOL vmlinux 0xbda0086d splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xbdd68156 jbd2_journal_start +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 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe1ed929 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xbe2e64a2 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xbe359542 mempool_create_node +EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource +EXPORT_SYMBOL vmlinux 0xbeb21581 security_path_rename +EXPORT_SYMBOL vmlinux 0xbeb8b84e find_lock_page +EXPORT_SYMBOL vmlinux 0xbebc4e7d block_commit_write +EXPORT_SYMBOL vmlinux 0xbed2a05a call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0xbee817bf pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbefa9dd3 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0xbeff0e5c scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0xbf12b888 inet_accept +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 0xbf343037 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xbf4d3513 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0xbf4eca1d notify_change +EXPORT_SYMBOL vmlinux 0xbf667ba3 netpoll_print_options +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8b39e9 isapnp_present +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbf9e7f3d netdev_set_master +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc01eed33 __copy_from_user_ll_nozero +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc05ac7f8 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xc061b064 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0xc067359e atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc0988ad4 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0a8ff16 acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0xc0bc6a02 clear_inode +EXPORT_SYMBOL vmlinux 0xc0cf9053 input_set_capability +EXPORT_SYMBOL vmlinux 0xc0df4efb mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0xc0f65988 machine_real_restart +EXPORT_SYMBOL vmlinux 0xc0f784a8 acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc1256915 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xc12588cb bio_integrity_trim +EXPORT_SYMBOL vmlinux 0xc1343d97 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic +EXPORT_SYMBOL vmlinux 0xc18dd4b4 bio_alloc +EXPORT_SYMBOL vmlinux 0xc191bc6d pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xc1a22809 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xc1abebe7 x86_hyper +EXPORT_SYMBOL vmlinux 0xc1ac58a1 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0xc1b01e94 journal_force_commit +EXPORT_SYMBOL vmlinux 0xc1b5e2a0 wake_up_process +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1c4f750 tcf_hash_check +EXPORT_SYMBOL vmlinux 0xc1f7d7dd dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xc1fac36a tcp_tso_segment +EXPORT_SYMBOL vmlinux 0xc20371c8 open_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xc21f093a scsi_scan_target +EXPORT_SYMBOL vmlinux 0xc22cacf1 mdiobus_alloc +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc256fef6 prepare_binprm +EXPORT_SYMBOL vmlinux 0xc26335b0 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0xc266a294 dev_getfirstbyhwtype +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 0xc2b1211c blk_set_default_limits +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 0xc30815dd netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xc3133a89 set_binfmt +EXPORT_SYMBOL vmlinux 0xc31ab1d0 pci_restore_state +EXPORT_SYMBOL vmlinux 0xc32b6305 md_write_end +EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu +EXPORT_SYMBOL vmlinux 0xc350b86d blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xc35b17d0 pci_dev_put +EXPORT_SYMBOL vmlinux 0xc3635145 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xc3675152 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xc38d9c7a down_timeout +EXPORT_SYMBOL vmlinux 0xc39f2e9b dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0xc3a88e40 xfrm_state_update +EXPORT_SYMBOL vmlinux 0xc3aade2e pcibios_set_irq_routing +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3e78157 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0xc3f46119 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xc3fa6a59 memchr +EXPORT_SYMBOL vmlinux 0xc3fc4ffc input_register_handler +EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier +EXPORT_SYMBOL vmlinux 0xc4850ca4 cdev_index +EXPORT_SYMBOL vmlinux 0xc488a768 blkdev_fsync +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 0xc50e4dd4 netlink_ack +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc5409f63 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xc5492dca commit_creds +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc5718627 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0xc598104b unload_nls +EXPORT_SYMBOL vmlinux 0xc5b911e6 filemap_flush +EXPORT_SYMBOL vmlinux 0xc5be4902 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0xc5eaeab6 x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0xc5f73bc8 keyring_clear +EXPORT_SYMBOL vmlinux 0xc6392f49 phy_detach +EXPORT_SYMBOL vmlinux 0xc6436a94 single_release +EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xc68d906d blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xc69db51d unregister_console +EXPORT_SYMBOL vmlinux 0xc6b086d9 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0xc6b48668 skb_gso_segment +EXPORT_SYMBOL vmlinux 0xc6f23c3f security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xc6fa5028 __blockdev_direct_IO_newtrunc +EXPORT_SYMBOL vmlinux 0xc6fd06d7 __brelse +EXPORT_SYMBOL vmlinux 0xc7031bbc neigh_seq_next +EXPORT_SYMBOL vmlinux 0xc718c7fd remove_from_page_cache +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc725bc8e netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0xc72fc917 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xc73b8fb1 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xc766fd69 generic_file_open +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 0xc7baa609 bitmap_unplug +EXPORT_SYMBOL vmlinux 0xc7c06afe vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xc7c7d80f inet6_del_protocol +EXPORT_SYMBOL vmlinux 0xc7e2155e nla_put +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc7ef7105 inode_init_always +EXPORT_SYMBOL vmlinux 0xc8033012 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc8345cfb register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xc841a013 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc8755817 eisa_bus_type +EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0xc8a1f77c blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0xc8a554d9 simple_rmdir +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8b9a4a4 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xc8d8cb0e skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xc8e937f5 mmc_request_done +EXPORT_SYMBOL vmlinux 0xc9246ca5 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0xc927a9f2 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xc98daf4f security_inode_readlink +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 0xc9b7a190 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xc9b861c5 inet6_bind +EXPORT_SYMBOL vmlinux 0xc9be969a tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0xc9e08dc0 fddi_type_trans +EXPORT_SYMBOL vmlinux 0xc9ef5c7a ip_route_input_common +EXPORT_SYMBOL vmlinux 0xc9f59523 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xca0af930 mdiobus_scan +EXPORT_SYMBOL vmlinux 0xca173c35 lock_may_write +EXPORT_SYMBOL vmlinux 0xca332425 kfree_skb +EXPORT_SYMBOL vmlinux 0xca339382 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0xca3fc061 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xca552856 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca7f2c6c boot_cpu_data +EXPORT_SYMBOL vmlinux 0xca83acdc ppp_input +EXPORT_SYMBOL vmlinux 0xca8727e9 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca8ad0a7 dev_mc_del +EXPORT_SYMBOL vmlinux 0xca8cbdaa submit_bh +EXPORT_SYMBOL vmlinux 0xca945dcf set_user_nice +EXPORT_SYMBOL vmlinux 0xca9e50a4 replace_mount_options +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 0xcadfef78 pci_set_mwi +EXPORT_SYMBOL vmlinux 0xcae7f9a3 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xcaea9c3a elv_queue_empty +EXPORT_SYMBOL vmlinux 0xcaf202ef skb_find_text +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 0xcb75fa62 sock_init_data +EXPORT_SYMBOL vmlinux 0xcb825835 path_get +EXPORT_SYMBOL vmlinux 0xcba23e9b jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0xcbdf40ed simple_write_end +EXPORT_SYMBOL vmlinux 0xcbfd593e put_page +EXPORT_SYMBOL vmlinux 0xcc128009 save_mount_options +EXPORT_SYMBOL vmlinux 0xcc23db63 netif_napi_add +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc28ed21 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xcc290537 aio_complete +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +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 0xcca709be neigh_changeaddr +EXPORT_SYMBOL vmlinux 0xccb3cb41 napi_get_frags +EXPORT_SYMBOL vmlinux 0xccf5bc70 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xcd263c5c start_tty +EXPORT_SYMBOL vmlinux 0xcd2e0087 sg_miter_start +EXPORT_SYMBOL vmlinux 0xcd4daa9b dget_locked +EXPORT_SYMBOL vmlinux 0xcd56c22d __put_cred +EXPORT_SYMBOL vmlinux 0xcd63ef38 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xcd6c0f92 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xcd6d0c32 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xcd8a1703 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xcdb82b97 dm_snap_origin +EXPORT_SYMBOL vmlinux 0xcdd3b85d netif_rx_ni +EXPORT_SYMBOL vmlinux 0xcdd4ac99 simple_release_fs +EXPORT_SYMBOL vmlinux 0xcde23291 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xcdeae56f udp_lib_rehash +EXPORT_SYMBOL vmlinux 0xcdfc8382 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0xce15bef3 skb_copy_expand +EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0xce292380 input_get_keycode +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 0xce7a2fba I_BDEV +EXPORT_SYMBOL vmlinux 0xce85ff62 sock_wmalloc +EXPORT_SYMBOL vmlinux 0xceac1764 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0xcebb048e dm_exception_store_type_unregister +EXPORT_SYMBOL vmlinux 0xced66860 generic_make_request +EXPORT_SYMBOL vmlinux 0xceecfd70 mempool_free +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf03efc1 __netif_schedule +EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error +EXPORT_SYMBOL vmlinux 0xcf3fcf1b tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0xcf66382a __serio_register_driver +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcf7418ee generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xcf75b5a9 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0xcf7796cf fb_show_logo +EXPORT_SYMBOL vmlinux 0xcf885c01 datagram_poll +EXPORT_SYMBOL vmlinux 0xcfa32278 pid_task +EXPORT_SYMBOL vmlinux 0xcfa5049b tcp_poll +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfbadfc8 security_inode_permission +EXPORT_SYMBOL vmlinux 0xcfbf8973 pipe_unlock +EXPORT_SYMBOL vmlinux 0xcfc2a0ee read_cache_page +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 0xd00bbdf6 __bio_clone +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd028039a cdev_del +EXPORT_SYMBOL vmlinux 0xd04e52a6 bh_submit_read +EXPORT_SYMBOL vmlinux 0xd069f33e dmam_pool_create +EXPORT_SYMBOL vmlinux 0xd06fd9b8 make_EII_client +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0d8621b strlen +EXPORT_SYMBOL vmlinux 0xd0e235db qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xd0ed9640 inet_recvmsg +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f0a9a9 icmpv6_send +EXPORT_SYMBOL vmlinux 0xd0fb6cc3 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd117db66 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xd11b4384 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0xd11de6c4 handle_sysrq +EXPORT_SYMBOL vmlinux 0xd12ff4b1 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0xd13616a4 rtnl_notify +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd165297f sync_blockdev +EXPORT_SYMBOL vmlinux 0xd182b94c blk_integrity_register +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd1d56727 tcp_splice_read +EXPORT_SYMBOL vmlinux 0xd1dfdf14 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xd1e3b24b ip_setsockopt +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 0xd22d2a3f write_inode_now +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 0xd25fe5cd generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xd2610d60 locks_copy_lock +EXPORT_SYMBOL vmlinux 0xd26ff47f get_fs_type +EXPORT_SYMBOL vmlinux 0xd2701bb7 journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xd277fccf block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xd285d221 generic_setxattr +EXPORT_SYMBOL vmlinux 0xd288a438 __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match +EXPORT_SYMBOL vmlinux 0xd2a941d4 sg_init_table +EXPORT_SYMBOL vmlinux 0xd2c3ef9f unregister_key_type +EXPORT_SYMBOL vmlinux 0xd2e6a582 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xd2f3270a pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xd30d4ac3 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xd3187da4 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0xd31df156 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xd337b902 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xd33fc1d7 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xd34e5f7b bio_add_page +EXPORT_SYMBOL vmlinux 0xd34f0557 single_open +EXPORT_SYMBOL vmlinux 0xd35374d5 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0xd377520d free_buffer_head +EXPORT_SYMBOL vmlinux 0xd37901bf lock_may_read +EXPORT_SYMBOL vmlinux 0xd383107d kobject_add +EXPORT_SYMBOL vmlinux 0xd38cd95f unregister_cdrom +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd39eea5e blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0xd3a743aa pci_dev_get +EXPORT_SYMBOL vmlinux 0xd3bc395f pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xd3c2660c pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0xd3e33cd2 inode_add_bytes +EXPORT_SYMBOL vmlinux 0xd3e4852b mb_cache_create +EXPORT_SYMBOL vmlinux 0xd3e637a2 tty_hangup +EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource +EXPORT_SYMBOL vmlinux 0xd4203dc6 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0xd4223acf genphy_resume +EXPORT_SYMBOL vmlinux 0xd44cf0b1 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xd4653222 ip_ct_attach +EXPORT_SYMBOL vmlinux 0xd47ae4ba ip6_frag_init +EXPORT_SYMBOL vmlinux 0xd49dae29 km_state_expired +EXPORT_SYMBOL vmlinux 0xd4a55b45 deny_write_access +EXPORT_SYMBOL vmlinux 0xd4a8e537 lookup_hash +EXPORT_SYMBOL vmlinux 0xd4b1a2d3 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xd4c0297f sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xd4c414f8 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0xd4c5b708 inet_select_addr +EXPORT_SYMBOL vmlinux 0xd4ee26b3 misc_register +EXPORT_SYMBOL vmlinux 0xd50e3f07 journal_flush +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd52e7420 inet_addr_type +EXPORT_SYMBOL vmlinux 0xd54c96c7 atomic64_add_unless_cx8 +EXPORT_SYMBOL vmlinux 0xd54ffb2b dev_get_by_index +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 0xd58f55d7 scsi_host_get +EXPORT_SYMBOL vmlinux 0xd5a74063 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5c31c29 scsi_add_device +EXPORT_SYMBOL vmlinux 0xd5d1beda pci_reenable_device +EXPORT_SYMBOL vmlinux 0xd5fd885b nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xd60a9afa kmem_cache_alloc_node_notrace +EXPORT_SYMBOL vmlinux 0xd6147ae2 up_read +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd65ba617 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0xd677782d ___pskb_trim +EXPORT_SYMBOL vmlinux 0xd6900311 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0xd6a4310e jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xd6a47e43 nf_afinfo +EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6b4fe84 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xd6ba944b dma_async_device_register +EXPORT_SYMBOL vmlinux 0xd6c2f4f1 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xd6ce144b dev_uc_add +EXPORT_SYMBOL vmlinux 0xd6e9d808 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xd6ed881f skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6f04a2b skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0xd7090a12 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xd7150a4d _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xd748f2d4 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7c68e9a napi_skb_finish +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e20243 ip6_xmit +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7f36812 otg_get_transceiver +EXPORT_SYMBOL vmlinux 0xd7fe5e52 write_cache_pages +EXPORT_SYMBOL vmlinux 0xd80693e3 tty_throttle +EXPORT_SYMBOL vmlinux 0xd80757ac xrlim_allow +EXPORT_SYMBOL vmlinux 0xd81ee6a8 fsnotify_destroy_mark_by_entry +EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user +EXPORT_SYMBOL vmlinux 0xd86bbf23 skb_queue_head +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 0xd8bf6cbc bio_unmap_user +EXPORT_SYMBOL vmlinux 0xd8c7821a serio_unregister_driver +EXPORT_SYMBOL vmlinux 0xd8c97836 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8ef734d cdev_add +EXPORT_SYMBOL vmlinux 0xd904af58 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd92ef210 bio_free +EXPORT_SYMBOL vmlinux 0xd9388b95 skb_clone +EXPORT_SYMBOL vmlinux 0xd93ccd46 ndisc_build_skb +EXPORT_SYMBOL vmlinux 0xd9415ad2 __lookup_one_len +EXPORT_SYMBOL vmlinux 0xd967a716 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd98a3c63 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xd99c7dce pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xd9b4d883 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xd9c272aa mca_mark_as_unused +EXPORT_SYMBOL vmlinux 0xd9f0b58e cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0xda08c0d7 pcibios_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda2a3400 tty_shutdown +EXPORT_SYMBOL vmlinux 0xda307cda bio_pair_release +EXPORT_SYMBOL vmlinux 0xda3d9322 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xda5661a3 add_wait_queue +EXPORT_SYMBOL vmlinux 0xda76c10d fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda868925 blk_queue_dma_pad +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 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdac5500d skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0xdb0bae0e simple_statfs +EXPORT_SYMBOL vmlinux 0xdb3c066e sock_no_bind +EXPORT_SYMBOL vmlinux 0xdb6bcf8a skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xdb7104e0 __blk_end_request +EXPORT_SYMBOL vmlinux 0xdb716ba7 blk_init_queue +EXPORT_SYMBOL vmlinux 0xdb7cc4ff kunmap_high +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdb9f94e6 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xdbad6b63 udp_proc_register +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 0xdbf24c34 inet_csk_clear_xmit_timers +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 0xdc663b51 unregister_snap_client +EXPORT_SYMBOL vmlinux 0xdc7b7e7e ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0xdc846319 fget +EXPORT_SYMBOL vmlinux 0xdc88d0db inode_init_once +EXPORT_SYMBOL vmlinux 0xdc985f09 override_creds +EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family +EXPORT_SYMBOL vmlinux 0xdca0ed4e gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xdcaae6c7 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0xdcc72472 default_llseek +EXPORT_SYMBOL vmlinux 0xdcd6b375 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xdcfca447 d_genocide +EXPORT_SYMBOL vmlinux 0xdd00ac3a inet_add_protocol +EXPORT_SYMBOL vmlinux 0xdd01f632 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd2be696 __serio_register_port +EXPORT_SYMBOL vmlinux 0xdd3d0ff3 padata_start +EXPORT_SYMBOL vmlinux 0xdd5a686b bio_integrity_get_tag +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 0xdda3aeea kernel_accept +EXPORT_SYMBOL vmlinux 0xddb286bc get_phy_id +EXPORT_SYMBOL vmlinux 0xddc5f1b2 dquot_quota_on +EXPORT_SYMBOL vmlinux 0xde006ad2 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xde03293c generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xde2d2723 disk_stack_limits +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 0xde5865c1 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0xde601103 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde764553 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xdeaae67d sock_sendmsg +EXPORT_SYMBOL vmlinux 0xdecd966b check_disk_size_change +EXPORT_SYMBOL vmlinux 0xdeee8b96 dcache_lock +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf2fc9c4 neigh_parms_release +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf751768 netif_napi_del +EXPORT_SYMBOL vmlinux 0xdf7cb2f3 vga_get +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf8e4e58 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfbb8e7d pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xdfbbb9b6 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0xdfc3cb25 bio_endio +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfc82914 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xdfed0696 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0xdfede5e9 register_qdisc +EXPORT_SYMBOL vmlinux 0xe0496c8d pci_bus_type +EXPORT_SYMBOL vmlinux 0xe04d70c8 aio_put_req +EXPORT_SYMBOL vmlinux 0xe05acd6c tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe094ef39 sg_next +EXPORT_SYMBOL vmlinux 0xe0a5da56 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0acf705 vc_cons +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort +EXPORT_SYMBOL vmlinux 0xe0c2a85f phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xe0dde090 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xe0f2c867 sock_release +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 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe14f730a blk_plug_device +EXPORT_SYMBOL vmlinux 0xe15cd5fc put_io_context +EXPORT_SYMBOL vmlinux 0xe1733e5e bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe17fd6b6 md_barrier_request +EXPORT_SYMBOL vmlinux 0xe18017a2 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xe1ad583b __mmc_claim_host +EXPORT_SYMBOL vmlinux 0xe1feb3df acpi_root_dir +EXPORT_SYMBOL vmlinux 0xe21a49d4 cfb_copyarea +EXPORT_SYMBOL vmlinux 0xe2281f29 dentry_unhash +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe26e0026 uart_suspend_port +EXPORT_SYMBOL vmlinux 0xe276929a mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xe2815759 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xe287edea napi_frags_finish +EXPORT_SYMBOL vmlinux 0xe294d663 blk_free_tags +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2f40606 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe33d38be jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0xe34d8519 inet_register_protosw +EXPORT_SYMBOL vmlinux 0xe388e7af bdi_unregister +EXPORT_SYMBOL vmlinux 0xe3a6512d km_new_mapping +EXPORT_SYMBOL vmlinux 0xe3c6079e atomic64_set_cx8 +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 0xe3ed0551 __neigh_event_send +EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0xe3fdd734 ida_remove +EXPORT_SYMBOL vmlinux 0xe41751d2 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xe42646db generic_file_mmap +EXPORT_SYMBOL vmlinux 0xe42e9b88 dev_alloc_name +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe450df99 dma_set_mask +EXPORT_SYMBOL vmlinux 0xe456d99a __init_rwsem +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 0xe4ae967e icmp_send +EXPORT_SYMBOL vmlinux 0xe4c5732f dma_supported +EXPORT_SYMBOL vmlinux 0xe501824a dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe515b45e unlock_super +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe54091b4 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xe5455a6a wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xe55a48df install_exec_creds +EXPORT_SYMBOL vmlinux 0xe55e144a proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xe5661017 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe57f1679 tcp4_gro_receive +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5878ab3 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xe5b397d8 security_path_unlink +EXPORT_SYMBOL vmlinux 0xe5c61c13 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5c8aeec pcim_enable_device +EXPORT_SYMBOL vmlinux 0xe5cc5ea5 bdi_init +EXPORT_SYMBOL vmlinux 0xe5d29f85 dquot_resume +EXPORT_SYMBOL vmlinux 0xe5d6dd1d register_filesystem +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe601aa64 new_inode +EXPORT_SYMBOL vmlinux 0xe62745db blk_queue_ordered +EXPORT_SYMBOL vmlinux 0xe64658e7 alloc_trdev +EXPORT_SYMBOL vmlinux 0xe67380db neigh_seq_start +EXPORT_SYMBOL vmlinux 0xe6887e25 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xe68e78e7 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xe690b8fd __ipv6_isatap_ifid +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6a99a32 inet6_ioctl +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6f81f60 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe717e51a dw_spi_suspend_host +EXPORT_SYMBOL vmlinux 0xe720675f __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xe74cf0a7 mempool_destroy +EXPORT_SYMBOL vmlinux 0xe79793c7 tcp_ioctl +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 0xe8166900 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xe82d787b tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0xe843bdc3 file_remove_suid +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 0xe8dd0eae sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xe8ee1037 free_netdev +EXPORT_SYMBOL vmlinux 0xe909ce03 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe952bbb8 lock_sock_fast +EXPORT_SYMBOL vmlinux 0xe98ecb8a dquot_quota_off +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe99dcb2c may_umount +EXPORT_SYMBOL vmlinux 0xe9c8d83e file_update_time +EXPORT_SYMBOL vmlinux 0xe9df0994 tty_kref_put +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea2c7850 processors +EXPORT_SYMBOL vmlinux 0xea2d33a2 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0xea382428 blk_register_region +EXPORT_SYMBOL vmlinux 0xea468544 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xea4ac21a sock_no_mmap +EXPORT_SYMBOL vmlinux 0xea504752 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xea5e3e77 thaw_bdev +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xea8a8415 sk_dst_check +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xeaaf937f tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xeab09ee7 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0xeab39b62 cdrom_release +EXPORT_SYMBOL vmlinux 0xead0b1ed journal_get_create_access +EXPORT_SYMBOL vmlinux 0xead76fcf scsi_register_interface +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeaebb2f2 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xeb016870 find_inode_number +EXPORT_SYMBOL vmlinux 0xeb327772 __napi_schedule +EXPORT_SYMBOL vmlinux 0xeb71bf16 vga_put +EXPORT_SYMBOL vmlinux 0xeb7314c0 do_munmap +EXPORT_SYMBOL vmlinux 0xeb808c77 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n +EXPORT_SYMBOL vmlinux 0xebb796e7 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xebb8bf65 __pagevec_release +EXPORT_SYMBOL vmlinux 0xebc945e3 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull +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 0xec066bf9 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xec0c19f8 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec1d7a73 blk_init_tags +EXPORT_SYMBOL vmlinux 0xec2504ee genphy_config_aneg +EXPORT_SYMBOL vmlinux 0xec465b74 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns +EXPORT_SYMBOL vmlinux 0xec667771 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0xec917130 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xecb71b9b sock_no_accept +EXPORT_SYMBOL vmlinux 0xecc73df8 d_alloc_name +EXPORT_SYMBOL vmlinux 0xecd63d63 input_get_keycode_big +EXPORT_SYMBOL vmlinux 0xece358a2 dma_pool_free +EXPORT_SYMBOL vmlinux 0xeceebc8b md_write_start +EXPORT_SYMBOL vmlinux 0xecf3e924 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xed22baab backlight_device_register +EXPORT_SYMBOL vmlinux 0xed29d56f idr_remove +EXPORT_SYMBOL vmlinux 0xed2fde7a netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0xed386bad blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0xed3e4aee mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xed677df9 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xed803126 alloc_file +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 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc51c54 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xedcd4986 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0xee0cb392 writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee3941c2 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0xee45042d block_write_full_page +EXPORT_SYMBOL vmlinux 0xee5eb16b filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee95beb1 neigh_for_each +EXPORT_SYMBOL vmlinux 0xeea04950 arp_send +EXPORT_SYMBOL vmlinux 0xeea1ad9b fb_class +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xef074839 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xef1d35b7 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0xef31f605 __napi_complete +EXPORT_SYMBOL vmlinux 0xef343e5a mpage_writepage +EXPORT_SYMBOL vmlinux 0xef3bd862 mca_find_unused_adapter +EXPORT_SYMBOL vmlinux 0xef598cf6 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xef5b6c1b skb_append_datato_frags +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 0xef861ad3 tc_classify_compat +EXPORT_SYMBOL vmlinux 0xef8a47b9 bio_clone +EXPORT_SYMBOL vmlinux 0xef8f7d16 set_bdi_congested +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefa9e8f4 security_path_chmod +EXPORT_SYMBOL vmlinux 0xefcd2e52 bio_uncopy_user +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 0xefede043 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xeff14be9 ioremap_cache +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf04dedc7 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf090c6bc bdget +EXPORT_SYMBOL vmlinux 0xf09c7f68 __wake_up +EXPORT_SYMBOL vmlinux 0xf09d3f84 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0f9eda7 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf124a5c0 take_over_console +EXPORT_SYMBOL vmlinux 0xf13568f7 devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0xf15d6844 km_state_notify +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf190a5cc make_bad_inode +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +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 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf22c38a8 kill_anon_super +EXPORT_SYMBOL vmlinux 0xf2357254 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0xf2831ce2 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2b85cc5 tcf_em_register +EXPORT_SYMBOL vmlinux 0xf2e74040 mca_set_adapter_name +EXPORT_SYMBOL vmlinux 0xf2f7546e xfrm_state_add +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 0xf369ce04 udp_disconnect +EXPORT_SYMBOL vmlinux 0xf36bfb7d abx500_register_ops +EXPORT_SYMBOL vmlinux 0xf383bed5 inode_permission +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 0xf3a45d26 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3d27b15 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xf3e077db ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xf3e90755 mmc_remove_host +EXPORT_SYMBOL vmlinux 0xf40d5904 give_up_console +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf44a0224 mmc_resume_host +EXPORT_SYMBOL vmlinux 0xf4534004 f_setown +EXPORT_SYMBOL vmlinux 0xf45c6914 set_anon_super +EXPORT_SYMBOL vmlinux 0xf462982c find_or_create_page +EXPORT_SYMBOL vmlinux 0xf488b12b udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xf48a2c4c MCA_bus +EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL vmlinux 0xf49f3111 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xf4a24e3c __netdev_alloc_page +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4a6a31c dev_disable_lro +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 0xf4db9fcd scsi_put_command +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f36754 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xf4feaf10 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0xf4ff754a ida_init +EXPORT_SYMBOL vmlinux 0xf502d273 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0xf5033b7a unregister_con_driver +EXPORT_SYMBOL vmlinux 0xf510583f lock_super +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 0xf5630751 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xf59ba4f4 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0xf59c75df blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf5f0a160 scsi_remove_host +EXPORT_SYMBOL vmlinux 0xf609aa30 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0xf616176b blk_queue_max_discard_sectors +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 0xf6560933 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xf686f8e9 follow_up +EXPORT_SYMBOL vmlinux 0xf690f5e9 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xf692382f set_device_ro +EXPORT_SYMBOL vmlinux 0xf69ab400 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0xf69dc99e textsearch_prepare +EXPORT_SYMBOL vmlinux 0xf6a01fe7 dev_trans_start +EXPORT_SYMBOL vmlinux 0xf6a78ad8 dquot_alloc +EXPORT_SYMBOL vmlinux 0xf6b4c694 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6c01140 skb_pad +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6f33b74 fsnotify_obtain_group +EXPORT_SYMBOL vmlinux 0xf6f59a2a pskb_copy +EXPORT_SYMBOL vmlinux 0xf7021942 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xf70c2faf dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xf727e4a1 dm_unregister_target +EXPORT_SYMBOL vmlinux 0xf72a1fee journal_init_inode +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xf76eb431 generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +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 0xf817dfce inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82c0975 blk_sync_queue +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf8498cbc xfrm_bundle_ok +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 0xf89684ae bitmap_startwrite +EXPORT_SYMBOL vmlinux 0xf89d348d skb_seq_read +EXPORT_SYMBOL vmlinux 0xf8ec39fe mpage_readpages +EXPORT_SYMBOL vmlinux 0xf916a5e3 rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xf9207deb splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xf940a328 __next_cpu +EXPORT_SYMBOL vmlinux 0xf94e2703 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0xf97f9911 journal_restart +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9c20818 fd_install +EXPORT_SYMBOL vmlinux 0xf9d53aa0 blk_peek_request +EXPORT_SYMBOL vmlinux 0xf9db223a km_query +EXPORT_SYMBOL vmlinux 0xf9de895f xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xf9e1d7e4 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0xf9ef9967 skb_pull +EXPORT_SYMBOL vmlinux 0xf9f21419 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xfa5c752d scsi_prep_return +EXPORT_SYMBOL vmlinux 0xfa70108f dm_exception_store_type_register +EXPORT_SYMBOL vmlinux 0xfa88c2a5 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0xfa9d44ec bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0xfaccb352 textsearch_unregister +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 0xfb552d15 kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0xfb65a8a2 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xfb6a9f35 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfb8c3884 d_obtain_alias +EXPORT_SYMBOL vmlinux 0xfb90f86e vfs_follow_link +EXPORT_SYMBOL vmlinux 0xfbb1f39f block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xfbb4fd4c __getblk +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 0xfc06d6e7 pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0xfc0f5b7b blk_end_request_all +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc409feb xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xfc53dada ip6_frag_match +EXPORT_SYMBOL vmlinux 0xfc562165 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcb9f03d input_close_device +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 0xfd0534e2 vc_resize +EXPORT_SYMBOL vmlinux 0xfd202db1 genphy_config_advert +EXPORT_SYMBOL vmlinux 0xfd3af609 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xfd656c5a ndisc_mc_map +EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfda99b6c hippi_type_trans +EXPORT_SYMBOL vmlinux 0xfdb52905 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdc0e6ee cdev_alloc +EXPORT_SYMBOL vmlinux 0xfdebd659 d_alloc_root +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe029b6a scsi_execute +EXPORT_SYMBOL vmlinux 0xfe10ded1 d_delete +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe6bbb85 __page_symlink +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe7e1d72 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xfe97eaf1 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xfea209d2 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xfeb9fe45 bdev_read_only +EXPORT_SYMBOL vmlinux 0xfebd5940 d_invalidate +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfed53143 dq_data_lock +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfede077b tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff1d2b82 skb_queue_purge +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff3874e2 kernel_connect +EXPORT_SYMBOL vmlinux 0xff480992 dump_fpu +EXPORT_SYMBOL vmlinux 0xff4922e8 ethtool_op_get_flags +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 0xffc4ddc6 kthread_stop +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffdb82bc sg_free_table +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 0x05482b8e kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x094ac8f4 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0da7cee7 kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x124e82ed kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12d1b23b kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x195a86c5 kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e4580bb kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1f60971f kvm_set_apic_base +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 0x23d21a25 kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x262a910a kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x26c0262c kvm_get_cr8 +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 0x2e92867f __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f1a5d64 kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x30ccc640 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x31bdf61f kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x340b5cc6 kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x38867bba kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3d2dac1f kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3d6ef486 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4039e13f kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406813bc __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4a7cbe69 is_error_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x50eb7786 kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5102cf94 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x549e4150 kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x552b4da5 __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5568e68e kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56869095 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x583e9510 kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x58f4b31a kvm_before_handle_nmi +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 0x5e2ff366 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5f413a8d kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x62b4a15d is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x630346ba kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x644beb75 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x667c1615 kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6d6d9d5f kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7279b35d kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x74b25faa kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x794cd0d3 kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x80bb6301 kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x82125db3 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x83792b1d kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8d794eb0 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9227f4b3 __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x932d7c39 kvm_mmu_get_spte_hierarchy +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 0x9cda0a94 gfn_to_memslot_unaliased +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9d28606d kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9f3bef00 kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa361bc65 kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa4d45136 emulator_write_emulated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa5bfa378 kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa8d8a153 kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xad3178d6 kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb300a7f9 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb6fd81ad kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb818468a kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb81e3511 kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xba201b1e kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd377dc9 kvm_mmu_set_nonpresent_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd6d0fb6 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd94103b kvm_mmu_set_base_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc954c4bb kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcc3baa1d kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xce77f511 kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcecd28b4 __tracepoint_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcf529c6f kvm_set_memory_region +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 0xd56fe274 kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd72599ee kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd776babe fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7be16af __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7cceb14 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdccaf8cd emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe0696604 gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe2dc0f38 gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe43c54d7 kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe6870ee8 kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe8f95639 kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeb98f853 kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xecdb37d8 kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xedafa60d kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf629905b kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf714df97 kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfb5e1c76 kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfe4ac1e7 kvm_report_emulation_failure +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 0x00220fda async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x64128714 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x5b6b2805 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xe17b151a async_raid6_2data_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 0x01bc7fd2 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x05f75354 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1adeb566 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1ccfa9d5 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x20dcd311 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3689af94 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x41cc0466 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x42b9347a ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4cdef69f ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x82d57588 ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x85ed1490 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x96825f31 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb5a77bb7 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb72576e5 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/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 0x36d1f6a3 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3a07986f btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x5a746368 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x5d6eb3ea btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x9b6c4f24 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xb0e70798 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xed7e45c8 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xfddf8c0f btmrvl_enable_ps +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 0x3c2b8184 tpm_bios_log_setup +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x7e294412 tpm_bios_log_teardown +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 0x069ef79e gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0e19b602 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x200d5986 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x27967cc8 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2ccf5982 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x38265da4 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3bf11e60 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x42697967 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x75be5cd0 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7749a774 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x93f2f241 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9a26b681 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa0e43bac gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa7eee151 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xaa3c53c8 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb7f5ff40 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc3d70e80 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe9a363f9 gigaset_dbg_buffer +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 0x21e67c30 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xa1eda135 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xaeb2ceb7 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xb6ead7d6 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xfc637e0f sm501_misc_control +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 0x2205dd4e sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb32da01b sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc480414b sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd0ceb153 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf3275247 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf5d11b7f sdhci_resume_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 0x1fb03200 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x56bb7502 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x5bbe0d4e register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xeff5ddb5 add_mtd_blktrans_dev +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 0x8c9d2a62 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x97359f30 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xba608121 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xc47ba665 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xe2b300d8 macvlan_dellink +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 0x1c820b19 libipw_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x5d879189 libipw_rx_any +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 0x07769fa8 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0dfff5ce rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2241def8 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2c15335f rt2800_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x533ea6dd rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x54348d2e rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6007682c rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x727d6f3e rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x75542213 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7c74933a rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x882ea3a3 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x91f556ec rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9afa19a2 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9f89c421 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa2bcea72 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa4582516 rt2800_init_rfcsr +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xad95b4a9 rt2800_init_bbp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb7e17e09 rt2800_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbf441808 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc17ce79c rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd5f481cf rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe793bf82 rt2800_mac80211_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xeb597b5b rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfab3597f rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x03595784 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x12f69c93 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1b5c0e91 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3729677f rt2x00queue_get_entry +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 0x42d9a445 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4d745cf6 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4fd30091 rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x59d0bb1a rt2x00mac_stop +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 0xaa08ca15 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb01c5cd4 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb7d59d3a rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc5a73921 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd868310d rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe8d3027c rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xec42e534 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x0f612a70 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x2af2c281 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x3f33ffe8 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x7ba967c2 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x95dd831e rt2x00pci_write_tx_data +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 0xe9ba7116 rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xfe6745de rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x011b5609 rt2x00usb_vendor_request_large_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x03434113 rt2x00usb_kick_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x09a3e806 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2760c11a rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3e5037b2 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x534eb17b rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x903b8aa3 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa5e13ce9 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa975299c rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xab871e53 rt2x00usb_kill_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xac6f02d9 rt2x00usb_write_tx_data +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 0xdb7ab991 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xee2e6fbd 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 0x54633b05 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00730562 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1fe0007a iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2ad81612 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2b2c9805 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3195f736 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x31d07b92 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x321c975d iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3905d4a1 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4265cdac iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x47b9b58e iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5a4059e0 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5bafd1a9 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5d4d5fff iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x69a905e3 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6a1e9de2 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6a9e9d48 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7e04905a iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7e4339f1 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x80f623f2 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8417233b iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x842e4805 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x845603f7 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x879c8d0a iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d96136f iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x92ced337 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9642fc40 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x98936631 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9c0fe908 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa09cf676 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb2a1be48 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb8fab920 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbf40005b iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc3cbc50b iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc3e01a72 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcfa5fa07 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd4a59432 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd5d8dfc5 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe51e31bc iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe688cf2f iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xef107156 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf13242fa iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf43d98a9 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x027102e0 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x14c3de9f iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x14f07f0a iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1fb736be iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x29cd904c iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x484f6387 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x73ea5fe7 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7b89c281 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7c2c1ffa iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x94932932 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa4ec351a iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb0d599f7 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc0147e48 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xcdeb776c iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd5ea746a iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf91cfdb4 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x189d79de sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1be6ed1f sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x26bf519b sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2b4269d9 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x382debba sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3a462045 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x54052f67 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5a2c5ed1 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5e7773aa sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6da05b7b sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7db051d8 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa6c10729 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa89de4e6 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb29625de sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc0a5774a __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc274a775 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc89f1b51 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc95ef4cf sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcefea295 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd3a64ae8 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd8225fd1 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf47ce5fa sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfcb3dd09 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x33b9da1c srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x74cb1c3a srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xb75fa43a srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xbc841e13 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xd38674b1 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xd796a169 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x0e317697 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4747fa9e scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5357e9f9 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5bb74951 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x97e2594b scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x993cf86b scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc648ca9a scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe43eaf41 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xecea8ac6 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x048704e1 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x07f86e82 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0885a741 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0e07abf9 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1bc85ca5 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2783bc99 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3be53faf iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3e20c7c8 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3f3a8303 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4daa9529 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x63babc98 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7418cc4f iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x76b5d911 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x786c35a5 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8e1f5ab7 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x997605e2 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa9e71427 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xba3ba3cf iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdd6c5251 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe47f85d0 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xeb5909bb iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf2f65992 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x0e7c4a8b sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x44c3dabb sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x87a5bdaf sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xc446f47a 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 0x0ac5b779 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x5b37a0ff srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x5c0e3962 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x8545a0eb srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x95311871 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 0x14d1758a 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 0x1b3866fc dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x1f656ddd usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x22da973b usbip_task_init +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x32db16f6 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x3977434b usbip_stop_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x40fa2edb sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x44adbad4 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x492d9dd2 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x6a6f4b20 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x769d0077 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 0x8d8298cb usbip_xmit +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x90a9daf1 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xa75e88bf usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xcc556db2 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd7cd7877 usbip_start_threads +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header +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 0x4576cc93 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x8a868d8c usbatm_usb_disconnect +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 0x03141e56 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0db3ef29 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x12349eea usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x18de73e4 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x232da2af usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2b2a74ba usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3139b4e6 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3761dd32 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x39a0f49d usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6c282276 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7ebe40c9 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8f8c31a1 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xcb17fec4 ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd11ff1c2 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd8fb3bc2 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd98b39d9 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe03fda1d usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xed7c5da5 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf48433f5 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x141831c1 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1947351b usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1a55d17f usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1c1fe347 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x22efe556 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2b1c9255 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4c44f047 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x54cdf7f9 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6473d20d usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6a7500ae usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7171b107 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x73d85c0b usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x750558f2 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7c0eaada usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x84fd0b39 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x89493ae1 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x928bda87 usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x997634ee usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb0d2ce11 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb5444869 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbd3a5ecc usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcd03cff5 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd542f041 usb_stor_access_xfer_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 0x78288cf8 fat_setattr +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 0xc6df5310 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0xcb8b2752 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xeda25966 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xfc8545f1 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 0x4ce8e4ec nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x569ccbe7 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x9826e31d nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xb85f3288 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xc52bb153 nlmclnt_done +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 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 0x37d15865 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x61b816d8 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x921c7c8f o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9b3e9fdf 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 0xb0e15d31 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb88aafbf o2hb_unregister_callback +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 0xf52057bc o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x09040381 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x1962332e dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x332ad56c dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x60867ef4 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_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 0xea51bc40 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xf3497d2c 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 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 0x90e30c45 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 0x7bdf46ec bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x005320f5 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x011e7ebe inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x023aa9f7 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0cf1af97 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x116bc91d dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x165b7237 dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1b7ef974 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x247c916a dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2738da2c dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x283601b9 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2a74f272 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2eac97f8 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x42b071df dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x525ab006 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x526f56c6 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5bf1bddf dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x660397e8 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x67be2874 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7539da4e dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x88f960fd dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9c327e05 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9f1bd860 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00a52b9 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb0413a6c dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc5bc4d2c dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc7dedf42 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcc757a24 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xda73c56a dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe2f4de8d dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe900d00f dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe9fb4030 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf63cd983 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfe1da133 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfe339e43 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x0f18fbeb dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x1338cbb5 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x52d42526 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x73a4fde2 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xc6783d12 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xf9cec876 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xe4638a78 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x1ca71ae2 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6ae09c84 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 0x38f8760f 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 0x7aae76ef 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 0x98caabf1 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xa1bb7369 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xdc6c692d nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xe52107b6 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 0x080aade2 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x170233b4 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x4bd5adfe tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd9c2267d tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe8a30e41 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xbf1de6a3 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0137a347 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x03ffdbdb l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x139ea620 l2tp_udp_recv_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x27a484a8 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3920fda1 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x67a91253 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6d34bade l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7c5c04c6 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7e71c8a5 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x80b9b0ad l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x83a71c86 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa90a138a l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb1b49ce4 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc53b28da l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xcc627902 l2tp_tunnel_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe9fda7ff l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf042bbb0 l2tp_xmit_core +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 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 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 0x54a85686 nf_conntrack_l4proto_tcp6 +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 0x669e3404 nf_conntrack_l4proto_tcp4 +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 0x81788c9e nf_conntrack_l4proto_udp6 +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 0x94ed9fe9 nf_conntrack_l3proto_generic +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 0xb34eee1c nf_conntrack_l4proto_udp4 +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 0xd838556a seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd925d07e __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe3bbe64a __nf_conntrack_helper_find +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 0x5a3e1c8e nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xf5eb7a79 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x225a80d0 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x36c42e06 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5af29663 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8f5594f0 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa916c6c0 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xaa279839 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd6fa7606 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xdcce2d17 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe5c865e2 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xfd8c2dc2 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xfd2ce88c nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x0fb92b43 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xb75cb8f7 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xc3bd999c nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xea32414b nf_nat_pptp_hook_expectfn +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 0x084f1f5a ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x12097407 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4069a3f3 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x54ac8c32 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x664dbd21 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7cdfeb61 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7f9acf0b nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8e2904d7 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x912bc3b3 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xad1c5502 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xae673e26 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd0a6cd16 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfee25fa4 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x6fb8c6bd nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xaf6ee47e nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xdcd95681 nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x10bc81d4 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x403de0bc nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x433f1b59 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x51ab9355 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x94640d79 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x9808d369 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xb1608584 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x20d6d554 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x29d72865 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x46d9bef5 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x510b8a57 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x57460191 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5fa49e4b xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6145218d xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6871255e xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7c1afecc xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8aa3557e xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9feb90da xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb17c697b xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xbeb39739 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe67c585d xt_table_unlock +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 0x0c0d5e05 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x118d4766 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x274475cc rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x2eaae5fd rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x36f91a28 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x3d25425d rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x4a2b60c7 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x4c601024 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x58048c38 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x5d5d20d7 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x606dc72b rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x65faa9b5 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x6f497e80 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x8940a87a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x8c877c0a rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x93ef4dc1 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x9411f6c5 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xa0e8d2ad rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xac2b9dd9 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xb1011c68 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xcd1582ab rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0xf58ccc3b rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0xfa5af405 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xfe685717 rds_inc_addref +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x02f9e110 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xc0e2000f 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 0x06ee6ad7 gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x0f4f6394 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x318056aa gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x34c39ad8 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x4fcb6b7a gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x83963046 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x84b66e39 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 0x8e1b104e gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x93fa1294 svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xbff67370 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xda9bb539 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03a6c196 rpc_exit_task +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 0x080a7881 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0821a402 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0da37931 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f9fd9c0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ff079d5 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0fff73f7 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10cd70f1 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1217ac4e rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x136b2554 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15e456f7 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x168f0ca7 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16e74e36 svc_sock_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17d20441 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x18ce00a9 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c90e4f0 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1cf8f145 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d0fb1f1 rpc_peeraddr +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 0x234ded35 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x257550fa rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x262af0cc rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26895810 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26cbba1e svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27e3c752 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d5d5c2d rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f1304e4 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32c6f995 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3430c152 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x34e36dd7 cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x377e6c86 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37b40063 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37ef35b1 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39bd2ac3 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c9fbca1 svc_xprt_init +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 0x4129cc48 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41c5f212 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x42546fa5 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44090104 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4491089c rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49832bac svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a37cc83 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4cf0c6bc svc_xprt_received +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 0x521dc458 rpc_create +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 0x559e3a53 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5817585f rpc_delay +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 0x5afdddc9 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c349e1e xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5eb000a0 auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f91b451 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61a061b6 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64a327ad rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65ee053b xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6892ccd4 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x68f99197 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b34f03b rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ba013c5 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c8afb20 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ec4a347 xprt_release_xprt +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 0x70a168f9 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73d8cb42 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7584a7a2 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78e03a8d cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7904d3a6 svc_find_xprt +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 0x7b61da22 rpc_peeraddr2str +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 0x7f0e7481 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80e26b9b rpc_queue_upcall +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 0x87c37f16 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8881a6bc auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x893e3060 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89d0b70d rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ad9dc78 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c0ea937 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c6f95da rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ce2f669 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f34af44 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x933f7bd1 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x949355b5 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95f60676 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ace26de rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c0b3641 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cc07685 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9feee8cf xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4d1966f rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac415b42 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb07a9fc7 auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0b68df6 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2a1d653 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb38228be rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4804cc0 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6d906c1 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb85bceab rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb8a0b01 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe18bd3a svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe68b0e6 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbea992c2 xprt_adjust_cwnd +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 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5207482 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc648a317 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc865ef2b xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8891bc1 __rpc_wait_for_completion_task +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 0xcee91122 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0841005 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0b1ef05 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd20b58ec rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3ec761f xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6a446c9 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6e5aa98 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7f1439b put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd9ca848b read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe06b08ba svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe18b11d2 rpc_killall_tasks +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 0xe6cc8835 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe89df73b svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8b9b975 xdr_skb_read_bits +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 0xebd0b5fe svc_recv +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 0xf0c1eb3d svc_sock_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf56d287b xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf64d2ed9 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6f8cc42 xdr_partial_copy_from_skb +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 0xfbcbc68b xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfda87236 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe59c869 auth_domain_lookup +EXPORT_SYMBOL_GPL net/wimax/wimax 0x040f98a0 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x26226315 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2e440cec wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x3b1b9a57 wimax_msg_send +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 0x68d07610 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x7f04a3f6 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x90848b74 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xae896acf wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb7b85e36 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xc6ec4c4f wimax_report_rfkill_hw +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 0x0edf412a ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x14dafa57 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x300626ec ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xfbdb9fb5 ipcomp_init_state +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 0x002bec66 __create_workqueue_key +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 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 0x016b9869 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x01fcbc9b task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x025e8731 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0263da50 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x02b62e27 tty_buffer_request_room +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 0x03dc56c3 elv_register +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 0x04a93edb sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x04aada29 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x04b74886 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x04c70d75 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x04dfff1f blk_execute_rq_nowait +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 0x05025afb ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x051f4cff tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x052a2f28 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x054dc840 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency +EXPORT_SYMBOL_GPL vmlinux 0x05886c73 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x05a32dfc regulator_notifier_call_chain +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 0x06be1702 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x06c8e9cc crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x07103777 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x071388a5 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x075a2cd4 dev_attr_sw_activity +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 0x079bb4f0 dev_forward_skb +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 0x07f1645e inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x082ab252 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x086ee9a9 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x08d328ab sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x08dcde8b ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x0915d604 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x092bc6f9 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x093872af blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x09402b37 blk_trace_startstop +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 0x0a09c642 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x0a3fc4b9 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x0a4a32db bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0x0a7dd50f platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x0ab2bf84 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0x0ac0fd45 cpufreq_get_measured_perf +EXPORT_SYMBOL_GPL vmlinux 0x0afb76a1 ata_acpi_cbl_80wire +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 0x0b2f204f unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0b604791 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x0b6cfae1 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x0b74e67a spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x0b7a6e7d skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x0ba52a32 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x0bd900a1 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x0c0366d7 tcp_register_congestion_control +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 0x0c805f93 clflush_cache_range +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 0x0d12544e sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x0d482be8 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x0d4e73c5 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x0d70dc63 ring_buffer_empty +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 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e6a0889 eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x0eba2b1b usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x0ede6810 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x0ee39760 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x0ef87db0 put_device +EXPORT_SYMBOL_GPL vmlinux 0x0ef889d7 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x0f33f49c spi_async +EXPORT_SYMBOL_GPL vmlinux 0x0f9d22fd pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x0fef66cb crypto_larval_kill +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 0x10a34e2b ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x10efd59d shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x1116cbbb rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x1125a51d usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x1127a40d sysdev_create_file +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 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x12002e9c crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x121aaceb ring_buffer_size +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 0x12a834fe cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x12c1c5de mce_chrdev_ops +EXPORT_SYMBOL_GPL vmlinux 0x12d06dff hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x132b4444 dm_register_path_selector +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 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13ea246f tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x13f8ecea anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x14002f21 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x141a452e rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x145784d1 gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x14672737 rtnl_link_unregister +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 0x156f874e __ip_route_output_key +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 0x16234e28 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x166fe934 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x16980498 inet6_hash_connect +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 0x172a1bc6 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x172e72d4 vdso_enabled +EXPORT_SYMBOL_GPL vmlinux 0x17390da5 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x1784ca93 tty_init_termios +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 0x18a54af6 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x18b32e50 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x1934dfda wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x1955d30f inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x195ef30b hvc_alloc +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 0x19f64d36 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1aa2cc81 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x1b1f2bda speedstep_get_freqs +EXPORT_SYMBOL_GPL vmlinux 0x1b6021bd sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1c1dec14 ring_buffer_alloc_read_page +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 0x1d6781a9 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x1db2c4f4 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1e03dade user_describe +EXPORT_SYMBOL_GPL vmlinux 0x1e359831 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x1e41640c bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x1e54d464 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x1e5522a0 __sock_recv_timestamp +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 0x1f1e8e27 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x1f67447c proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1faf1725 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x1fc2c781 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x1fc448a3 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x1fc8072e lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fd5cfe4 fib_rules_cleanup_ops +EXPORT_SYMBOL_GPL vmlinux 0x1ff363c1 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x202953e4 apic +EXPORT_SYMBOL_GPL vmlinux 0x205d3545 ata_slave_link_init +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 0x2174e702 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x21c557c1 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x21ed56bc pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x21f6d598 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x21fcad9e dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x22343818 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x2247ba20 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x22581b62 init_pid_ns +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 0x22a0041c skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x2303eca6 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x232023c3 disk_part_iter_next +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 0x240b739a iomap_create_wc +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x246f4153 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0x248f5c22 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x24912ec6 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x24bd2ded dm_rh_region_context +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 0x25c6f240 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x25e7202f __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x25e7c963 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x26201aaf dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x263ec4b4 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26daf833 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2708bd3d xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +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 0x287a82d3 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x28988edf debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x28cbfb02 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x292bf030 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x29656dbc tc35892_block_read +EXPORT_SYMBOL_GPL vmlinux 0x298b44bb regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a7d0da4 find_pid_ns +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 0x2b28c5ae sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x2b53c958 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x2b668fd2 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x2b67f096 speedstep_get_frequency +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2b8a09a7 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x2ba0d7b8 pci_disable_rom +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 0x2c6a0800 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x2c731786 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x2caeee74 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x2cc0d9b0 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x2cc3ff6f ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d37e595 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d955c10 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2db0c42e driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2e3beaa9 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e5b6b09 inet6_csk_bind_conflict +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 0x2efd9cdb scsi_dh_detach +EXPORT_SYMBOL_GPL vmlinux 0x2f3e35e1 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f54c193 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x2f7ac743 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2fbf20f1 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fdd3c7c ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x2fe73b42 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x30041eca fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x30167838 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x301dbb3f tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +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 0x3122528d part_round_stats +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 0x31c29b8c dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL vmlinux 0x31d54570 __module_address +EXPORT_SYMBOL_GPL vmlinux 0x31e56216 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x31f0d310 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x32157479 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x322d0217 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x322e9235 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x323090c1 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x323cff4f usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x323e2269 dm_rh_inc_pending +EXPORT_SYMBOL_GPL vmlinux 0x3284c3d5 tty_ldisc_deref +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 0x33487678 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x33683108 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x3394e536 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x339ef289 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x33fab8ad sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x342fd827 ata_std_error_handler +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 0x34b6d031 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x350f54a6 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x35102dd0 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x35468da5 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x358b6b20 __inet_lookup_established +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 0x362d8cbd wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x363e731f device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x364bddcc sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x36562d04 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x36ab2a17 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x36aeffcd crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x36b6077a clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x36ecf005 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x3754f74f securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x3841ab01 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x384a6253 ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure +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 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3aa6e479 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x3b0c5af2 disk_get_part +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 0x3b68c664 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +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 0x3c02c139 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x3c1c1c6a __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x3c4e0f4b sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x3c69edd1 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x3c78fc61 skb_segment +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 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d2d7ecf ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d4bbd45 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x3d831c2e inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x3db2e82c usb_register_device_driver +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 0x3e38e4da inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3e3ab0a7 ata_std_prereset +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 0x3e8e1b69 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x3e932a15 blk_lld_busy +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 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 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 0x406d63df ip_route_output_flow +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 0x40b65697 scsi_unregister_device_handler +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 0x41417f54 scsi_mode_select +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 0x41e1d326 rtnl_kill_links +EXPORT_SYMBOL_GPL vmlinux 0x41ff8556 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x4201fb03 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x4209a3d0 ata_cable_80wire +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 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 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x43426444 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x434eb5a2 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x4356697f device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x4368f3c4 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x438292ad inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x43dbc704 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x43e88d3d crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x43e9e125 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x43ef1e4a get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x43efaf8f cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x443c1ff3 acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0x4440abf8 filter_current_check_discard +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 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 0x45eea3a4 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x45ef8e4e screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x45f3d254 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x4604b59b scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x463fa849 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +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 0x48bcda33 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x48cc3c21 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x48fdfd0a __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49907a84 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x49ab2cce ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x49d769fc security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x49db8db4 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x49ef4325 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x4a25cf5b blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x4a44e7de hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4a4b86ab usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x4a4ce5e7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x4a5f6b07 ata_common_sdev_attrs +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 0x4c485c4d sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c795e56 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x4c9b77f5 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x4cc7ef84 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x4cde0d20 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x4d66cb92 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x4dca55ea ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x4df2277e pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x4df7228e ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x4e1b71be inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x4e1dad01 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x4e2ebf86 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x4e37a5d1 crypto_shash_digest +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 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 0x4ff1b6d1 gpio_request_array +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 0x50c77585 dm_rh_flush +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 0x51362b00 dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL vmlinux 0x514bd38f led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x515bdb64 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x5170c0fd blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x51c7c6c9 dm_rh_get_region_size +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 0x5292c6e5 dm_dispatch_request +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 0x539af0c4 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x539b71c9 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x5404b6df dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x540ccbff wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x5428ac56 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x542a3e4b sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x542a9eb0 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x546604a4 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x547bd13d ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x55367d3a queue_work +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 0x5738cfc5 __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5748bc4c led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x577ec927 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57a6caf5 acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0x580684ac kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x583e6bd4 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5852d7bf ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x58b4a046 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL vmlinux 0x5981c982 mmput +EXPORT_SYMBOL_GPL vmlinux 0x5983a8a8 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x5999f3fd crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x59efc579 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x59f01441 hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0x5a08c629 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x5a282884 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x5a62af9f devres_add +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5ac9e2a3 dm_rh_update_states +EXPORT_SYMBOL_GPL vmlinux 0x5af625dc unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x5b2ce91a __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x5b44a3ed acpi_smbus_register_callback +EXPORT_SYMBOL_GPL vmlinux 0x5ba7493f wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x5bc21796 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x5bd97e60 scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c067746 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x5c364525 xfrm_audit_state_replay_overflow +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 0x5cce6877 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table +EXPORT_SYMBOL_GPL vmlinux 0x5d51bcf7 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d81bf17 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5d96e3f2 dm_rh_delay +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 0x5ed954e1 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5efe8271 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f3eebe6 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x5f50696e ata_sas_slave_configure +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 0x5f8cf15b dm_rh_get_region_key +EXPORT_SYMBOL_GPL vmlinux 0x5fbb4989 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5fecef56 ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x6008d853 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +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 0x610f92e7 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x6117489c blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x6142093a platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x616bd5cd crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x618aafde ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0x61b43274 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x61b64c51 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x61b775e0 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x624160a1 vfs_setlease +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 0x63cfb03a unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x63f2063c user_match +EXPORT_SYMBOL_GPL vmlinux 0x640a1adc ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap +EXPORT_SYMBOL_GPL vmlinux 0x64301009 ring_buffer_commit_overrun_cpu +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 0x6526aff0 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x652872db scsi_nl_add_driver +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 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +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 0x667ef539 vfs_lock_file +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 0x66e1df5f ring_buffer_swap_cpu +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 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 0x68ccaffb sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x68fe78d8 xfrm_audit_state_icvfail +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 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 0x6a3aba6e usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x6a4731ac register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x6a57cd29 dm_rh_dirty_log +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 0x6b6ecb82 raw_seq_start +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 0x6bff561d dm_rh_start_recovery +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c13548e ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x6c2c9e7e usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c4f30db tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x6c92c73a ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x6cd46399 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d3eb545 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x6d510162 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x6e298b0f __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x6e7338c5 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +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 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f3f02f6 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x6fd768e7 sdev_evt_send +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 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 0x7156d3d9 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x719fc3c1 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x71b34f27 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x71bd088c dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x7204132c __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x72058899 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x72325d32 securityfs_remove +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 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x7285f84f unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x72bf6554 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x72db1cc8 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x72deaae8 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x72f6d515 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x733c7fcd module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x735e62ce ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x742bfb89 __audit_inode_child +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 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74bbce54 inet_csk_listen_start +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 0x751761d1 sata_link_debounce +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 0x761bcb03 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x768d08fb __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x76a42566 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x76d900f4 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x76dcdd14 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x76ef16b3 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x7790adc0 aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x77d56cc7 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x77df0a28 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +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 0x7886b10b crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x788a26f4 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x78cf67c3 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x78e4ecab sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x78e646c2 ata_eh_thaw_port +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 0x79258f9c alloc_vm_area +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 0x79860adc dm_region_hash_create +EXPORT_SYMBOL_GPL vmlinux 0x79c25470 ata_ehi_push_desc +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 0x7a632bb4 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7a74c22d usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x7a88ec0c queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x7a8906b7 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x7a890c6f get_current_tty +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 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 0x7be8ed11 ring_buffer_reset +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 0x7cb3f1af sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x7cb75d17 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x7cbff1f3 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x7cc66979 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x7cede97f d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x7d48ce86 br_handle_frame_hook +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 0x7e2170e7 dm_rh_stop_recovery +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +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 0x7e9b1599 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x7eacbf45 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7f54a2c8 ata_link_online +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 0x7ffcfe72 dm_kill_unmapped_request +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 0x80798f9c sata_scr_write +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 0x80d933dc ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc +EXPORT_SYMBOL_GPL vmlinux 0x812e1075 platform_device_add_resources +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 0x81797133 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x81c4c666 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x81f80822 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x821611c1 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +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 0x82cbe94c mnt_clone_write +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 0x83046ce9 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x833879c5 inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0x833a0bf8 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x83784c1a raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x83786039 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x83a7d3b8 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x83b41bb2 print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0x83e7cc09 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x840bb88b bsg_unregister_queue +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 0x846131f2 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x846a7d07 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x847059a8 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x84e3941f ata_std_postreset +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 0x85c00efd dm_put +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85cee199 ata_bmdma_port_intr +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 0x8732fe73 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x875d7e37 each_symbol +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 0x879ec8e6 scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x87a14619 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm +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 0x88001599 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x880d7c67 sysdev_show_int +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8810f714 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x88200f3c cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x886736fc olpc_platform_info +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 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x89a1c0f9 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x89a8e236 pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x89de0223 put_driver +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 0x8a78436a vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x8a8d0f11 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x8a9fb15c usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x8aeb20e2 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x8b173d26 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x8b239c79 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x8b49d831 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b8cade1 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x8b8e4fec ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x8bb42dce usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x8bbb6449 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x8bef8f26 acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0x8bff1b81 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x8c18eb4a inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x8c307b66 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x8c4bdbbc ref_module +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 0x8d75284c mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x8da17b42 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x8db864e9 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x8dbfdb8b register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x8de63134 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x8e204f08 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x8e33762f ring_buffer_discard_commit +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 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 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 0x902f7f29 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x9097a742 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90bedbea mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x90dd99db class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x9133de61 ip6_dst_blackhole +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x915e1cbc dm_unregister_path_selector +EXPORT_SYMBOL_GPL vmlinux 0x91bc2b7b srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x91d11bd7 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x91eee249 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x9218d695 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x9222c940 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x922a391c get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x926126b2 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92daffda devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x92ea2bd5 ata_pci_device_resume +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 0x933a9dc0 rtc_irq_register +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 0x93dad460 ata_pci_remove_one +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 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 0x95673a72 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x958b8743 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x95a23546 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x95de77ed ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x95df14be ring_buffer_normalize_time_stamp +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 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9715fe80 ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x972e3612 do_add_mount +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 0x9861e640 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x9865f222 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x98ad8a90 debugfs_create_x16 +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 0x9982ae10 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x998bc9dd tty_get_pgrp +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 0x9a1d58b7 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9a26acd1 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x9a2bc4b3 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x9a4c64ed inet_twsk_put +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 0x9b09447a kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x9b1d1b9a fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x9b475cd5 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x9b50d301 ring_buffer_consume +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 0x9bd4a35f ab8500_read +EXPORT_SYMBOL_GPL vmlinux 0x9c09fe7c da903x_reads +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 0x9cc5cc34 tty_ldisc_ref_wait +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 0x9d18aa07 dm_rh_dec +EXPORT_SYMBOL_GPL vmlinux 0x9d2b6a58 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x9d6b83e9 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x9d953d6e eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x9da353e5 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x9dcfaf53 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x9dfb27b6 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x9e8f0b78 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x9e9e0fcd ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x9ebb696c ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x9ebf48b7 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x9ebff902 start_thread +EXPORT_SYMBOL_GPL vmlinux 0x9f02e93b fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x9f716baf crypto_create_tfm +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 0x9fd3017b dm_rh_region_to_sector +EXPORT_SYMBOL_GPL vmlinux 0xa0208e02 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xa031276e sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0xa0438564 inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa04653ab ata_dev_disable +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 0xa1388000 put_pid +EXPORT_SYMBOL_GPL vmlinux 0xa18e5442 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0xa1e5a580 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xa2054d02 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xa21c68dc klist_iter_init_node +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 0xa304d1d1 blk_queue_rq_timeout +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 0xa3798635 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0xa38faf86 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0xa3934f44 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0xa3a62d77 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0xa3ca4970 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa41a3472 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xa43dff85 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa472e009 sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4ac3e94 device_create_vargs +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 0xa68be9fa srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa6b295f0 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xa6bae256 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xa6bd947a ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xa6be2920 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0xa718688b bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0xa7330af7 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0xa73801ad scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xa738fb4a sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0xa75d6c0e crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa7aa07c5 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0xa7adabad __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xa7d4c7f3 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xa851b9d3 pm_request_idle +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +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 0xa8cac507 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa95a4634 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xa9679281 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0xa98fbacc skb_pull_rcsum +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 0xaa12fa5b vfs_removexattr +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 0xaadddf21 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xab01d91a apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xab13e868 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xab335c77 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xaba73acb __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xabdedac0 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xabea67d3 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0xac7e785e rdev_get_id +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 0xaccaf0ef posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xace80441 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0xacf7646c tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xad0c83c4 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0xad422f58 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad857633 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0xadb297c5 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0xadbbcd92 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0xadbcabfc attribute_container_unregister +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 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 0xaea297e8 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xaeb307b5 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xaedfa509 ata_timing_compute +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 0xaf98fc75 kmap_atomic_pfn +EXPORT_SYMBOL_GPL vmlinux 0xb005a19e cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xb01d487e fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb022f6b5 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0xb09c88c9 inet_csk_listen_stop +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 0xb0e5aef6 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xb0f24b96 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb131c04e __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xb143b2df inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0xb153ca06 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb18506b9 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0xb18b755e inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0xb193f77d pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0xb1a6dcb6 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xb1abfd47 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb206efb4 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb24312a1 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0xb245e139 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xb28afd93 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xb2b5bba9 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb2c3bd54 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xb2eee5fa ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb328dd43 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb33c374b unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xb37bd41f relay_reset +EXPORT_SYMBOL_GPL vmlinux 0xb39b36ac crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xb3cebc1c locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0xb3d3ebfb cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write +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 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb4f56c35 ata_wait_after_reset +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 0xb53c0f09 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xb5408104 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xb570fc0c ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xb5787dea find_module +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 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 0xb6d3dd1f ata_do_eh +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 0xb753afa1 ata_sas_port_start +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 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 0xb9319421 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xb941a639 rt_mutex_unlock +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 0xba757558 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xbab99264 kallsyms_on_each_symbol +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 0xbaff7a62 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb23b7ab tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xbb8b52b4 ata_link_abort +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 0xbc30c842 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xbc7f3851 rdev_get_drvdata +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 0xbd150f1e md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xbd253e8f device_register +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd6038a7 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0xbd651762 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xbd6ec098 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0xbd8feaf2 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0xbdb4a63b __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xbdce10ae __mmdrop +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 0xbdfae793 kmsg_dump_unregister +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 0xbef6537f perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xbf1de88f atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xbfa30db9 ab8500_write +EXPORT_SYMBOL_GPL vmlinux 0xbfa5e46b ring_buffer_record_enable_cpu +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 0xc05f1e7e __module_text_address +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 0xc0e01aea skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0xc0f82516 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xc10676d8 pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0xc10e278f ata_host_init +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 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 0xc2562420 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xc2a8eb3d scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0xc2cd924d disk_part_iter_exit +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 0xc3006afc preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xc303068c dm_rh_get_state +EXPORT_SYMBOL_GPL vmlinux 0xc306f79a generic_drop_inode +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 0xc3f1a6a3 tty_prepare_flip_string +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 0xc474c51c usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc489a567 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +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 0xc528a078 inet_hash +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 0xc5faea43 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc623ad07 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xc62de382 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xc6392ebe page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xc63c1649 ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xc648085b raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xc692a584 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xc716711c driver_find +EXPORT_SYMBOL_GPL vmlinux 0xc776347e ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xc7b52baf scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xc7d1debb inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xc7da0189 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0xc8231c2b inet_csk_clone +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 0xc8b700c0 dm_rh_recovery_start +EXPORT_SYMBOL_GPL vmlinux 0xc8c30ba8 inode_add_to_lists +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 0xc93f5e72 ipv6_opt_accepted +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 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9fbe2ea scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0xca34e7ae crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcb1c3f8c fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0xcb59b529 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0xcb611ee0 pm_generic_runtime_suspend +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 0xcc1578ad inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc285ac7 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcc51eedb shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xcc794ee5 find_symbol +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 0xcdeaee30 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL vmlinux 0xce0d558b rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0xce36a5b6 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce76defc pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0xceed1ffa spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xcef96bde usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0xcf2ed5d0 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xcf8a8ced ipv6_dup_options +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 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd0416f90 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd059a365 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0xd076cf9c device_move +EXPORT_SYMBOL_GPL vmlinux 0xd07d935d find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xd08bbb59 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0xd095af37 mnt_drop_write +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 0xd11f0bf4 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xd12ac59b olpc_ec_cmd +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd151bbab disk_map_sector_rcu +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 0xd1e382b4 usb_sg_cancel +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 0xd2759393 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0xd2842786 css_id +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd2dddb9c usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0xd2f7af86 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd33ece2e eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0xd34608b7 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0xd36c5dd8 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xd3982a3a da903x_write +EXPORT_SYMBOL_GPL vmlinux 0xd3b7d31c __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd3ded567 isa_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd3e6a61d usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd43a7bef __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xd43dde11 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xd4484a4d xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0xd45f5d75 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0xd4856228 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0xd4a54cca ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0xd4a92912 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0xd4af3a93 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xd523b3a5 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xd524ab51 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xd530a8d2 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xd53d93c1 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0xd5484eae set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xd5629cc6 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0xd565abb8 usb_deregister_dev +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 0xd601ca0c sata_set_spd +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 0xd6557a06 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0xd6734e99 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xd69416a9 find_get_pid +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 0xd79976a4 blk_trace_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 0xd7f79e92 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xd832fa3b devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd8347cb9 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xd8414a70 noop_backing_dev_info +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 0xd9e4f5ff blk_abort_request +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 0xda80d48a blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xdac984a4 transport_class_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 0xdb3e98a7 kick_process +EXPORT_SYMBOL_GPL vmlinux 0xdb6c7944 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0xdb8a41f3 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdc0846f6 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xdc534232 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xdc714560 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xdcc52480 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0xdcd110de dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xdcfe3740 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0xdd243100 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xdd308343 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xdd4051c1 pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xdd8a3974 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xddc5e3f9 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0xddced95d bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xddd6e717 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xdde4e59b tc35892_block_write +EXPORT_SYMBOL_GPL vmlinux 0xddfba309 fuse_request_alloc +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 0xdec78581 isa_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xdecee720 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xdf0b2ba7 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0xdf2c960c inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xdf669f37 dm_rh_mark_nosync +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 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 0xe09750b9 ring_buffer_iter_peek +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 0xe0e94254 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0xe113834c blk_insert_cloned_request +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 0xe1822a1f udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe2426710 wmi_evaluate_method +EXPORT_SYMBOL_GPL vmlinux 0xe26c83b9 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xe2804426 skb_partial_csum_set +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 0xe2ee22d8 tc35892_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xe2ef6a65 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0xe3103e87 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xe318b107 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0xe3578f4d scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0xe39f1c26 dm_rh_recovery_end +EXPORT_SYMBOL_GPL vmlinux 0xe3e1dcd4 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0xe439815c erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0xe47a23d2 crypto_unregister_pcomp +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 0xe4e51adf sk_setup_caps +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 0xe67df38d queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xe6c22e5f user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe7012ffa cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe7299111 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0xe7320d18 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0xe74114b0 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0xe7bbc908 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL vmlinux 0xe7bfb394 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xe7cba1ac crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe8149982 generic_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe8943cca adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe8cf07eb power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0xe8cff8d4 skcipher_geniv_alloc +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 0xeaa8aec7 ata_host_activate +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 0xeb748b02 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0xebd45062 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0xebea6eab shake_page +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec6e626b scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xec702ac4 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xec81e987 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0xecfc65fe br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0xed04644c usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xed0c18c8 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xed213c61 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0xed682182 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xed966f42 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0xedbf0078 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xedf3f1f1 do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0xee20e953 add_to_page_cache_lru +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 0xef701f9f trace_event_raw_init +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 0xf06c1cc7 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xf0868483 pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xf08fb379 preempt_notifier_unregister +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 0xf1ad344e perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0xf1b4e105 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xf1b92bc7 perf_arch_fetch_caller_regs +EXPORT_SYMBOL_GPL vmlinux 0xf1d65cdc blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xf1e667a9 pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf227f55b ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0xf22ba74f pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf32ca905 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf387d2c7 dm_region_hash_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf3a111ee ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +EXPORT_SYMBOL_GPL vmlinux 0xf3ca16dc skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xf4215f27 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xf47d55e2 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xf480a08e input_ff_upload +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 0xf5384ac1 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +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 0xf64a5e53 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0xf64d6344 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xf6764492 erst_get_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xf687e588 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0xf689a545 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf6bd4302 macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6f79723 pm_request_resume +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 0xf759f1e7 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +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 0xf83a366d unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xf845d205 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0xf86fa1d2 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf89bfba7 pci_get_hp_params +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 0xf8fc8825 security_inode_create +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 0xf9a723c0 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xf9bede02 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa0b98a7 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0xfa891e8b xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xfa8940da add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xfac08eef nf_unregister_queue_handlers +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 0xfbce3e3b ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xfbf08d81 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0xfbf3ce2b nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc12ae65 ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0xfc2f5a0f dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0xfc38de0d dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xfc7b6098 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xfc8df8aa tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfcaa1c97 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0xfcf72e0b crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xfd153ea1 tcp_set_state +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 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 0xfe9596f1 cpuidle_register_device +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 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff2fd945 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff5bdade __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffbc4c5a transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xffd50359 tcp_cong_avoid_ai --- linux-2.6.35.orig/debian.master/abi/2.6.35-28.49/powerpc/powerpc-smp.modules +++ linux-2.6.35/debian.master/abi/2.6.35-28.49/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-28.49/powerpc/powerpc-smp +++ linux-2.6.35/debian.master/abi/2.6.35-28.49/powerpc/powerpc-smp @@ -0,0 +1,10225 @@ +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 0xd3b13900 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x9cc287fb uPD98402_init +EXPORT_SYMBOL drivers/block/loop 0x0ab43fa6 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 0x04337f36 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0561b1a9 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x073fc31d drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x07c83525 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x08363d74 drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x08e53d4a drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ac1f23e drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d990f0e drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e5d6254 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e84bb49 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1137840e drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x121ee673 drm_gtf_mode_complex +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 0x15ec35a9 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x170f9c25 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x17edf07a drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ae3ad3a drm_gem_object_init +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 0x1f9e692f drm_add_edid_modes +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 0x227a0f25 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x242cd46a drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24a8aa31 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x251a70ba drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x283b9dbc drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2947a6ab drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d326c74 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f448eac drm_mode_config_cleanup +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 0x32918e70 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32c6f342 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33fc13dd drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x35cb7579 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38b98cf2 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b8df96e drm_sg_alloc +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 0x3dbada20 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ec00cb7 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x414328cc drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x455c87a4 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x459a41fb drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498cdff3 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49d592b0 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a8c7cb5 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4af69147 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b7dfe80 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ffc7b68 drm_init +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 0x598b6a4b drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a4b391b drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d3e30dd drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e39c421 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e998fb1 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x626d3f3f drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x633ca564 drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66e06135 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67be792b drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x690ebc6a drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x69a1adf0 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a040264 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d85a853 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f2bfd59 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7296f2fc drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x75e142de drm_lock_take +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 0x78d432a0 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7af0e861 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c204fc5 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c43158a drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e4ac944 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x813c7a87 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8216912e drm_get_resource_start +EXPORT_SYMBOL drivers/gpu/drm/drm 0x83e38fcf drm_addbufs_pci +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 0x8a9aa629 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8be57b25 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8bec98fb drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d818054 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ef402f1 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9166134d drm_get_resource_len +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92be0494 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92c44fdb drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x930a9788 drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95375752 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95a39ab4 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9dd27491 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9e068d66 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9e6b4d9d drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa052515e drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa34c883f drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3f0ff9e drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4858455 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa90ab019 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa95a6393 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab14ec46 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xabbe5824 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad733270 drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae116974 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae6da1d9 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf15b288 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb20f06d4 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb384fdda drm_lock_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb426d1c6 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb45fb2c3 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb59976fe drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbdad08be drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbdcd9af1 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe47a40c drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbee4acaf drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbff28c8e drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc3a1fe93 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6794f16 drm_core_get_map_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcbb9858d drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdc5ff49 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf596a08 drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 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 0xd69050bc drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd83bd1cf drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd83f7620 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbad7d8a drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdffef9fa drm_get_drawable_info +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 0xe367d98c drm_get_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3722c07 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe826d687 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xebb157f3 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec4f1f13 drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed35a4e9 drm_agp_chipset_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0xee281355 drm_vblank_get +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 0xf95f1645 drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfaae4eab drm_i_have_hw_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfabc99ea drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb3263ef drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb899375 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe0540c8 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0a9a81fe drm_crtc_helper_set_mode +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 0x2013fcea drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x27c9283d drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2da85d12 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x393a4b48 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3bdf4a6a drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x46aa0de0 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4d060128 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5ef39ae2 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x63ad865a drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x69930e81 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6ecb502e drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7c319640 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x91edc18e drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9afd05e3 drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb1f79c1f drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb5b61bdb drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbed777bf drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc232f29c drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc6e47d97 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xca10a17b drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcf300743 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdb0b3278 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe22eccd0 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe84759d2 drm_fb_helper_single_add_all_connectors +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 0x364cd769 rdma_copy_addr +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_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 0x02141ac0 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0292aa7b rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0a822c46 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2682ffaf rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2e1724d2 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4a30b985 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4f9e214a rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x54f31f6c rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5d71ac46 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7b14ac77 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7c1e77e2 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7e24cb31 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x99bc9205 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa5498401 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa7222605 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa7c18bff rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb6a4b0a9 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd0986482 rdma_join_multicast +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 0x26c20304 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0xa01f9b88 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0xd02a99e8 dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0xe2ecab11 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x18e15d34 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0x6c4237aa dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0xb331ee19 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0xb512bc70 dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0xd067e726 dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0xdad72739 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/md-mod 0x00fa9deb bitmap_startwrite +EXPORT_SYMBOL drivers/md/md-mod 0x05a1f01b md_check_recovery +EXPORT_SYMBOL drivers/md/md-mod 0x1dfb9f01 md_write_end +EXPORT_SYMBOL drivers/md/md-mod 0x27cf1bf9 bitmap_unplug +EXPORT_SYMBOL drivers/md/md-mod 0x308ec806 md_set_array_sectors +EXPORT_SYMBOL drivers/md/md-mod 0x32096f98 bitmap_endwrite +EXPORT_SYMBOL drivers/md/md-mod 0x3bd2d93c md_done_sync +EXPORT_SYMBOL drivers/md/md-mod 0x49697e2a md_integrity_add_rdev +EXPORT_SYMBOL drivers/md/md-mod 0x52463cce md_write_start +EXPORT_SYMBOL drivers/md/md-mod 0x60facfa5 bitmap_cond_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0x7551ca55 md_barrier_request +EXPORT_SYMBOL drivers/md/md-mod 0x7cfd06d6 md_unregister_thread +EXPORT_SYMBOL drivers/md/md-mod 0x8e9c1e75 md_check_no_bitmap +EXPORT_SYMBOL drivers/md/md-mod 0x9ff0c505 md_register_thread +EXPORT_SYMBOL drivers/md/md-mod 0xaa3699b8 unregister_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0xb19a85ff md_wait_for_blocked_rdev +EXPORT_SYMBOL drivers/md/md-mod 0xc30a3f20 bitmap_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0xcca1a433 register_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0xd29187d3 mddev_congested +EXPORT_SYMBOL drivers/md/md-mod 0xe258cd64 bitmap_close_sync +EXPORT_SYMBOL drivers/md/md-mod 0xe41cf1e1 md_error +EXPORT_SYMBOL drivers/md/md-mod 0xe74a7b20 md_integrity_register +EXPORT_SYMBOL drivers/md/md-mod 0xe8f3eb39 bitmap_start_sync +EXPORT_SYMBOL drivers/md/md-mod 0xf82325b0 md_wakeup_thread +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 0xd51bdfc1 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xea0f103e dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xf7cbe7dd dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xf837273d dib7000p_attach +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 0x09190d7a mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0a18afda mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x108c2e2d mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x17c1151a mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1d0c52fb mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x339d3668 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3b850ee0 mpt_reset_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 0x57ec35e2 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x63ea5efb mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6ffb1d90 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7208418c mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7214d083 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x724304d4 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9cf22ed7 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa04d6c7f mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xae03bf6d mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb00c373d mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb04734a7 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb40092c5 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc1cbb58d mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc65fa7ef mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc6cf167a mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc7b58ff8 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcf8ed187 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd83c897d mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdaafda3e mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe1a50f98 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf8355e42 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf97a023f mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0ac1d95a mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0b12abdb mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0e4b07de mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x11ff0daa mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x14f14fb1 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1742e2d3 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x18cb9647 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1a1bba94 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3bc6c24c mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x408ae089 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x54eb1fa1 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5da9676a mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5e626e46 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5fc5e6e8 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6e99a0b6 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x867bb21d mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x915c81c5 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x91ffa4ca mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9369c652 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa40d5fd2 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa6a0e665 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb46982c3 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc207bcb9 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe07202fb mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xea75ea76 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf45b32c5 mptscsih_get_scsi_lookup +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 0xb659f8d2 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 0xec0d3b1b bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x 0xbc1e6e7f bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x379cec6a cnic_register_driver +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x027b593b cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x214dc389 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x30fe0219 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3ff58a93 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x48944d1a cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4acde9e1 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x59780b11 cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x85079215 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x9793ad54 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x98d62fc0 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa3e99f1c cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc826c35c t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd365d653 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe407eb48 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xea828b7c cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xfd553d02 cxgb3_free_atid +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 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 0x2da7c798 cxgb4_ofld_send +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 0x8a0239e3 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa68465ab cxgb4_register_uld +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa9f55d35 cxgb4_pktgl_to_skb +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 0x2014d8c0 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3c272adf irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4c051d41 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x6432910d sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x6d8b2d43 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x78f605ff sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x79d06fcb sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x80cc90e0 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x879230e4 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb2713f70 sirdev_write_complete +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 0x0b409bc1 ppp_dev_name +EXPORT_SYMBOL drivers/net/ppp_generic 0x17d6d29a ppp_channel_index +EXPORT_SYMBOL drivers/net/ppp_generic 0x20e25e44 ppp_unregister_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0x57661239 ppp_unit_number +EXPORT_SYMBOL drivers/net/ppp_generic 0x873b99b3 ppp_input_error +EXPORT_SYMBOL drivers/net/ppp_generic 0xa596b53f ppp_register_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0xaaa6921d ppp_unregister_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0xb2b7d56c ppp_output_wakeup +EXPORT_SYMBOL drivers/net/ppp_generic 0xd7d2e8d2 ppp_input +EXPORT_SYMBOL drivers/net/ppp_generic 0xe6508198 ppp_register_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0xf3ee752a ppp_register_net_channel +EXPORT_SYMBOL drivers/net/pppox 0x04033baa register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xb97a14fb pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xc5ddf7be pppox_unbind_sock +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 0x1830c80c libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x22643420 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3ea3e8c5 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x43a835e8 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4da6474b libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5ba7c37c libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x61ff4405 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x76a93a3c libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x882ad401 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8cbc9e22 libipw_txb_free +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 0x9d8b4099 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa737dda7 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xae031e0a libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc1a6210c free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xccd2549c alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdf8eb726 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe2f490db libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe83b09ec libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xecbd70df libipw_get_channel_flags +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 0x1c9da458 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x3ae98677 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x8857c167 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb5d0c276 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xcec286a0 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xeba40d11 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xed87992a fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0ad3fbad fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0b6f64c2 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1a22d139 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1c3963d5 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1e7e17e0 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2a7b0417 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x307a71d0 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4b7a4557 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4c123195 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4c24c338 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5361bb39 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x54993bd6 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x624b218c fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x64115218 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6fb1550e fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7145d54a fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x760ef359 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x76ed1bbb fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7c92ab97 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7ee0ef04 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x803c6173 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8418cd15 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x91994548 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x93cbc7a3 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa393d53b fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa5729a57 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xac0c410c fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xad94c6b7 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc0f0e058 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc736e032 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xccedff72 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcd565e4e fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xceccaa68 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcf4ac08c fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcfe683c1 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd6023060 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdb8fbc24 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xec5ce45c fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf1c563ed fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf2c9ef26 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf484441f fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf77d7b5e fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x73bb6c23 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0aa2940d osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1646dbc8 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1a7cf1ed osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2cc46f47 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x308093c3 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x45efb0fe osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4b8401e9 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x55193b54 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x56f8a62d osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5a61c839 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x628a0c20 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x695ee32b osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6be08c40 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6d3cd94a osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x775ee424 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x813a1605 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8ed36137 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x90384690 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9a1961e9 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa60547b7 osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa9f42292 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xaab133f4 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb6c087d1 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbd4ed985 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc21041f2 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc21cbd73 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc2277d35 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc4785434 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd521496c osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd77034ac osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xda6728dc osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf3e44db0 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/osd 0x02fba5a8 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x05e6ba74 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x503b1255 osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0xc7f20cf3 osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0xce41ab40 osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0xd23768f2 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x08e6a9bc qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x4d36cf19 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x51f3505d qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x90ce0c64 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xc9703f0f qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xd8094138 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 0x144fe269 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0x598bcb17 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0x98498027 raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2200dd40 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2b469796 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3dfbac36 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6d3cab2d fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7d727fc9 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xabeb59c7 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb9efc961 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc1454d1b fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc62f9cc7 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe9afd001 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xea337fe7 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xed28b684 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf436742e fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x08f8c336 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x10c54f91 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x14ca73dc sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1878fcfa sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2ba57665 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3f3b7ad8 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x430e335b sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4bea9214 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x55636647 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x56cca184 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x635be709 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x659d77d6 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x83452eda sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8da46b9a sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x91db211c sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x93ff8f20 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9c32d4d8 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9f2ac16e sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa2ea86af sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb702ba41 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb7c5f6de sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc362cdea sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcbfc79ef scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xea904918 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf60ae6e0 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfc5559e6 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x286949ba spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x68336adc spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x9aecb540 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x9aef3a18 spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xd1b252d5 spi_dv_device +EXPORT_SYMBOL drivers/serial/8250 0x634b2d5c 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 0x0657a5ba uart_add_one_port +EXPORT_SYMBOL drivers/serial/serial_core 0x07e917e7 uart_update_timeout +EXPORT_SYMBOL drivers/serial/serial_core 0x0f5278b6 uart_register_driver +EXPORT_SYMBOL drivers/serial/serial_core 0x15b96b3f uart_unregister_driver +EXPORT_SYMBOL drivers/serial/serial_core 0x26f3e060 uart_get_divisor +EXPORT_SYMBOL drivers/serial/serial_core 0x692682c5 uart_remove_one_port +EXPORT_SYMBOL drivers/serial/serial_core 0x7e03ed12 uart_resume_port +EXPORT_SYMBOL drivers/serial/serial_core 0x80269712 uart_get_baud_rate +EXPORT_SYMBOL drivers/serial/serial_core 0x9db49fee uart_write_wakeup +EXPORT_SYMBOL drivers/serial/serial_core 0xc7bddd06 uart_suspend_port +EXPORT_SYMBOL drivers/serial/serial_core 0xf7a343ac uart_match_port +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 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 0x851d40de ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x997574b3 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa8614f82 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaf53ec7f ieee80211_txb_free_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 0xd1323a60 ieee80211_rx_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 0x1cf99062 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x23c0ae0c usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x574d2e39 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5b778549 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5fcd8e31 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6a33cf1e usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x88314535 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x891cf278 usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa7d428e7 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb2380753 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb7358b9e usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc2609ef4 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc2e900ce usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf6d74a35 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xa1fccdc2 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xd68189ca 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 0x05c29a7c w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x31828795 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0x4db0182e w1_unregister_family +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 0x463bf5c6 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x46d38ffb alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0x650e3f76 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x9f8c67b9 aarp_send_ddp +EXPORT_SYMBOL net/atm/atm 0x217455f3 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x40230ee8 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x6a5e24e7 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x879c347a atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x9d621e59 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 0xb4ee0f27 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0xca87b453 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xd6a6723c vcc_release_async +EXPORT_SYMBOL net/atm/atm 0xe4725414 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0xe57fb9f7 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xf58f9162 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xf77d58a9 deregister_atm_ioctl +EXPORT_SYMBOL net/ax25/ax25 0x209c4771 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x67aec58d ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x835822ee ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xa2ac85f9 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xcd0dc57f ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xdc596f40 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xebb12f60 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xec3d492e ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xf79f85e5 ax25_hard_header +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0192fbfd hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0x021ba2ab bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x184bd188 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1aed4698 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2099acdc hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2130fd20 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2591fc19 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x40122592 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4890f266 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x54c43060 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6303fdc2 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x672dedbb hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6dfc126d hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x72380fc6 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7485c489 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7b37d4ff hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9c07fc9e hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9c4fc683 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9e8bf44f bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xabe75592 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0xac7e19fb hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xae4d9751 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb0803b22 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc78307bb bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcbb11ac5 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd450d7ac bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd71d1c95 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe3462067 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf45ca931 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf46b01b8 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfc373493 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xff0073ab bt_sock_register +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x07494421 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x64cb780a ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x6b73e539 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x9b79e9bc 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 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 0x3a31ff8b can_proto_register +EXPORT_SYMBOL net/can/can 0x47b2ea93 can_proto_unregister +EXPORT_SYMBOL net/can/can 0x9626e0ff can_rx_unregister +EXPORT_SYMBOL net/can/can 0xbf818122 can_rx_register +EXPORT_SYMBOL net/can/can 0xc7711ba8 can_send +EXPORT_SYMBOL net/ieee802154/ieee802154 0x0b5ff2c2 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x27017829 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2de0c215 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x39765a67 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5db1c162 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x8fa34544 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0xad391f51 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb91c0d8c ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xbf04573d wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd9a86307 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe08c7abc ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xed679bfc ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf29d3881 wpan_phy_register +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x2f7f3660 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x5adf83cd arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xafeee21d arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x4a01806c ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x9c89bf70 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xa939722c ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x287fc3ed nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x2bdb6892 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x3aa4f392 nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7e14d799 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x8cb25449 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x9dbbf73d nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xd3ffbf24 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/tunnel4 0xa681d526 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xaba00828 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/ipv6 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL net/ipv6/ipv6 0x11389d92 ip6_route_me_harder +EXPORT_SYMBOL net/ipv6/ipv6 0x1cfdafba nf_ip6_checksum +EXPORT_SYMBOL net/ipv6/ipv6 0x1ff12fc9 xfrm6_prepare_output +EXPORT_SYMBOL net/ipv6/ipv6 0x224f4cc2 ip6_frag_init +EXPORT_SYMBOL net/ipv6/ipv6 0x34b7c75b inet6_bind +EXPORT_SYMBOL net/ipv6/ipv6 0x3693a3d8 rt6_lookup +EXPORT_SYMBOL net/ipv6/ipv6 0x372e2eab ndisc_build_skb +EXPORT_SYMBOL net/ipv6/ipv6 0x3d33ae54 ipv6_chk_prefix +EXPORT_SYMBOL net/ipv6/ipv6 0x500bd86e ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0x54be8828 ipv6_dev_get_saddr +EXPORT_SYMBOL net/ipv6/ipv6 0x5c19e64a xfrm6_find_1stfragopt +EXPORT_SYMBOL net/ipv6/ipv6 0x5e1bb84f ip6_frag_match +EXPORT_SYMBOL net/ipv6/ipv6 0x6435102e icmpv6_send +EXPORT_SYMBOL net/ipv6/ipv6 0x655ed250 ipv6_chk_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x6808f138 ipv6_push_nfrag_opts +EXPORT_SYMBOL net/ipv6/ipv6 0x8087335a in6_dev_finish_destroy +EXPORT_SYMBOL net/ipv6/ipv6 0x8692937e ip6_route_output +EXPORT_SYMBOL net/ipv6/ipv6 0x8df6ef90 ndisc_mc_map +EXPORT_SYMBOL net/ipv6/ipv6 0x9738b627 inet6_del_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0xb5e9e905 inet6_ioctl +EXPORT_SYMBOL net/ipv6/ipv6 0xc4d54b09 xfrm6_rcv +EXPORT_SYMBOL net/ipv6/ipv6 0xcd937146 inet6_unregister_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0xceb91b6a ip6_xmit +EXPORT_SYMBOL net/ipv6/ipv6 0xda1a932f inet6_release +EXPORT_SYMBOL net/ipv6/ipv6 0xdead5334 ndisc_send_skb +EXPORT_SYMBOL net/ipv6/ipv6 0xe29b01b9 inet6_register_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0xe67e7655 xfrm6_rcv_spi +EXPORT_SYMBOL net/ipv6/ipv6 0xe690b8fd __ipv6_isatap_ifid +EXPORT_SYMBOL net/ipv6/ipv6 0xe80a44e3 xfrm6_input_addr +EXPORT_SYMBOL net/ipv6/ipv6 0xead59b08 ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0xf34ac20a inet6_getname +EXPORT_SYMBOL net/ipv6/ipv6 0xf39c8635 inet6_add_protocol +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x1c3c90e9 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x4070296e ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x9ad5ddda ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb9e16c17 ip6t_register_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x200d508c xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0x42ce8fea xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x5ae78921 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xe4ac0d47 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xf60f1d39 xfrm6_tunnel_spi_lookup +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 0x16ff34f1 async_wrap_skb +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 0x2fdb818b irttp_dup +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 0x52911e8d alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x5a185aaa async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x5dcac61e irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x5ee1731d irlap_close +EXPORT_SYMBOL net/irda/irda 0x601bda46 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x60a5eaf6 irda_device_set_media_busy +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 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 0x8a06fecd irlap_open +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 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 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 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/irda/irda 0xfff2c9d4 irda_notify_init +EXPORT_SYMBOL net/l2tp/l2tp_core 0x79e28562 l2tp_tunnel_destruct +EXPORT_SYMBOL net/l2tp/l2tp_core 0xb0dd0d1e l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x02653fd4 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x0aa3b72e lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x42fe044d lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x4e81e471 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x8e32cc3f lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x8e7b8ff5 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xdc6b02f7 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0xe80dbb2f lapb_unregister +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 0x3828923d ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x39228fb4 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x47b50ec8 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4dc18919 ip_vs_skb_replace +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x883ec9da unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x914ac05c register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9a33c2b9 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9e13031a ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9fbe2209 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa8d62c32 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xea413533 ip_vs_conn_in_get +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 0x053c68c3 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x11eabee0 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x1284f185 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x3fc92a69 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x5819e895 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x62cee325 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x95383df8 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xbe99953c xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xcd8ed8db xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xe9df3feb xt_register_matches +EXPORT_SYMBOL net/phonet/phonet 0x1a6da6c3 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x3368b85b phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x92364086 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x964b4503 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0xbfbd9fa0 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xc3da2dc4 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0xd48fd2d1 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0xf95f6bfb pn_skb_send +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x047c12b5 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x15699f55 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2339661e key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x24db49ac rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x26a49a29 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2ecdf3e3 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x400fb484 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x57d32be5 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5d54fefe rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9f28bfad rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc62039d9 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd17f28c2 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe1647e47 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe523c569 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe99220f9 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/sunrpc/sunrpc 0x368e150b 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 0x93bbcf00 wimax_reset +EXPORT_SYMBOL net/wimax/wimax 0x956d5999 wimax_rfkill +EXPORT_SYMBOL net/wireless/cfg80211 0x03d13ef5 __ieee80211_get_channel +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 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 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 0x5a1f35c7 ieee80211_amsdu_to_8023s +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 0x7fe1a403 cfg80211_find_ie +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 0xa5140382 ieee80211_data_to_8023 +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 0xc009db75 cfg80211_classify8021d +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 0xd0278116 __cfg80211_send_deauth +EXPORT_SYMBOL net/wireless/cfg80211 0xd237217f cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0xd44b11a2 ieee80211_data_from_8023 +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 0xe7124fd2 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xe73edc9c cfg80211_connect_result +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 0x0020e7c7 file_update_time +EXPORT_SYMBOL vmlinux 0x0031ae6b blk_end_request +EXPORT_SYMBOL vmlinux 0x005f6893 free_netdev +EXPORT_SYMBOL vmlinux 0x007f107a skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00824f11 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x00a9ed4d jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x00b63aa8 new_inode +EXPORT_SYMBOL vmlinux 0x00c3b3f3 udp_prot +EXPORT_SYMBOL vmlinux 0x00d0d1a5 pci_pme_active +EXPORT_SYMBOL vmlinux 0x00d1d26f proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x00d6e16d phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x012f2c97 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x01318dbc sock_no_poll +EXPORT_SYMBOL vmlinux 0x013a3065 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x01516f95 of_device_is_available +EXPORT_SYMBOL vmlinux 0x0188710c ide_proc_unregister_driver +EXPORT_SYMBOL vmlinux 0x018cf6fc scsi_ioctl +EXPORT_SYMBOL vmlinux 0x018d54d3 vfs_read +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01a54888 tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0x01bf3885 vga_put +EXPORT_SYMBOL vmlinux 0x01dd012c tcp_close +EXPORT_SYMBOL vmlinux 0x01eaf783 init_timer_key +EXPORT_SYMBOL vmlinux 0x021d2546 tty_port_close_start +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 0x02a5af9f remove_from_page_cache +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02af8ecd pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x02b6bc30 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x02bf7246 padata_start +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02e8062d kill_litter_super +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x02fdc925 ide_proc_register_driver +EXPORT_SYMBOL vmlinux 0x0303fb55 tcp_connect +EXPORT_SYMBOL vmlinux 0x0314549e generic_make_request +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x034ee657 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x0363caa9 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x03768994 bdi_init +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03936bae dm_unregister_target +EXPORT_SYMBOL vmlinux 0x03943d56 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x039e24b7 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03ca7ce8 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x03ed29d6 udp_lib_get_port +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 0x04700d37 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x048a3742 register_exec_domain +EXPORT_SYMBOL vmlinux 0x05054097 invalidate_inode_buffers +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 0x054d6472 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x055498de llc_sap_open +EXPORT_SYMBOL vmlinux 0x055a6542 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x05637e3a lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x05a514a1 _insl_ns +EXPORT_SYMBOL vmlinux 0x05bb65f1 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x05f47d12 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x05f6ac5f pci_domain_nr +EXPORT_SYMBOL vmlinux 0x05f7ba1a d_invalidate +EXPORT_SYMBOL vmlinux 0x05f9d508 put_mnt_ns +EXPORT_SYMBOL vmlinux 0x05ff5f83 pci_find_bus +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x062c2b71 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x065b845e set_disk_ro +EXPORT_SYMBOL vmlinux 0x065daf09 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x0675c7eb atomic64_cmpxchg +EXPORT_SYMBOL vmlinux 0x067d2a5e bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x069857d7 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x06bbb24a mempool_resize +EXPORT_SYMBOL vmlinux 0x06d4ee29 icmp_send +EXPORT_SYMBOL vmlinux 0x06f7c195 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0707403d lock_fb_info +EXPORT_SYMBOL vmlinux 0x0708712e tcf_exts_change +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x076e45a2 arp_tbl +EXPORT_SYMBOL vmlinux 0x07867ec0 aio_put_req +EXPORT_SYMBOL vmlinux 0x07896b14 lookup_hash +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07cbd01f xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x08570365 backlight_force_update +EXPORT_SYMBOL vmlinux 0x0859f824 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x0869ce7e skb_queue_tail +EXPORT_SYMBOL vmlinux 0x0889899c check_disk_size_change +EXPORT_SYMBOL vmlinux 0x08d80957 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x08df77e0 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL vmlinux 0x090a9c06 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x096d8122 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x0975bf76 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x097b023f tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x097cff44 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x0993d57a input_inject_event +EXPORT_SYMBOL vmlinux 0x0997de42 clocksource_register +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d366bc bio_split +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09fd1bae neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x0a043c18 input_allocate_device +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a29cd1a deactivate_super +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a61bf3e tcf_em_register +EXPORT_SYMBOL vmlinux 0x0a63accd xfrm_input +EXPORT_SYMBOL vmlinux 0x0a6b72ef tcp_splice_read +EXPORT_SYMBOL vmlinux 0x0a92b827 nf_log_packet +EXPORT_SYMBOL vmlinux 0x0ab7949e up +EXPORT_SYMBOL vmlinux 0x0ac8ab2f pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0add2afc scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x0afdc4c8 of_release_dev +EXPORT_SYMBOL vmlinux 0x0afee455 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x0b0b42f3 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x0b1960de unregister_8022_client +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b55e041 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x0b69ab01 search_binary_handler +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b841b7d __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x0bc82e79 pcim_iomap +EXPORT_SYMBOL vmlinux 0x0bea2ef6 dquot_commit +EXPORT_SYMBOL vmlinux 0x0bebeee9 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x0c0e1367 load_nls_default +EXPORT_SYMBOL vmlinux 0x0c12e626 __debugger_bpt +EXPORT_SYMBOL vmlinux 0x0c1e5be3 netif_device_attach +EXPORT_SYMBOL vmlinux 0x0c281f2f slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x0c3d8a1e security_inode_readlink +EXPORT_SYMBOL vmlinux 0x0c6382ae ip_route_output_key +EXPORT_SYMBOL vmlinux 0x0c6460a0 simple_rmdir +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c684ec4 lock_super +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 0x0cb661a8 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x0cbb566c sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x0d42e4d2 inode_init_always +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d579d6b udp_sendmsg +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0da6fb71 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x0db39cf8 netif_device_detach +EXPORT_SYMBOL vmlinux 0x0dbf38b8 mol_trampoline +EXPORT_SYMBOL vmlinux 0x0df2aff5 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x0e087275 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x0e400682 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x0e49b55b dev_driver_string +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e6bb3cd find_lock_page +EXPORT_SYMBOL vmlinux 0x0e759d5a neigh_table_clear +EXPORT_SYMBOL vmlinux 0x0e7db21d register_sysrq_key +EXPORT_SYMBOL vmlinux 0x0e81295a journal_create +EXPORT_SYMBOL vmlinux 0x0e8976b0 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x0e8f30f6 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x0e960b64 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x0e9e4bcf generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x0ebd5eac i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x0ed99d77 generic_readlink +EXPORT_SYMBOL vmlinux 0x0ef20db1 kernstart_addr +EXPORT_SYMBOL vmlinux 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL vmlinux 0x0f32c206 skb_gso_segment +EXPORT_SYMBOL vmlinux 0x0f60c8ea jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x0f627405 blk_init_queue +EXPORT_SYMBOL vmlinux 0x0f70c223 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x0f8f6212 kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fc63cd9 save_mount_options +EXPORT_SYMBOL vmlinux 0x0fe29d03 journal_ack_err +EXPORT_SYMBOL vmlinux 0x0feb8b71 mapping_tagged +EXPORT_SYMBOL vmlinux 0x100546b1 log_start_commit +EXPORT_SYMBOL vmlinux 0x10222fc6 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x10308cf3 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x104ffb69 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint +EXPORT_SYMBOL vmlinux 0x10bd98e8 submit_bio +EXPORT_SYMBOL vmlinux 0x10c9386f __lookup_one_len +EXPORT_SYMBOL vmlinux 0x10d0b9c7 xfrm_state_alloc +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 0x114c0398 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x11538364 jbd2_journal_force_commit_nested +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 0x11873b17 vfs_readdir +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11cf27a9 idr_destroy +EXPORT_SYMBOL vmlinux 0x11d3a494 security_file_permission +EXPORT_SYMBOL vmlinux 0x11d3ed77 of_get_pci_address +EXPORT_SYMBOL vmlinux 0x11e44352 elv_register_queue +EXPORT_SYMBOL vmlinux 0x11eb79a6 rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x120a8f20 of_device_alloc +EXPORT_SYMBOL vmlinux 0x1214065d bioset_create +EXPORT_SYMBOL vmlinux 0x129aad93 of_platform_device_create +EXPORT_SYMBOL vmlinux 0x12a66bf8 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x12b84a49 arp_find +EXPORT_SYMBOL vmlinux 0x12ba3fe2 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x12c20095 i8042_install_filter +EXPORT_SYMBOL vmlinux 0x12c472a5 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x12d91c43 udp_disconnect +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 0x1329e9da neigh_event_ns +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 0x1387d7c7 ip_route_input_common +EXPORT_SYMBOL vmlinux 0x13df8b90 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x13ec12fc blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x1407c6e7 kmap_prot +EXPORT_SYMBOL vmlinux 0x14321997 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x1450d644 kunmap_high +EXPORT_SYMBOL vmlinux 0x145fbaa0 __pagevec_release +EXPORT_SYMBOL vmlinux 0x1464611c generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x146c3a94 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x14afba82 sock_rfree +EXPORT_SYMBOL vmlinux 0x14b5f292 iterate_mounts +EXPORT_SYMBOL vmlinux 0x14caa695 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x14e7f68c genphy_suspend +EXPORT_SYMBOL vmlinux 0x14e837a0 idr_find +EXPORT_SYMBOL vmlinux 0x14f3d402 padata_do_serial +EXPORT_SYMBOL vmlinux 0x150c83ae seq_write +EXPORT_SYMBOL vmlinux 0x153b26ce sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x1548d814 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x154e3ab3 __lock_page +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x159bfa4c jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x15bf17f4 __devm_release_region +EXPORT_SYMBOL vmlinux 0x15d28a8c phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x15e70c1f dst_discard +EXPORT_SYMBOL vmlinux 0x15f8bd07 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x160bd45c rtas_token +EXPORT_SYMBOL vmlinux 0x162504d8 of_phy_find_device +EXPORT_SYMBOL vmlinux 0x164ac80f __register_chrdev +EXPORT_SYMBOL vmlinux 0x1661ef28 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x168b7792 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x16aa3818 pci_release_regions +EXPORT_SYMBOL vmlinux 0x16cd5be2 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x16d3117c block_invalidatepage +EXPORT_SYMBOL vmlinux 0x170023c9 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x170fac3d padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x17193291 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x17648396 dev_base_lock +EXPORT_SYMBOL vmlinux 0x17699a5f genphy_read_status +EXPORT_SYMBOL vmlinux 0x1770127b sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x179082c8 dm_table_put +EXPORT_SYMBOL vmlinux 0x1798b891 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x17a755c4 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x17aa156a __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x17b80a3c textsearch_register +EXPORT_SYMBOL vmlinux 0x17cc9a32 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x17ddee3d jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x18042f02 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x182e53fb pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x185be656 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x186e2d1c dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x187c0beb inet_frags_init +EXPORT_SYMBOL vmlinux 0x18842f93 unlock_super +EXPORT_SYMBOL vmlinux 0x188d52f7 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x18ad0ac8 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0x18d03b25 register_filesystem +EXPORT_SYMBOL vmlinux 0x18ec8e09 close_bdev_exclusive +EXPORT_SYMBOL vmlinux 0x194d980a input_event +EXPORT_SYMBOL vmlinux 0x19610e1f cpu_all_bits +EXPORT_SYMBOL vmlinux 0x19682bbd netpoll_print_options +EXPORT_SYMBOL vmlinux 0x197f2578 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x199c8cae security_path_mkdir +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19a2b850 ps2_end_command +EXPORT_SYMBOL vmlinux 0x19a478a2 rfkill_destroy +EXPORT_SYMBOL vmlinux 0x19ae8562 rtc_dev_update_irq_enable_emul +EXPORT_SYMBOL vmlinux 0x19d4065d bio_copy_user +EXPORT_SYMBOL vmlinux 0x19dc82fa security_inode_init_security +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x1a111a41 ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x1a1ae0b4 simple_fill_super +EXPORT_SYMBOL vmlinux 0x1a25110e netlink_unicast +EXPORT_SYMBOL vmlinux 0x1a2e178d of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0x1a3887c4 of_device_register +EXPORT_SYMBOL vmlinux 0x1a3f7d8f elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in +EXPORT_SYMBOL vmlinux 0x1abe1588 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ae31dc2 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x1af6ec2c scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b331b8e ps2_init +EXPORT_SYMBOL vmlinux 0x1b4d95db blk_stop_queue +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 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9d0c64 netpoll_setup +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bc4ff03 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x1bec627c bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x1c05261a single_open +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c27615b xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x1c303adb ipv4_specific +EXPORT_SYMBOL vmlinux 0x1c439f39 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0x1c5b2c15 pmu_wait_complete +EXPORT_SYMBOL vmlinux 0x1c62341a skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x1c7139db lookup_one_len +EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check +EXPORT_SYMBOL vmlinux 0x1c86119d ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x1ca211d4 dm_io_client_create +EXPORT_SYMBOL vmlinux 0x1ca6d6e6 simple_rename +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cefb1d5 posix_test_lock +EXPORT_SYMBOL vmlinux 0x1cf4207f cad_pid +EXPORT_SYMBOL vmlinux 0x1d1e7bd6 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d52fe26 sock_create_lite +EXPORT_SYMBOL vmlinux 0x1d6ad6d2 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1e2c95fa pci_get_device +EXPORT_SYMBOL vmlinux 0x1e3a0492 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x1e3ab746 phy_disable_interrupts +EXPORT_SYMBOL vmlinux 0x1e3af379 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x1e428887 nf_log_register +EXPORT_SYMBOL vmlinux 0x1e483518 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x1e52aab0 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x1e6b3008 journal_clear_err +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e6d73f8 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x1e999807 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ed920d7 poll_freewait +EXPORT_SYMBOL vmlinux 0x1edd91d9 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f0a5dd4 put_page +EXPORT_SYMBOL vmlinux 0x1f0be99a __skb_checksum_complete +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 0x1f2ea55d input_set_keycode_big +EXPORT_SYMBOL vmlinux 0x1f42b84a xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x1f645e5b jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x1f8fbcbd skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x1fe04ef5 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x1ff69dd8 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x1ffd0a58 read_dev_sector +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2001dfe4 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x20030ecd ioremap +EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x20443940 d_validate +EXPORT_SYMBOL vmlinux 0x20650b6f qdisc_destroy +EXPORT_SYMBOL vmlinux 0x2067c210 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x208314a6 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x20921a92 matrox_G100 +EXPORT_SYMBOL vmlinux 0x20faf5dc xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x212857e3 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x2155597c bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x2161379c skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x217dcd39 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x21803abb mdiobus_scan +EXPORT_SYMBOL vmlinux 0x2189a401 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x21afb7b4 pci_iounmap +EXPORT_SYMBOL vmlinux 0x21cfa2b5 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x21e6d18a sock_i_ino +EXPORT_SYMBOL vmlinux 0x22251bcd ide_set_handler +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x2231262c matroxfb_wait_for_sync +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x227a77b4 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22df340d dev_mc_sync +EXPORT_SYMBOL vmlinux 0x230c7d81 unlock_rename +EXPORT_SYMBOL vmlinux 0x2318e6ef blk_queue_stack_limits +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 0x239a16f9 bio_integrity_free +EXPORT_SYMBOL vmlinux 0x23ca4afa bio_kmalloc +EXPORT_SYMBOL vmlinux 0x23e11e58 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x23edd0a7 rtnl_notify +EXPORT_SYMBOL vmlinux 0x23f2243d mempool_free +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24334b0a tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x2447bc47 wake_up_process +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x245a5a94 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x247c77cf dev_addr_del +EXPORT_SYMBOL vmlinux 0x247fb4e6 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x249db926 pci_dev_get +EXPORT_SYMBOL vmlinux 0x24a2fcad cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x24b6ebb9 do_truncate +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x250f478b splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x2513ea15 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x253fa809 f_setown +EXPORT_SYMBOL vmlinux 0x2566989f i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0x25754ce3 of_register_i2c_devices +EXPORT_SYMBOL vmlinux 0x257769a9 phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0x25819d1e ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x258837ab con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x25a65329 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x25b02aec vlan_gro_frags +EXPORT_SYMBOL vmlinux 0x25ba3cf8 sock_update_classid +EXPORT_SYMBOL vmlinux 0x25c61b20 macio_unregister_driver +EXPORT_SYMBOL vmlinux 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL vmlinux 0x25e4b375 bdi_register_dev +EXPORT_SYMBOL vmlinux 0x25ef2824 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x25f3bd2e atomic64_xchg +EXPORT_SYMBOL vmlinux 0x260259cc blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x260f10cb scsi_device_put +EXPORT_SYMBOL vmlinux 0x26367085 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x264d4e33 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x265e4a64 scsi_scan_host +EXPORT_SYMBOL vmlinux 0x26731d9d vfs_symlink +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x270acd0c inet_stream_connect +EXPORT_SYMBOL vmlinux 0x272c9acd pmu_battery_count +EXPORT_SYMBOL vmlinux 0x273be3f7 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x276cee01 nobh_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x2773c0d5 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x27769a05 blk_run_queue +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 0x27d47f81 fb_find_mode +EXPORT_SYMBOL vmlinux 0x27d7f363 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x280986a9 macio_release_resources +EXPORT_SYMBOL vmlinux 0x281ea859 dquot_transfer +EXPORT_SYMBOL vmlinux 0x284a14af copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x2855c007 pci_iomap +EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll +EXPORT_SYMBOL vmlinux 0x2886bfb8 tty_name +EXPORT_SYMBOL vmlinux 0x2899d4e9 bio_unmap_user +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28b9d3b2 proto_unregister +EXPORT_SYMBOL vmlinux 0x28d50c33 put_disk +EXPORT_SYMBOL vmlinux 0x28ff6dcc pci_remove_bus +EXPORT_SYMBOL vmlinux 0x292564fc register_framebuffer +EXPORT_SYMBOL vmlinux 0x293617e7 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x29785257 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x297e03ba vm_insert_page +EXPORT_SYMBOL vmlinux 0x298fb541 of_node_put +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 0x2a0051f5 write_one_page +EXPORT_SYMBOL vmlinux 0x2a039470 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x2a14825c pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x2a240da9 dev_close +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a309d77 console_stop +EXPORT_SYMBOL vmlinux 0x2a3e76ce pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x2a51788f blk_plug_device +EXPORT_SYMBOL vmlinux 0x2a676622 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x2a771098 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2acedef7 journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x2ad60d02 __elv_add_request +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b0d8e40 vfs_write +EXPORT_SYMBOL vmlinux 0x2b12925d cpumask_next_and +EXPORT_SYMBOL vmlinux 0x2b304023 ftrace_event_seq +EXPORT_SYMBOL vmlinux 0x2b54dcfd __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x2b6dc613 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x2b71b14b rfkill_unregister +EXPORT_SYMBOL vmlinux 0x2b88b522 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x2b89e28d phy_stop +EXPORT_SYMBOL vmlinux 0x2b8d7b92 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x2b98a711 register_nls +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +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 0x2bc8d0cb posix_lock_file +EXPORT_SYMBOL vmlinux 0x2c039b1f nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x2c245a91 inet_accept +EXPORT_SYMBOL vmlinux 0x2c594b10 alloc_trdev +EXPORT_SYMBOL vmlinux 0x2c641d9b tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x2c687936 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x2c817157 kill_fasync +EXPORT_SYMBOL vmlinux 0x2c919c63 gen_new_estimator +EXPORT_SYMBOL vmlinux 0x2c927a6f tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x2ca7118c inet_del_protocol +EXPORT_SYMBOL vmlinux 0x2cb244d0 elv_queue_empty +EXPORT_SYMBOL vmlinux 0x2cb9089e vlan_ioctl_set +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 0x2d082180 unregister_netdev +EXPORT_SYMBOL vmlinux 0x2d11d0f7 scsi_print_command +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d453ad2 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x2d4545b5 swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x2d6d17b2 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x2d82d7b1 serio_open +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d99980b generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x2dbee966 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x2ddd2e90 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x2ddf73f6 get_phy_id +EXPORT_SYMBOL vmlinux 0x2e130238 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x2e1abf1e xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x2e250ca9 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x2eaca39b inode_permission +EXPORT_SYMBOL vmlinux 0x2ecd739c ip_defrag +EXPORT_SYMBOL vmlinux 0x2ece4bc9 lro_receive_skb +EXPORT_SYMBOL vmlinux 0x2ed0e69e simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x2ed73949 simple_empty +EXPORT_SYMBOL vmlinux 0x2ef79a90 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x2efcfd8f blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x2f0ef45e ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x2f64ca03 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x2fae96de rtas_data_buf_lock +EXPORT_SYMBOL vmlinux 0x2fb75ce7 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x2ff6e1c2 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x303bbe37 dev_uc_sync +EXPORT_SYMBOL vmlinux 0x306c571c input_mt_create_slots +EXPORT_SYMBOL vmlinux 0x3099e187 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x30e18529 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x31522738 alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x315d21f6 inet_bind +EXPORT_SYMBOL vmlinux 0x315f57eb d_splice_alias +EXPORT_SYMBOL vmlinux 0x316cd9fe down +EXPORT_SYMBOL vmlinux 0x31787be4 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x317c2765 arp_xmit +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31a89846 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x31d383cb unregister_snap_client +EXPORT_SYMBOL vmlinux 0x31ed1707 down_timeout +EXPORT_SYMBOL vmlinux 0x31fd6c4e send_sig_info +EXPORT_SYMBOL vmlinux 0x3233ce06 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x323d2344 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x323df11d noop_llseek +EXPORT_SYMBOL vmlinux 0x324f248c pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x325d8813 kernel_recvmsg +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 0x32b5ec67 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x32c883dd dquot_scan_active +EXPORT_SYMBOL vmlinux 0x32dcfa25 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x32e6db8c of_device_get_modalias +EXPORT_SYMBOL vmlinux 0x3324f689 page_symlink +EXPORT_SYMBOL vmlinux 0x333e5b6b tcp_sendpage +EXPORT_SYMBOL vmlinux 0x3363bb60 sock_no_listen +EXPORT_SYMBOL vmlinux 0x33721acf sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x3386db7c genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x33b1d5b4 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x3406bc3b consume_skb +EXPORT_SYMBOL vmlinux 0x34076f9f xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x340d4cb0 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x341dbfa3 __per_cpu_offset +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 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x349f6823 kill_pgrp +EXPORT_SYMBOL vmlinux 0x34a781c0 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x34bd80bc scsi_register +EXPORT_SYMBOL vmlinux 0x34d681be mdiobus_register +EXPORT_SYMBOL vmlinux 0x34d92042 ilookup +EXPORT_SYMBOL vmlinux 0x34e25708 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x34f15ae6 udplite_prot +EXPORT_SYMBOL vmlinux 0x34f61245 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x34f6d14a sk_stream_error +EXPORT_SYMBOL vmlinux 0x3529e899 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x35719971 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x35750ddc __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x35868685 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x35936892 lock_rename +EXPORT_SYMBOL vmlinux 0x359a9800 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x35a19e07 dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35cda416 qdisc_list_del +EXPORT_SYMBOL vmlinux 0x35da2e61 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x36360d08 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x36640404 __blk_end_request +EXPORT_SYMBOL vmlinux 0x36a933f4 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x36b0e732 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x36b946b5 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x36c18182 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x36cfa514 pci_release_region +EXPORT_SYMBOL vmlinux 0x36e2156b netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36ee510f iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x370b331b of_platform_bus_type +EXPORT_SYMBOL vmlinux 0x371d2130 check_legacy_ioport +EXPORT_SYMBOL vmlinux 0x37383edd rtas_get_power_level +EXPORT_SYMBOL vmlinux 0x373cb495 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x37445a60 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf +EXPORT_SYMBOL vmlinux 0x376f82a5 prepare_creds +EXPORT_SYMBOL vmlinux 0x377a042a filemap_fdatawrite_range +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 0x37ea1387 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x37f5f796 datagram_poll +EXPORT_SYMBOL vmlinux 0x3808d989 module_layout +EXPORT_SYMBOL vmlinux 0x38123deb insert_inode_locked +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x38348aab jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x383e9e35 request_key +EXPORT_SYMBOL vmlinux 0x386832f0 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x389718fd xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x38ac3a0c tcp_check_req +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38c525f3 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x38cf8731 open_bdev_exclusive +EXPORT_SYMBOL vmlinux 0x38e3f84c journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x38fb9933 tty_std_termios +EXPORT_SYMBOL vmlinux 0x393a9249 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x3982ed0f elv_dispatch_sort +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 0x39f6c8a4 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x3a0f274b jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a7436f8 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3ab28d05 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x3ab442c9 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x3ac5fd58 open_exec +EXPORT_SYMBOL vmlinux 0x3ad03ea7 __kfree_skb +EXPORT_SYMBOL vmlinux 0x3ad42de3 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x3aed8f48 kill_block_super +EXPORT_SYMBOL vmlinux 0x3b0212a1 i2c_verify_client +EXPORT_SYMBOL vmlinux 0x3b265dc7 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x3b3008a9 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b4fed14 task_nice +EXPORT_SYMBOL vmlinux 0x3b615a21 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x3b6c16ad pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x3bb620d8 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bd77b58 setup_new_exec +EXPORT_SYMBOL vmlinux 0x3bea5c26 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x3bf41be8 dquot_resume +EXPORT_SYMBOL vmlinux 0x3bf9fab9 tty_unthrottle +EXPORT_SYMBOL vmlinux 0x3c217193 sock_no_connect +EXPORT_SYMBOL vmlinux 0x3c236f73 bdget +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c4764c0 keyring_search +EXPORT_SYMBOL vmlinux 0x3c506e15 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x3c690a7c input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x3c7cd505 dev_txq_stats_fold +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3ca66bb7 dev_get_by_name +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 0x3d080d7e register_quota_format +EXPORT_SYMBOL vmlinux 0x3d265fa5 pci_find_capability +EXPORT_SYMBOL vmlinux 0x3d51c2b4 sk_free +EXPORT_SYMBOL vmlinux 0x3d5c49e5 vfs_mknod +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3daa69da vfs_lstat +EXPORT_SYMBOL vmlinux 0x3dcf17d8 take_over_console +EXPORT_SYMBOL vmlinux 0x3de61fac napi_get_frags +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e1c540b dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x3e22d2a6 dquot_disable +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e424818 bio_sector_offset +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e4c7ca9 km_policy_expired +EXPORT_SYMBOL vmlinux 0x3e690db1 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x3e70186b dm_get_device +EXPORT_SYMBOL vmlinux 0x3e73946d generic_file_mmap +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3eb3f466 add_disk +EXPORT_SYMBOL vmlinux 0x3ec20d05 block_truncate_page +EXPORT_SYMBOL vmlinux 0x3ecd7a1d tty_hangup +EXPORT_SYMBOL vmlinux 0x3ecf0dd2 xfrm_sad_getinfo +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 0x3f0186ae splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f0e4888 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x3f34004c phy_start +EXPORT_SYMBOL vmlinux 0x3f3a0e5d inode_needs_sync +EXPORT_SYMBOL vmlinux 0x3f406a3b enable_kernel_altivec +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f5d86c0 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x3f862d6d napi_reuse_skb +EXPORT_SYMBOL vmlinux 0x3f88e6b0 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x3fc48802 path_lookup +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x4003e1c5 console_start +EXPORT_SYMBOL vmlinux 0x4012f05d scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x401c65e1 abx500_register_ops +EXPORT_SYMBOL vmlinux 0x402f6d86 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x4039d01f noop_fsync +EXPORT_SYMBOL vmlinux 0x40594452 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x407892b0 bdget_disk +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40ca51da ide_stall_queue +EXPORT_SYMBOL vmlinux 0x40cf7721 simple_unlink +EXPORT_SYMBOL vmlinux 0x40d08503 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x40d42c69 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x40d7c00a tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x40ee0fe0 unlock_page +EXPORT_SYMBOL vmlinux 0x40f1ad10 tb_ticks_per_jiffy +EXPORT_SYMBOL vmlinux 0x4101a975 ide_fixstring +EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring +EXPORT_SYMBOL vmlinux 0x41035c16 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x41136084 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x4126c789 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp +EXPORT_SYMBOL vmlinux 0x41383611 set_page_dirty_lock +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 0x418d4dec dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x4194fbc9 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x41c169cb matrox_millennium +EXPORT_SYMBOL vmlinux 0x41cee369 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x41e4bf47 set_binfmt +EXPORT_SYMBOL vmlinux 0x41ef1115 ide_dump_status +EXPORT_SYMBOL vmlinux 0x4201c683 filemap_flush +EXPORT_SYMBOL vmlinux 0x42118b70 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x421bbedf otg_get_transceiver +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x4241993d __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x42454db6 of_device_unregister +EXPORT_SYMBOL vmlinux 0x42558908 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x427d3922 dquot_release +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a856fa tcp_v4_conn_request +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 0x430e91f7 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x4315adc0 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short +EXPORT_SYMBOL vmlinux 0x434ade5a tty_port_close +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x4371113e sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x4375dd90 skb_queue_head +EXPORT_SYMBOL vmlinux 0x4378d0dd skb_queue_purge +EXPORT_SYMBOL vmlinux 0x437da6d7 km_query +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 0x43ce0841 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x43edcdc9 ll_rw_block +EXPORT_SYMBOL vmlinux 0x43fb0ffb __pskb_pull_tail +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 0x44630583 dm_io +EXPORT_SYMBOL vmlinux 0x44713a18 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x44a2dfcf tcp_disconnect +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 0x450fbb33 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x4514b083 macio_release_resource +EXPORT_SYMBOL vmlinux 0x452ffb8b page_put_link +EXPORT_SYMBOL vmlinux 0x45357929 nf_reinject +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x454c8c32 simple_setattr +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x4559961b file_permission +EXPORT_SYMBOL vmlinux 0x45725db3 journal_forget +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x457c601d nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x458b9b17 udp_ioctl +EXPORT_SYMBOL vmlinux 0x45947727 param_array_set +EXPORT_SYMBOL vmlinux 0x4596db6a sys_sigreturn +EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states +EXPORT_SYMBOL vmlinux 0x45a087f8 neigh_for_each +EXPORT_SYMBOL vmlinux 0x45b3e44c __dst_free +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45e203df blk_stack_limits +EXPORT_SYMBOL vmlinux 0x461ebfa0 __copy_tofrom_user +EXPORT_SYMBOL vmlinux 0x462989c3 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x462d850c skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x464c2318 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x465757c3 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x473230b1 __nla_put +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x477eae64 security_path_chown +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c1491 fb_blank +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x479fe24d security_path_rmdir +EXPORT_SYMBOL vmlinux 0x47e85689 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x47ed5172 read_cache_page +EXPORT_SYMBOL vmlinux 0x47f750c6 __register_binfmt +EXPORT_SYMBOL vmlinux 0x48000553 mempool_create_node +EXPORT_SYMBOL vmlinux 0x481ce6ce cpu_active_mask +EXPORT_SYMBOL vmlinux 0x4832775a vm_map_ram +EXPORT_SYMBOL vmlinux 0x483acdc0 seq_lseek +EXPORT_SYMBOL vmlinux 0x48404b9a remove_wait_queue +EXPORT_SYMBOL vmlinux 0x4848f3ca release_sock +EXPORT_SYMBOL vmlinux 0x484c9e38 proc_symlink +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x48602c33 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x4881efab pmac_get_partition +EXPORT_SYMBOL vmlinux 0x4883a48c sk_common_release +EXPORT_SYMBOL vmlinux 0x488f7ee1 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x4897e55b journal_destroy +EXPORT_SYMBOL vmlinux 0x48a662bc __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x48b05431 scsi_remove_target +EXPORT_SYMBOL vmlinux 0x48b3eafa del_gendisk +EXPORT_SYMBOL vmlinux 0x48bf022c security_d_instantiate +EXPORT_SYMBOL vmlinux 0x48c1d080 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x48cde09d kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x48d85ac2 pipe_unlock +EXPORT_SYMBOL vmlinux 0x48e3a121 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x48f0326e mod_timer +EXPORT_SYMBOL vmlinux 0x48f9f239 bio_free +EXPORT_SYMBOL vmlinux 0x4908b5fb km_policy_notify +EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x498c0387 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x4997460d tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x49a778fc tty_port_block_til_ready +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 0x49ceda3e of_register_driver +EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string +EXPORT_SYMBOL vmlinux 0x49e6ff51 key_task_permission +EXPORT_SYMBOL vmlinux 0x49e836d9 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x49e9fe4b skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x49faf7f0 dm_table_get_size +EXPORT_SYMBOL vmlinux 0x4a0e1823 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x4a290d4d cur_cpu_spec +EXPORT_SYMBOL vmlinux 0x4a2dfcf9 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x4a32f7c2 log_wait_commit +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a5600f0 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x4a971ec7 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x4aaa83bc netif_notify_peers +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4ab678df blk_register_region +EXPORT_SYMBOL vmlinux 0x4aba8318 seq_read +EXPORT_SYMBOL vmlinux 0x4aba8669 set_device_ro +EXPORT_SYMBOL vmlinux 0x4ac9b9c3 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x4ad8f411 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4aff6a9b swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x4b07787d generic_write_end +EXPORT_SYMBOL vmlinux 0x4b261b38 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x4b2f47d7 migrate_page +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b7ed27b sleep_on +EXPORT_SYMBOL vmlinux 0x4b866d09 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x4bacb0d4 vc_resize +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bd217fb audit_log_start +EXPORT_SYMBOL vmlinux 0x4c11435a _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c135d5b pci_enable_device +EXPORT_SYMBOL vmlinux 0x4c16391b lease_get_mtime +EXPORT_SYMBOL vmlinux 0x4c1acfb5 tcp4_gro_complete +EXPORT_SYMBOL vmlinux 0x4c2294c7 ide_geometry_proc_fops +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c67c07c pci_request_regions +EXPORT_SYMBOL vmlinux 0x4c6963a8 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x4c7192f7 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x4c7cc852 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0x4caf5475 i2c_bit_add_bus +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cbf36c4 dquot_alloc +EXPORT_SYMBOL vmlinux 0x4cee0478 generic_show_options +EXPORT_SYMBOL vmlinux 0x4d0577b6 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +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 0x4df28472 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e20afbb dentry_unhash +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e6a4073 blk_peek_request +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum +EXPORT_SYMBOL vmlinux 0x4ee0e109 simple_link +EXPORT_SYMBOL vmlinux 0x4ee9f3a6 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x4f14d2b9 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f3582ea dev_load +EXPORT_SYMBOL vmlinux 0x4f53d117 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x4f65093b pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x4f67a82c try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x4f8399f7 skb_insert +EXPORT_SYMBOL vmlinux 0x4fdbdcc2 skb_pad +EXPORT_SYMBOL vmlinux 0x4fdd8b2c clear_inode +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fe107d5 proc_create_data +EXPORT_SYMBOL vmlinux 0x4fe99583 atomic64_dec_if_positive +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x503f54b1 sock_wfree +EXPORT_SYMBOL vmlinux 0x5048ca64 journal_revoke +EXPORT_SYMBOL vmlinux 0x504bee43 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x5051982f lock_may_read +EXPORT_SYMBOL vmlinux 0x505d8e61 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x5087ceeb vlan_gro_receive +EXPORT_SYMBOL vmlinux 0x50de1622 key_unlink +EXPORT_SYMBOL vmlinux 0x50ef88f7 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x50f12798 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x512ec888 do_splice_from +EXPORT_SYMBOL vmlinux 0x51373243 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x5137d026 blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0x5144a588 matroxfb_read_pins +EXPORT_SYMBOL vmlinux 0x515e24a7 flush_instruction_cache +EXPORT_SYMBOL vmlinux 0x5166f76f inode_get_bytes +EXPORT_SYMBOL vmlinux 0x5169ecc7 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x519b0da3 finish_wait +EXPORT_SYMBOL vmlinux 0x51a80da7 otg_put_transceiver +EXPORT_SYMBOL vmlinux 0x51a9cc18 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51df07ab make_bad_inode +EXPORT_SYMBOL vmlinux 0x51e290bf inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x51e55c68 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x5208b707 ide_complete_rq +EXPORT_SYMBOL vmlinux 0x52241ad9 seq_path +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 0x52fd8f8a tcp_prot +EXPORT_SYMBOL vmlinux 0x5306ca0d __inet6_hash +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 0x533e0ec0 kstat +EXPORT_SYMBOL vmlinux 0x534f25c4 DAC1064_global_init +EXPORT_SYMBOL vmlinux 0x534f2f95 generic_getxattr +EXPORT_SYMBOL vmlinux 0x5364ec48 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x53675491 get_write_access +EXPORT_SYMBOL vmlinux 0x5384cb44 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x53a89017 try_to_release_page +EXPORT_SYMBOL vmlinux 0x53aa0b52 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x53bfea0b inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53cc28c0 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x53d9d3e5 secpath_dup +EXPORT_SYMBOL vmlinux 0x53e67541 llc_sap_close +EXPORT_SYMBOL vmlinux 0x53ebab1b _outsl_ns +EXPORT_SYMBOL vmlinux 0x53efea3e lro_receive_frags +EXPORT_SYMBOL vmlinux 0x541b3680 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x542875a5 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x5428a19a dev_disable_lro +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x54503227 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x54596b20 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x545b8e18 fail_migrate_page +EXPORT_SYMBOL vmlinux 0x5465c92f security_path_truncate +EXPORT_SYMBOL vmlinux 0x546ff419 napi_skb_finish +EXPORT_SYMBOL vmlinux 0x5481cb2b devm_ioremap +EXPORT_SYMBOL vmlinux 0x54884612 inet_shutdown +EXPORT_SYMBOL vmlinux 0x549c29f2 slow_work_cancel +EXPORT_SYMBOL vmlinux 0x54c5cdb0 d_add_ci +EXPORT_SYMBOL vmlinux 0x54dda4a1 phy_print_status +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54eeb690 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x550e195f set_create_files_as +EXPORT_SYMBOL vmlinux 0x553fb05b sk_run_filter +EXPORT_SYMBOL vmlinux 0x55444bc8 tty_write_room +EXPORT_SYMBOL vmlinux 0x5568c553 complete +EXPORT_SYMBOL vmlinux 0x5577ef9e udp_table +EXPORT_SYMBOL vmlinux 0x55791473 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x55a255f8 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x55b428df input_close_device +EXPORT_SYMBOL vmlinux 0x55c21c8a proto_register +EXPORT_SYMBOL vmlinux 0x55c62b63 hippi_type_trans +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 0x5621f09e dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x562a6de6 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x562f1d59 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x565f06f9 aio_complete +EXPORT_SYMBOL vmlinux 0x5682f4fb mb_cache_create +EXPORT_SYMBOL vmlinux 0x56a10763 csum_tcpudp_magic +EXPORT_SYMBOL vmlinux 0x56a8fb52 do_SAK +EXPORT_SYMBOL vmlinux 0x56bc3f93 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x56c2b95b rtas_progress +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 0x570e2355 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x574f76f4 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x574fce2d __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x575c44dc blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x577433c9 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x577b123d do_munmap +EXPORT_SYMBOL vmlinux 0x57905dc8 filp_open +EXPORT_SYMBOL vmlinux 0x5795e473 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x57a28af7 rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57e4b7b7 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x57eacd76 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x57ee037f dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x57f367d3 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x580406b7 matroxfb_register_driver +EXPORT_SYMBOL vmlinux 0x582a4747 cacheable_memcpy +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x584f0d58 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x586f0615 fsync_bdev +EXPORT_SYMBOL vmlinux 0x58752a10 invalidate_partition +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 0x58b90939 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x58cb5a1e pci_read_irq_line +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 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59d8223a ioport_resource +EXPORT_SYMBOL vmlinux 0x5a0224bd dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x5a51e357 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x5a58e41b sockfd_lookup +EXPORT_SYMBOL vmlinux 0x5a6795c0 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a86252d __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x5a868b8a blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x5a876d09 pci_map_rom +EXPORT_SYMBOL vmlinux 0x5a8b55bf dcache_dir_open +EXPORT_SYMBOL vmlinux 0x5a96d659 skb_push +EXPORT_SYMBOL vmlinux 0x5aaa8498 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x5aabfaa7 vfs_writev +EXPORT_SYMBOL vmlinux 0x5ab67931 do_IRQ +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b223375 set_user_nice +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 0x5b5d4099 tty_port_open +EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x5b6feda4 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x5b86d7ec follow_down +EXPORT_SYMBOL vmlinux 0x5b9828c5 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x5ba2be1f g450_mnp2f +EXPORT_SYMBOL vmlinux 0x5babf4ec neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x5be55a7c blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x5c0d6a9a I_BDEV +EXPORT_SYMBOL vmlinux 0x5c109c97 init_special_inode +EXPORT_SYMBOL vmlinux 0x5c124441 inet_dev_addr_type +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 0x5c669418 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x5c7493f7 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x5c8c9b67 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x5cd12699 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x5ce5db1b neigh_seq_next +EXPORT_SYMBOL vmlinux 0x5d1f5e3d xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x5d6071fa dquot_quota_on_path +EXPORT_SYMBOL vmlinux 0x5d6cb48c simple_transaction_read +EXPORT_SYMBOL vmlinux 0x5d83cf6f nonseekable_open +EXPORT_SYMBOL vmlinux 0x5db51398 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x5dc62961 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x5dfb51ae unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x5e0f34cb ether_setup +EXPORT_SYMBOL vmlinux 0x5e17d221 inet_ioctl +EXPORT_SYMBOL vmlinux 0x5e2174fa wireless_spy_update +EXPORT_SYMBOL vmlinux 0x5e3a8a9c __wake_up +EXPORT_SYMBOL vmlinux 0x5e4767ce mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x5e554a2d blkdev_put +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eb0dfc6 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x5ecc452c kernel_accept +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5ed13cf0 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x5edc3858 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5f0077d3 __ide_dma_bad_drive +EXPORT_SYMBOL vmlinux 0x5f1cfe4a napi_frags_skb +EXPORT_SYMBOL vmlinux 0x5f42e199 mach_chrp +EXPORT_SYMBOL vmlinux 0x5f496d0b __dquot_free_space +EXPORT_SYMBOL vmlinux 0x5f52a437 __napi_schedule +EXPORT_SYMBOL vmlinux 0x5f5c9ee6 poll_initwait +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5f8a2728 isa_io_base +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fbe5b92 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x5fd48649 seq_putc +EXPORT_SYMBOL vmlinux 0x5fef1194 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x6037968d seq_printf +EXPORT_SYMBOL vmlinux 0x605bfe00 elv_rb_add +EXPORT_SYMBOL vmlinux 0x60666984 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x60754f75 __lock_buffer +EXPORT_SYMBOL vmlinux 0x608ba00c tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60cc30c4 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x60d2bf8e simple_statfs +EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n +EXPORT_SYMBOL vmlinux 0x610ef94d tty_shutdown +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x61434c91 security_path_unlink +EXPORT_SYMBOL vmlinux 0x6158a1a9 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x617d1af1 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x618beced pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61cc9d65 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x61d57d1d jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x61d6f0e5 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x61eef2c9 _insb +EXPORT_SYMBOL vmlinux 0x61ffbb9a macio_register_driver +EXPORT_SYMBOL vmlinux 0x620ea602 switch_mmu_context +EXPORT_SYMBOL vmlinux 0x621eee0b __scm_destroy +EXPORT_SYMBOL vmlinux 0x6230013b blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x623d7182 _chrp_type +EXPORT_SYMBOL vmlinux 0x624e178e dm_io_client_destroy +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 0x62a5bc19 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x62b09ab6 netdev_set_master +EXPORT_SYMBOL vmlinux 0x62be03df start_tty +EXPORT_SYMBOL vmlinux 0x62ded141 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x62fcc07b devm_ioremap_prot +EXPORT_SYMBOL vmlinux 0x63185f26 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x633ff46e flock_lock_file_wait +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 0x637d32f8 find_inode_number +EXPORT_SYMBOL vmlinux 0x63902f38 __serio_register_port +EXPORT_SYMBOL vmlinux 0x639351aa bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x6397d005 d_alloc_name +EXPORT_SYMBOL vmlinux 0x639e6018 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x63a89797 thaw_process +EXPORT_SYMBOL vmlinux 0x63bd049a scsi_put_command +EXPORT_SYMBOL vmlinux 0x63e85469 tcp_md5_hash_skb_data +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 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x640e677d have_submounts +EXPORT_SYMBOL vmlinux 0x642add28 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x642c450b security_file_mmap +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x64541df8 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x6461f289 kfree_skb +EXPORT_SYMBOL vmlinux 0x646cc6ab pmu_poll +EXPORT_SYMBOL vmlinux 0x646d20f4 udp_poll +EXPORT_SYMBOL vmlinux 0x647a22df i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x647ac7ae journal_flush +EXPORT_SYMBOL vmlinux 0x647e9691 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64b2b340 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x64d672ae giveup_fpu +EXPORT_SYMBOL vmlinux 0x64e2cf24 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x6507cf22 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x650ca6f3 set_anon_super +EXPORT_SYMBOL vmlinux 0x6513ac61 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x6518b114 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x651be9e5 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x652d5191 current_fs_time +EXPORT_SYMBOL vmlinux 0x6537956f padata_alloc +EXPORT_SYMBOL vmlinux 0x653b5960 fput +EXPORT_SYMBOL vmlinux 0x65400222 __irq_offset_value +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x655ea4fb path_get +EXPORT_SYMBOL vmlinux 0x65bb58a2 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x65bbd361 kset_register +EXPORT_SYMBOL vmlinux 0x65cf434a ppc_md +EXPORT_SYMBOL vmlinux 0x66176f9f kernel_bind +EXPORT_SYMBOL vmlinux 0x66250a66 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x662d91ed ip_fragment +EXPORT_SYMBOL vmlinux 0x6663db60 __init_rwsem +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66cbf14b pmac_xpram_write +EXPORT_SYMBOL vmlinux 0x66d8c50d xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x66dd117d key_alloc +EXPORT_SYMBOL vmlinux 0x66e06653 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x66e7dff9 kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x66ea88eb pmac_suspend_agp_for_card +EXPORT_SYMBOL vmlinux 0x66ee944e eth_header_parse +EXPORT_SYMBOL vmlinux 0x66fc6455 scsi_device_get +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x6711cc57 may_umount +EXPORT_SYMBOL vmlinux 0x67244949 dquot_drop +EXPORT_SYMBOL vmlinux 0x67410c83 of_gpio_count +EXPORT_SYMBOL vmlinux 0x67450772 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x6775eda7 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x6776d451 ab3100_event_register +EXPORT_SYMBOL vmlinux 0x6782e6d1 tty_register_device +EXPORT_SYMBOL vmlinux 0x67840d7e sock_kmalloc +EXPORT_SYMBOL vmlinux 0x6797510c phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67d41525 vfs_rename +EXPORT_SYMBOL vmlinux 0x67f59257 alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x67f85576 elv_rb_del +EXPORT_SYMBOL vmlinux 0x681bad09 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x681f1881 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x6826f11e blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x68534265 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x68609857 complete_and_exit +EXPORT_SYMBOL vmlinux 0x68728813 journal_errno +EXPORT_SYMBOL vmlinux 0x688a3143 generic_setxattr +EXPORT_SYMBOL vmlinux 0x688b996e dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x68af8228 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x68c25956 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x68e0e289 idr_remove +EXPORT_SYMBOL vmlinux 0x68e8f83c rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x68e939f7 noop_qdisc +EXPORT_SYMBOL vmlinux 0x68fc57a5 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x69052164 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x6943ce55 pcim_iomap_regions_request_all +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 0x69815237 kill_anon_super +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69d7e5b8 __debugger_ipi +EXPORT_SYMBOL vmlinux 0x69da489b blk_init_tags +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69fbf780 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a10ffea register_netdev +EXPORT_SYMBOL vmlinux 0x6a230562 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x6a409334 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x6a4d2477 security_path_link +EXPORT_SYMBOL vmlinux 0x6a61f874 to_tm +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6aab6133 copy_io_context +EXPORT_SYMBOL vmlinux 0x6aac68d3 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp +EXPORT_SYMBOL vmlinux 0x6ae67f18 kern_path +EXPORT_SYMBOL vmlinux 0x6ae8165f scsi_execute +EXPORT_SYMBOL vmlinux 0x6b11af51 phy_disconnect +EXPORT_SYMBOL vmlinux 0x6b156d5e skb_make_writable +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b1fd501 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b348031 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x6b3d2f69 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x6b43ceee backlight_device_register +EXPORT_SYMBOL vmlinux 0x6b5064c6 get_io_context +EXPORT_SYMBOL vmlinux 0x6b5406b2 __brelse +EXPORT_SYMBOL vmlinux 0x6b6ca98b scsi_prep_return +EXPORT_SYMBOL vmlinux 0x6b78f88b swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0x6b87446b udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bd68f52 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c28440e tty_free_termios +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 0x6c8a167f scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x6ca1d1a4 atomic64_read +EXPORT_SYMBOL vmlinux 0x6ca7d920 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x6cb4f942 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x6cc3f295 macio_dev_get +EXPORT_SYMBOL vmlinux 0x6cd03589 kobject_add +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6cf42838 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x6cf8437f mac_find_mode +EXPORT_SYMBOL vmlinux 0x6cfb7396 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x6d08f459 jbd2_journal_begin_ordered_truncate +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 0x6d3ad1db blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x6d464175 __sg_free_table +EXPORT_SYMBOL vmlinux 0x6d5ffa66 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d8def15 follow_up +EXPORT_SYMBOL vmlinux 0x6da6091c tcp_mtup_init +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 0x6dff9204 bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0x6e325edc vga_tryget +EXPORT_SYMBOL vmlinux 0x6e383dd6 gen_pool_add +EXPORT_SYMBOL vmlinux 0x6e68607e inode_setattr +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e83af9f dev_add_pack +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6eac7299 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x6eb12c73 fasync_helper +EXPORT_SYMBOL vmlinux 0x6ee67e59 dm_register_target +EXPORT_SYMBOL vmlinux 0x6ef24880 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x6f0e1c41 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x6f42969a may_umount_tree +EXPORT_SYMBOL vmlinux 0x6f60fc3d jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6fa82d59 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fe330bd writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x700e080f sock_no_accept +EXPORT_SYMBOL vmlinux 0x701aa3b4 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf +EXPORT_SYMBOL vmlinux 0x702e5461 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x70339a0d of_find_node_with_property +EXPORT_SYMBOL vmlinux 0x704652b4 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x70593ebd tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x705c57b2 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x706fd268 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x70aa181a blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70cc8c1f kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x70d888b7 __debugger_fault_handler +EXPORT_SYMBOL vmlinux 0x70e476d3 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x70f86c70 pmu_queue_request +EXPORT_SYMBOL vmlinux 0x710a6e58 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x710c358a of_dev_put +EXPORT_SYMBOL vmlinux 0x711cd0ae of_iomap +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x714cc738 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x7178ccc8 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x718881ca pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71c8da94 set_irq_chip +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x71ce4537 free_task +EXPORT_SYMBOL vmlinux 0x71f28207 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x7224fe74 seq_open +EXPORT_SYMBOL vmlinux 0x72881bec generic_read_dir +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72b9a57d wireless_send_event +EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x73116efa sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x73168ba7 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x7323eb94 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x7342496a llc_sap_find +EXPORT_SYMBOL vmlinux 0x735d8503 add_wait_queue +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +EXPORT_SYMBOL vmlinux 0x73929c79 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x73a81dc2 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x73cece33 bio_add_page +EXPORT_SYMBOL vmlinux 0x73cf8ae8 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73f31b06 dquot_file_open +EXPORT_SYMBOL vmlinux 0x744b5de9 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte +EXPORT_SYMBOL vmlinux 0x745ab09e da903x_query_status +EXPORT_SYMBOL vmlinux 0x745dfe77 thaw_bdev +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74912249 __find_get_block +EXPORT_SYMBOL vmlinux 0x74a16948 netif_napi_del +EXPORT_SYMBOL vmlinux 0x74b8fab3 dev_mc_init +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74c24542 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74ea2137 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x74fe8730 sys_ctrler +EXPORT_SYMBOL vmlinux 0x751c2917 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x7532008c dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x75508391 blk_end_request_all +EXPORT_SYMBOL vmlinux 0x7554b40c generic_file_open +EXPORT_SYMBOL vmlinux 0x7565bf7a invalidate_inodes +EXPORT_SYMBOL vmlinux 0x756dd160 start_thread +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 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x760eb6fb inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x7613c813 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x7618bf5c __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x76298ff7 netpoll_poll +EXPORT_SYMBOL vmlinux 0x762bc523 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x764877b2 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x765226eb sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x76551324 bdi_unregister +EXPORT_SYMBOL vmlinux 0x76714805 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x768abd21 dqput +EXPORT_SYMBOL vmlinux 0x769bc222 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76c6077e skb_dequeue +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76e07962 idr_get_new +EXPORT_SYMBOL vmlinux 0x76e093d4 cont_write_begin +EXPORT_SYMBOL vmlinux 0x76f02a10 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x7702ce73 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x7704349f lookup_bdev +EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic +EXPORT_SYMBOL vmlinux 0x7715e348 sk_filter +EXPORT_SYMBOL vmlinux 0x772f29a7 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x7778996c blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x77a4bb48 bd_release +EXPORT_SYMBOL vmlinux 0x77ab2d97 ip_dev_find +EXPORT_SYMBOL vmlinux 0x77b06860 serio_reconnect +EXPORT_SYMBOL vmlinux 0x77b851c4 cacheable_memzero +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77de3481 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77ed2cec pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x77f41208 do_sync_read +EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x78133bdc mnt_pin +EXPORT_SYMBOL vmlinux 0x781863f9 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x78531a2a llc_add_pack +EXPORT_SYMBOL vmlinux 0x7864fb10 vfs_unlink +EXPORT_SYMBOL vmlinux 0x787f2316 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource +EXPORT_SYMBOL vmlinux 0x78d52da1 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e59415 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x78ec3e57 blk_start_request +EXPORT_SYMBOL vmlinux 0x78ed3e5c __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x78f1a147 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x790df6ca __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x792e533e phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x79577d37 tty_port_put +EXPORT_SYMBOL vmlinux 0x7961c1c4 key_negate_and_link +EXPORT_SYMBOL vmlinux 0x7963cfe5 tcp4_gro_receive +EXPORT_SYMBOL vmlinux 0x796c4ab6 journal_set_features +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x797e9709 inet_listen +EXPORT_SYMBOL vmlinux 0x79a69fe2 i2c_transfer +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79b965c8 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x79c9a3cb gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x79e42b48 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x79ef470c key_payload_reserve +EXPORT_SYMBOL vmlinux 0x79ff8f85 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x7a169769 submit_bh +EXPORT_SYMBOL vmlinux 0x7a28325e blk_queue_ordered +EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol +EXPORT_SYMBOL vmlinux 0x7a3355d8 vc_cons +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a4a7ac1 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x7a51a5bb jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x7a523277 of_gpio_simple_xlate +EXPORT_SYMBOL vmlinux 0x7a6b7981 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x7ab04e16 unregister_con_driver +EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip +EXPORT_SYMBOL vmlinux 0x7ae78f81 is_bad_inode +EXPORT_SYMBOL vmlinux 0x7b11dbbd genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x7b16d1cd unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x7b25d917 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x7b4650cd blk_unplug +EXPORT_SYMBOL vmlinux 0x7b5f42b9 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x7b633ff0 cdev_init +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7b6e09e8 tcp_poll +EXPORT_SYMBOL vmlinux 0x7b7e8391 security_inode_permission +EXPORT_SYMBOL vmlinux 0x7b8f92b6 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x7ba03690 of_get_gpio_flags +EXPORT_SYMBOL vmlinux 0x7ba1cd78 sock_init_data +EXPORT_SYMBOL vmlinux 0x7babf889 cdev_alloc +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7bd5d734 mnt_unpin +EXPORT_SYMBOL vmlinux 0x7be16fd2 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x7be4827c pci_dram_offset +EXPORT_SYMBOL vmlinux 0x7c003aef _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c57e950 inode_change_ok +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c8b8e58 generic_listxattr +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 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d56d896 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x7d5b69c0 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x7dc97879 rtas_get_error_log_max +EXPORT_SYMBOL vmlinux 0x7dcace87 kthread_bind +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7dee6310 alloc_file +EXPORT_SYMBOL vmlinux 0x7dfaa188 matroxfb_g450_setpll_cond +EXPORT_SYMBOL vmlinux 0x7e0699f7 skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x7e13666a unregister_binfmt +EXPORT_SYMBOL vmlinux 0x7e24e115 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e486281 tcf_register_action +EXPORT_SYMBOL vmlinux 0x7e5f0452 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x7e99a1c1 get_pci_dma_ops +EXPORT_SYMBOL vmlinux 0x7e9b92b0 dev_mc_del +EXPORT_SYMBOL vmlinux 0x7e9fe342 phy_device_register +EXPORT_SYMBOL vmlinux 0x7eb96530 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x7ecee3f2 tty_check_change +EXPORT_SYMBOL vmlinux 0x7ecf9ba1 vmap +EXPORT_SYMBOL vmlinux 0x7eef489c simple_readpage +EXPORT_SYMBOL vmlinux 0x7f07d984 pci_disable_msix +EXPORT_SYMBOL vmlinux 0x7f0b325e tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f335d22 security_path_rename +EXPORT_SYMBOL vmlinux 0x7f537ce8 get_gendisk +EXPORT_SYMBOL vmlinux 0x7f71668e blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x7f7d2df0 freeze_bdev +EXPORT_SYMBOL vmlinux 0x7f911805 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x7f9ce8fe ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0x7fbb740b kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x7fbcf48d contig_page_data +EXPORT_SYMBOL vmlinux 0x7fe30248 __invalidate_device +EXPORT_SYMBOL vmlinux 0x7fe50678 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x7feb09d0 genphy_config_advert +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x801b7078 find_or_create_page +EXPORT_SYMBOL vmlinux 0x801f5a3f __strncpy_from_user +EXPORT_SYMBOL vmlinux 0x803a2fe3 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x803f1495 down_read +EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x80673e3d write_inode_now +EXPORT_SYMBOL vmlinux 0x809bd453 get_sb_bdev +EXPORT_SYMBOL vmlinux 0x80b9f963 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x81283ca1 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x8138b5c7 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x814324ad nf_unregister_hooks +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 0x8181f28d scsi_unregister +EXPORT_SYMBOL vmlinux 0x81953cfa tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x819c39de blk_put_request +EXPORT_SYMBOL vmlinux 0x81a07f4e _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x81c0a84f rtas_set_indicator +EXPORT_SYMBOL vmlinux 0x81d0b050 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x81d6e7c0 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x81ef147e tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x82194bcd netpoll_send_skb +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 0x828360c3 scsi_eh_restore_cmnd +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 0x82e9d3ba alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0x82f3d6f8 matroxfb_g450_shutdown +EXPORT_SYMBOL vmlinux 0x8334cfee generic_block_bmap +EXPORT_SYMBOL vmlinux 0x833d0a06 __lru_cache_add +EXPORT_SYMBOL vmlinux 0x834c77e8 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x835569ff sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x835ca2c9 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x835fdfc4 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x83953eb1 bioset_free +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83deb3d7 do_splice_to +EXPORT_SYMBOL vmlinux 0x83ffb4c9 elv_abort_queue +EXPORT_SYMBOL vmlinux 0x84019774 simple_setsize +EXPORT_SYMBOL vmlinux 0x840530b5 mpage_writepage +EXPORT_SYMBOL vmlinux 0x842124e7 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x8438a9de block_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x844404cf ISA_DMA_THRESHOLD +EXPORT_SYMBOL vmlinux 0x844c6f42 skb_checksum +EXPORT_SYMBOL vmlinux 0x847bd958 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x84b183ae strncmp +EXPORT_SYMBOL vmlinux 0x84bd69bf dq_data_lock +EXPORT_SYMBOL vmlinux 0x8541bccc intercept_table +EXPORT_SYMBOL vmlinux 0x854f066d __put_cred +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x857a4538 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x85ae3206 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x85b51f8d hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e16a68 sock_register +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85eaf480 d_delete +EXPORT_SYMBOL vmlinux 0x85fe6c3a __seq_open_private +EXPORT_SYMBOL vmlinux 0x8606eb40 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x86222cc2 load_nls +EXPORT_SYMBOL vmlinux 0x862ce94a seq_escape +EXPORT_SYMBOL vmlinux 0x863774cb force_sig +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x865707be tcf_hash_create +EXPORT_SYMBOL vmlinux 0x865acfc4 iget_failed +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 0x86ba4d45 kset_unregister +EXPORT_SYMBOL vmlinux 0x86db1cbb rtas_flash_term_hook +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870961e1 release_firmware +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x877186e4 dev_addr_add +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87e92e32 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x8808a5f6 bio_init +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x88160fce abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x881dd5db rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x883219b1 sock_setsockopt +EXPORT_SYMBOL vmlinux 0x88395825 __napi_complete +EXPORT_SYMBOL vmlinux 0x884693b6 km_report +EXPORT_SYMBOL vmlinux 0x884d17c9 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x886078c5 vfs_link +EXPORT_SYMBOL vmlinux 0x887e688e drop_super +EXPORT_SYMBOL vmlinux 0x889e6605 elevator_exit +EXPORT_SYMBOL vmlinux 0x88a85ea6 d_find_alias +EXPORT_SYMBOL vmlinux 0x88c49e86 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x88c7c62d machine_id +EXPORT_SYMBOL vmlinux 0x88f32776 stop_tty +EXPORT_SYMBOL vmlinux 0x8914b686 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x891fbb10 mempool_destroy +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x8952a865 km_state_notify +EXPORT_SYMBOL vmlinux 0x89602355 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x896fb07d dm_io_client_resize +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89797060 _raw_read_lock +EXPORT_SYMBOL vmlinux 0x89936432 xfrm_register_km +EXPORT_SYMBOL vmlinux 0x89ae0436 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x89b2a252 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x89b3107b isa_mem_base +EXPORT_SYMBOL vmlinux 0x89ce3b8c scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x89d006c6 km_state_expired +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 0x8a082c95 netif_rx +EXPORT_SYMBOL vmlinux 0x8a17efe3 scsi_get_command +EXPORT_SYMBOL vmlinux 0x8a3e5c28 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x8a485757 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x8a53dd24 touch_atime +EXPORT_SYMBOL vmlinux 0x8a688e7c inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a848b88 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x8a8b3e0e pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8ab4079e atomic64_add +EXPORT_SYMBOL vmlinux 0x8ada8710 dev_gro_receive +EXPORT_SYMBOL vmlinux 0x8ae50ee5 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x8af528a0 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x8b0158bf mdiobus_read +EXPORT_SYMBOL vmlinux 0x8b0b2390 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x8b140958 bio_map_kern +EXPORT_SYMBOL vmlinux 0x8b19ea11 kobject_set_name +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b39289c skb_recycle_check +EXPORT_SYMBOL vmlinux 0x8b3d4080 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x8b44ba89 tty_kref_put +EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x8bbe16b6 register_netdevice +EXPORT_SYMBOL vmlinux 0x8bd5344d mark_info_dirty +EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long +EXPORT_SYMBOL vmlinux 0x8be1b5ce hippi_change_mtu +EXPORT_SYMBOL vmlinux 0x8bf632ee registered_fb +EXPORT_SYMBOL vmlinux 0x8c140666 of_device_uevent +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c8b906b bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x8cb90ec0 audit_log_format +EXPORT_SYMBOL vmlinux 0x8cc14767 key_put +EXPORT_SYMBOL vmlinux 0x8cc6368f rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cdadc15 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x8cf22ed5 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x8d04d2be inet_sendmsg +EXPORT_SYMBOL vmlinux 0x8d206bf8 dev_mc_add +EXPORT_SYMBOL vmlinux 0x8d4468c9 pci_device_to_OF_node +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d64f993 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x8d7153f2 default_llseek +EXPORT_SYMBOL vmlinux 0x8d72fe3e bd_set_size +EXPORT_SYMBOL vmlinux 0x8d8b0a35 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x8de0b5ac mempool_create +EXPORT_SYMBOL vmlinux 0x8df5da63 memstart_addr +EXPORT_SYMBOL vmlinux 0x8dfec66a xfrm_state_update +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk +EXPORT_SYMBOL vmlinux 0x8e454dd7 register_console +EXPORT_SYMBOL vmlinux 0x8e63350d idr_replace +EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq +EXPORT_SYMBOL vmlinux 0x8e98a5b5 proc_dointvec +EXPORT_SYMBOL vmlinux 0x8ec04552 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x8ec1fabc netlink_set_err +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 0x8f0d45e9 prepare_binprm +EXPORT_SYMBOL vmlinux 0x8f18a69b gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f849406 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x8f85f835 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x8f8a7e77 mdiobus_write +EXPORT_SYMBOL vmlinux 0x8fb7ee06 elevator_init +EXPORT_SYMBOL vmlinux 0x8fbf37e0 profile_pc +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x8fff1454 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x90431666 override_creds +EXPORT_SYMBOL vmlinux 0x90438cfc generic_setlease +EXPORT_SYMBOL vmlinux 0x90501868 transfer_to_handler +EXPORT_SYMBOL vmlinux 0x90683445 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x907c7b95 flush_tlb_range +EXPORT_SYMBOL vmlinux 0x9084a47a genl_register_ops +EXPORT_SYMBOL vmlinux 0x90916be3 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x909fd963 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x90a69a2e blk_make_request +EXPORT_SYMBOL vmlinux 0x90b51d6c schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x90e146c2 trace_seq_putc +EXPORT_SYMBOL vmlinux 0x912557ce rtas_busy_delay +EXPORT_SYMBOL vmlinux 0x91429a10 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x914a28a1 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x915e1208 tb_ticks_per_usec +EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource +EXPORT_SYMBOL vmlinux 0x916833af mutex_lock +EXPORT_SYMBOL vmlinux 0x9168c033 rtas_get_sensor +EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong +EXPORT_SYMBOL vmlinux 0x9191febc tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x919d1163 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x91b84f81 ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x91d88e48 __debugger_dabr_match +EXPORT_SYMBOL vmlinux 0x91e7146d blkdev_get +EXPORT_SYMBOL vmlinux 0x91f8dcdd rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x920144a5 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x9202e727 fb_get_mode +EXPORT_SYMBOL vmlinux 0x9206e024 kobject_get +EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool +EXPORT_SYMBOL vmlinux 0x92a2c46d ida_get_new +EXPORT_SYMBOL vmlinux 0x92a5c021 input_flush_device +EXPORT_SYMBOL vmlinux 0x92aa051e misc_register +EXPORT_SYMBOL vmlinux 0x92ec3616 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9309de94 cuda_request +EXPORT_SYMBOL vmlinux 0x932d177a skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x9330cb9f sg_alloc_table +EXPORT_SYMBOL vmlinux 0x93386946 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x9354b82a dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x9354bdca create_mnt_ns +EXPORT_SYMBOL vmlinux 0x935df00f skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x93739ff8 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x937ed8e5 scsi_add_device +EXPORT_SYMBOL vmlinux 0x9381a770 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x9389a2be matroxfb_enable_irq +EXPORT_SYMBOL vmlinux 0x939a0560 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93afcdb3 find_vma +EXPORT_SYMBOL vmlinux 0x93c668cf generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x93e7a29e bio_integrity_split +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x941008ed i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x941af764 cdev_del +EXPORT_SYMBOL vmlinux 0x94335299 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x9440e9cd ip_getsockopt +EXPORT_SYMBOL vmlinux 0x946b8793 journal_load +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94b3aac8 __rta_fill +EXPORT_SYMBOL vmlinux 0x94c4524d dev_change_flags +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94d3c3d8 journal_stop +EXPORT_SYMBOL vmlinux 0x95132622 netdev_features_change +EXPORT_SYMBOL vmlinux 0x9514151a _mcount +EXPORT_SYMBOL vmlinux 0x9524b0ae _outsb +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 0x95846edd scsi_init_io +EXPORT_SYMBOL vmlinux 0x958cf3a3 dw_spi_resume_host +EXPORT_SYMBOL vmlinux 0x95a127bf generic_ide_ioctl +EXPORT_SYMBOL vmlinux 0x95b47620 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x95d8d3bc __blk_run_queue +EXPORT_SYMBOL vmlinux 0x95efe3ee flush_dcache_page +EXPORT_SYMBOL vmlinux 0x96269c7b iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x962e93cd ide_do_reset +EXPORT_SYMBOL vmlinux 0x9649304d tty_set_operations +EXPORT_SYMBOL vmlinux 0x9669b49c end_page_writeback +EXPORT_SYMBOL vmlinux 0x9673b767 dquot_enable +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x96ade9af simple_getattr +EXPORT_SYMBOL vmlinux 0x96bb4bdd netlink_broadcast_filtered +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 0x9704e93a ida_get_new_above +EXPORT_SYMBOL vmlinux 0x970cfbd1 ip_generic_getfrag +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 0x977162b6 of_get_next_child +EXPORT_SYMBOL vmlinux 0x97739d8d cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x97a90174 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x97b3cede sock_no_bind +EXPORT_SYMBOL vmlinux 0x97b9ec13 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x97ccd0fc fb_set_var +EXPORT_SYMBOL vmlinux 0x97dbc2cb bh_submit_read +EXPORT_SYMBOL vmlinux 0x97fd5511 __bio_clone +EXPORT_SYMBOL vmlinux 0x98005c05 eth_type_trans +EXPORT_SYMBOL vmlinux 0x9811a9a2 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x983477dd scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x98452f02 journal_abort +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x986f3ef2 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init +EXPORT_SYMBOL vmlinux 0x989bbad7 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x98aa5a6e locks_init_lock +EXPORT_SYMBOL vmlinux 0x98cab2c5 __blockdev_direct_IO_newtrunc +EXPORT_SYMBOL vmlinux 0x98d8e42f pid_task +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 0x9950bbde skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x99591105 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x996138c2 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99a4b2cf sock_no_getsockopt +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 0x99e1d9da bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x99f6429f fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a2aacea genphy_update_link +EXPORT_SYMBOL vmlinux 0x9a51172c generic_permission +EXPORT_SYMBOL vmlinux 0x9a529598 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x9a608313 cont_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x9a626734 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0x9a87b3cf security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x9aa18d7b ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x9aadd3cd default_file_splice_read +EXPORT_SYMBOL vmlinux 0x9ac2ad76 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x9ad2c206 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x9ad5de74 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x9b048d59 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x9b0da960 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x9b1029e1 ps2_command +EXPORT_SYMBOL vmlinux 0x9b22266a generic_setattr +EXPORT_SYMBOL vmlinux 0x9b244ae8 iget5_locked +EXPORT_SYMBOL vmlinux 0x9b2f2acf swiotlb_unmap_sg +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 0x9b6b5e92 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +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 0x9c1f4bdc blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x9c255009 follow_pfn +EXPORT_SYMBOL vmlinux 0x9c2e0ba1 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x9c3b6e8f splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x9c958fd1 block_write_end +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 0x9cee4147 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x9cfc93a7 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d14983a ppc_enable_pmcs +EXPORT_SYMBOL vmlinux 0x9d256263 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d66354c matroxfb_g450_connect +EXPORT_SYMBOL vmlinux 0x9d66629b dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x9d669763 memcpy +EXPORT_SYMBOL vmlinux 0x9d6fe891 file_fsync +EXPORT_SYMBOL vmlinux 0x9d79ad5c input_register_device +EXPORT_SYMBOL vmlinux 0x9d7ce8dd _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x9d82ee9a open_by_devnum +EXPORT_SYMBOL vmlinux 0x9d86d377 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0x9d9c9597 idr_init +EXPORT_SYMBOL vmlinux 0x9d9fa7af up_write +EXPORT_SYMBOL vmlinux 0x9daf69a8 blk_start_queue +EXPORT_SYMBOL vmlinux 0x9de9999f ___pskb_trim +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e672ff6 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x9e745ff9 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x9e97375d rtas_busy_delay_time +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea56838 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +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 0x9f3eaf63 tty_throttle +EXPORT_SYMBOL vmlinux 0x9f41b63e generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x9f4297f7 napi_complete +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +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 0x9fa496d4 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x9fa83418 i2c_use_client +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fbaec6b disk_stack_limits +EXPORT_SYMBOL vmlinux 0x9fc41383 of_get_address +EXPORT_SYMBOL vmlinux 0x9fc7f785 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9ff46ea8 input_register_handle +EXPORT_SYMBOL vmlinux 0xa02fa3b7 tty_insert_flip_string_fixed_flag +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 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06daed3 __ps2_command +EXPORT_SYMBOL vmlinux 0xa086dad9 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xa089a265 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0bb054b pipe_lock +EXPORT_SYMBOL vmlinux 0xa0cd5f7c pmac_register_agp_pm +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d0b5a4 generic_writepages +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 0xa1766d04 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xa17c4347 kill_pid +EXPORT_SYMBOL vmlinux 0xa1a4da89 dm_put_device +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1cbbfed pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xa1ebb22c page_readlink +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 0xa210a260 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xa22ca372 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0xa2554aba tc_classify +EXPORT_SYMBOL vmlinux 0xa256861a soft_cursor +EXPORT_SYMBOL vmlinux 0xa258329a genphy_resume +EXPORT_SYMBOL vmlinux 0xa2685ffd mfd_remove_devices +EXPORT_SYMBOL vmlinux 0xa26df952 skb_unlink +EXPORT_SYMBOL vmlinux 0xa279f740 rfkill_register +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2bbed37 crash_shutdown_register +EXPORT_SYMBOL vmlinux 0xa2c69877 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xa2cd0833 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xa2cd1edc remap_pfn_range +EXPORT_SYMBOL vmlinux 0xa2d5515e note_scsi_host +EXPORT_SYMBOL vmlinux 0xa2d91f6f generic_write_sync +EXPORT_SYMBOL vmlinux 0xa2ebcac5 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa2f8234a dquot_operations +EXPORT_SYMBOL vmlinux 0xa3217b86 blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa3418794 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xa3490fbb vfs_readv +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa37c45c1 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xa384b5fe down_write +EXPORT_SYMBOL vmlinux 0xa38e691a ioremap_bot +EXPORT_SYMBOL vmlinux 0xa3945742 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa3a72a9f textsearch_unregister +EXPORT_SYMBOL vmlinux 0xa3a736b9 skb_copy_bits +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 0xa408c7a6 bd_claim +EXPORT_SYMBOL vmlinux 0xa4113ee3 i2c_master_recv +EXPORT_SYMBOL vmlinux 0xa4325941 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xa4326731 nf_getsockopt +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 0xa484ec73 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xa48de63e netif_carrier_off +EXPORT_SYMBOL vmlinux 0xa496066e matrox_mystique +EXPORT_SYMBOL vmlinux 0xa49ad0c6 of_mdiobus_register +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4c7a3f1 swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0xa4dfb1c6 neigh_update +EXPORT_SYMBOL vmlinux 0xa4f4e2d7 simple_transaction_get +EXPORT_SYMBOL vmlinux 0xa517f146 register_cdrom +EXPORT_SYMBOL vmlinux 0xa52050ed netif_napi_add +EXPORT_SYMBOL vmlinux 0xa53df6f0 truncate_pagecache +EXPORT_SYMBOL vmlinux 0xa554104d rwsem_wake +EXPORT_SYMBOL vmlinux 0xa554a12a jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0xa55a3ebe block_read_full_page +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 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 0xa61e18b2 block_prepare_write +EXPORT_SYMBOL vmlinux 0xa62fafbe mdio_bus_type +EXPORT_SYMBOL vmlinux 0xa630754c sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0xa6352f30 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xa635c468 fifo_set_limit +EXPORT_SYMBOL vmlinux 0xa65972b8 _memcpy_toio +EXPORT_SYMBOL vmlinux 0xa6601f82 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa688f18b security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0xa69138ac devm_iounmap +EXPORT_SYMBOL vmlinux 0xa6d46366 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa72d7f2d jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0xa739417e elv_add_request +EXPORT_SYMBOL vmlinux 0xa741223e mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0xa76a639d fib_default_rule_add +EXPORT_SYMBOL vmlinux 0xa776c856 vga_get +EXPORT_SYMBOL vmlinux 0xa779539b input_get_keycode +EXPORT_SYMBOL vmlinux 0xa77abcf1 nf_register_hooks +EXPORT_SYMBOL vmlinux 0xa7802fce journal_init_dev +EXPORT_SYMBOL vmlinux 0xa780bde6 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xa7a5440e kernel_connect +EXPORT_SYMBOL vmlinux 0xa7ac882e no_llseek +EXPORT_SYMBOL vmlinux 0xa7b79de6 skb_find_text +EXPORT_SYMBOL vmlinux 0xa7d224fe blk_free_tags +EXPORT_SYMBOL vmlinux 0xa80c6d6d sock_create_kern +EXPORT_SYMBOL vmlinux 0xa8105200 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0xa8128d02 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0xa81da28a call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0xa82b0636 i2c_clients_command +EXPORT_SYMBOL vmlinux 0xa843120e __serio_register_driver +EXPORT_SYMBOL vmlinux 0xa861ab6e __ioremap +EXPORT_SYMBOL vmlinux 0xa86d3b80 put_tty_driver +EXPORT_SYMBOL vmlinux 0xa89464b7 __ashldi3 +EXPORT_SYMBOL vmlinux 0xa8a28200 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xa8b06e2f user_path_at +EXPORT_SYMBOL vmlinux 0xa8dd2433 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0xa8ed9831 dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xa8f00184 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa919c7ee bio_integrity_clone +EXPORT_SYMBOL vmlinux 0xa92ba02e blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xa94266f0 down_trylock +EXPORT_SYMBOL vmlinux 0xa9571d6d DMA_MODE_WRITE +EXPORT_SYMBOL vmlinux 0xa963bd8a fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xa97bb519 fb_show_logo +EXPORT_SYMBOL vmlinux 0xa9ac00bd neigh_destroy +EXPORT_SYMBOL vmlinux 0xa9e00286 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xa9effda5 __first_cpu +EXPORT_SYMBOL vmlinux 0xaa14d7fb netdev_state_change +EXPORT_SYMBOL vmlinux 0xaa23b990 input_unregister_handler +EXPORT_SYMBOL vmlinux 0xaa37ea6f of_get_mac_address +EXPORT_SYMBOL vmlinux 0xaa4a1b38 sk_alloc +EXPORT_SYMBOL vmlinux 0xaa4df512 pmu_batteries +EXPORT_SYMBOL vmlinux 0xaa6e4df5 _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa90f357 tcp_ioctl +EXPORT_SYMBOL vmlinux 0xaa91029c con_copy_unimap +EXPORT_SYMBOL vmlinux 0xaa9bcf37 generic_file_llseek +EXPORT_SYMBOL vmlinux 0xaaa9eba7 bio_put +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 0xab09bf18 scsi_print_result +EXPORT_SYMBOL vmlinux 0xab0b0637 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xab20e007 tcp_child_process +EXPORT_SYMBOL vmlinux 0xab30189b iget_locked +EXPORT_SYMBOL vmlinux 0xab331fc6 of_find_matching_node +EXPORT_SYMBOL vmlinux 0xab7a4622 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xab804074 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0xab8f3efa d_genocide +EXPORT_SYMBOL vmlinux 0xab92726b kobject_init +EXPORT_SYMBOL vmlinux 0xab9a8695 ps2_begin_command +EXPORT_SYMBOL vmlinux 0xaba71ae5 hippi_mac_addr +EXPORT_SYMBOL vmlinux 0xabbe95eb inet_frag_find +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL vmlinux 0xabe3232d tty_port_close_end +EXPORT_SYMBOL vmlinux 0xabfa4f81 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xabfa7abb scsi_target_resume +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac26b820 _raw_write_lock +EXPORT_SYMBOL vmlinux 0xac2c5b7c wait_on_page_bit +EXPORT_SYMBOL vmlinux 0xac375eff sget +EXPORT_SYMBOL vmlinux 0xac392114 revalidate_disk +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac8396da __pci_register_driver +EXPORT_SYMBOL vmlinux 0xac94a327 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0xacbeae79 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad3bfd89 serio_unregister_port +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad572789 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xad6400bf iput +EXPORT_SYMBOL vmlinux 0xad7ccd3e block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xad7ff3c3 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xad810cac iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xad8e1e08 of_node_get +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadbe1f1d pci_reenable_device +EXPORT_SYMBOL vmlinux 0xadd1e971 alignment_exception +EXPORT_SYMBOL vmlinux 0xaddd4770 __debugger_iabr_match +EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region +EXPORT_SYMBOL vmlinux 0xadf58e1b set_security_override +EXPORT_SYMBOL vmlinux 0xae30cb56 journal_extend +EXPORT_SYMBOL vmlinux 0xae44c957 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0xae545f06 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xae934662 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0xaea456be tcf_hash_check +EXPORT_SYMBOL vmlinux 0xaea88fff scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xaea914ed get_user_pages +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaed399ab pagecache_write_end +EXPORT_SYMBOL vmlinux 0xaef008d3 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0xaeffb370 jbd2_journal_blocks_per_page +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 0xaf4a51da scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xafcb31cf __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xafff3d1d mempool_alloc +EXPORT_SYMBOL vmlinux 0xb0351baa mdiobus_free +EXPORT_SYMBOL vmlinux 0xb04ae216 seq_release_private +EXPORT_SYMBOL vmlinux 0xb0aa93d6 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0bfd172 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0xb0ca32d4 sock_release +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0f926e1 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xb142f843 simple_write_end +EXPORT_SYMBOL vmlinux 0xb15bd8fa tb_ticks_per_sec +EXPORT_SYMBOL vmlinux 0xb15c75c7 file_remove_suid +EXPORT_SYMBOL vmlinux 0xb18f3f06 ide_xfer_verbose +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1ae97e6 register_key_type +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 0xb21bc588 udp_lib_rehash +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 0xb2613a7e bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xb2650bfa tcp_make_synack +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb27b5040 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0xb2806a08 unbind_con_driver +EXPORT_SYMBOL vmlinux 0xb291e7ff powerpc_debugfs_root +EXPORT_SYMBOL vmlinux 0xb2c33f4f of_find_property +EXPORT_SYMBOL vmlinux 0xb31526ee sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0xb33da232 dev_get_stats +EXPORT_SYMBOL vmlinux 0xb34d9627 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3a9109c unlock_buffer +EXPORT_SYMBOL vmlinux 0xb3b49bd1 unregister_cdrom +EXPORT_SYMBOL vmlinux 0xb41197e9 pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0xb4125f15 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb426f937 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0xb447fc91 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xb44b4d80 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xb4674a46 jbd2_journal_destroy +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 0xb4c59ef3 input_set_capability +EXPORT_SYMBOL vmlinux 0xb500fcf0 journal_start +EXPORT_SYMBOL vmlinux 0xb503baf9 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb514c5d3 padata_do_parallel +EXPORT_SYMBOL vmlinux 0xb52582a3 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0xb53a4336 kmap_pte +EXPORT_SYMBOL vmlinux 0xb53da958 vfs_fsync +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb567f1b4 block_commit_write +EXPORT_SYMBOL vmlinux 0xb56e45f5 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xb588cb1f filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0xb589b75e vfs_readlink +EXPORT_SYMBOL vmlinux 0xb5a2ca21 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5d7348f skb_copy +EXPORT_SYMBOL vmlinux 0xb5dc36aa shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0xb5dfd44f qdisc_reset +EXPORT_SYMBOL vmlinux 0xb5ee8377 flush_tlb_page +EXPORT_SYMBOL vmlinux 0xb613e3f6 mpage_writepages +EXPORT_SYMBOL vmlinux 0xb61d6048 ip_ct_attach +EXPORT_SYMBOL vmlinux 0xb62d88f9 macio_request_resource +EXPORT_SYMBOL vmlinux 0xb657db82 mpage_readpage +EXPORT_SYMBOL vmlinux 0xb6599b9a machine_check_exception +EXPORT_SYMBOL vmlinux 0xb65f1b2c down_interruptible +EXPORT_SYMBOL vmlinux 0xb664c402 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb68a6f9e matrox_cfbX_init +EXPORT_SYMBOL vmlinux 0xb69b56e1 elv_rb_find +EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6a96655 send_sig +EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6cfed14 arp_send +EXPORT_SYMBOL vmlinux 0xb72e23fd scsi_host_lookup +EXPORT_SYMBOL vmlinux 0xb735af7b filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xb73ceb56 phy_find_first +EXPORT_SYMBOL vmlinux 0xb74c4171 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xb753bcc8 __ashrdi3 +EXPORT_SYMBOL vmlinux 0xb759a4b5 lock_may_write +EXPORT_SYMBOL vmlinux 0xb7606500 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0xb768592f __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xb78088d6 dqget +EXPORT_SYMBOL vmlinux 0xb793d3b0 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xb7a99781 __irq_regs +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7da75fb key_validate +EXPORT_SYMBOL vmlinux 0xb7ea9021 neigh_create +EXPORT_SYMBOL vmlinux 0xb817e6a0 d_instantiate +EXPORT_SYMBOL vmlinux 0xb81c92e8 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xb835843d __sk_dst_check +EXPORT_SYMBOL vmlinux 0xb83fb4b6 blk_integrity_register +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 0xb894926d schedule_work_on +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8aa2342 __check_region +EXPORT_SYMBOL vmlinux 0xb8b28f72 blk_insert_request +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb9b2676e generic_unplug_device +EXPORT_SYMBOL vmlinux 0xb9db47f7 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xba468663 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xba48b79e tr_type_trans +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba549f37 sk_reset_timer +EXPORT_SYMBOL vmlinux 0xba5a7ddf dquot_initialize +EXPORT_SYMBOL vmlinux 0xba6a3f77 udp_proc_register +EXPORT_SYMBOL vmlinux 0xba866903 serio_interrupt +EXPORT_SYMBOL vmlinux 0xba8de639 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbaab57e9 audit_log_end +EXPORT_SYMBOL vmlinux 0xbab5a59f inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xbae04d2c of_find_node_by_name +EXPORT_SYMBOL vmlinux 0xbae83f52 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0xbae92a65 tcp_shutdown +EXPORT_SYMBOL vmlinux 0xbaeb4aea __skb_bond_should_drop +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 0xbb42f1b4 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0xbb4f5388 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb8715c0 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xbb897c24 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbb9f5fa5 down_write_trylock +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbc7279f nlmsg_notify +EXPORT_SYMBOL vmlinux 0xbbd4aaeb __breadahead +EXPORT_SYMBOL vmlinux 0xbbe70ceb bdev_read_only +EXPORT_SYMBOL vmlinux 0xbbf2fed7 d_rehash +EXPORT_SYMBOL vmlinux 0xbc30bd0f give_up_console +EXPORT_SYMBOL vmlinux 0xbc316de4 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0xbc779e7c nla_reserve +EXPORT_SYMBOL vmlinux 0xbc7a8e6f qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0xbc7c3629 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0xbc994062 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xbcac6707 journal_update_format +EXPORT_SYMBOL vmlinux 0xbcaff250 tty_port_tty_get +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 0xbd12fb10 __bread +EXPORT_SYMBOL vmlinux 0xbd23156e dput +EXPORT_SYMBOL vmlinux 0xbd2e0118 redraw_screen +EXPORT_SYMBOL vmlinux 0xbd4bb68c bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0xbd5fc75e qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xbd5fe3d6 clocksource_unregister +EXPORT_SYMBOL vmlinux 0xbd8d541d flush_hash_pages +EXPORT_SYMBOL vmlinux 0xbd9e5d49 __lshrdi3 +EXPORT_SYMBOL vmlinux 0xbdab7732 sock_create +EXPORT_SYMBOL vmlinux 0xbdca514f skb_copy_and_csum_datagram_iovec +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 0xbdfda5e5 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xbe044b64 neigh_lookup +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe18b97b __neigh_event_send +EXPORT_SYMBOL vmlinux 0xbe2bfbb8 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0xbe32acaf register_8022_client +EXPORT_SYMBOL vmlinux 0xbe59d1aa udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource +EXPORT_SYMBOL vmlinux 0xbe66cf0e unregister_key_type +EXPORT_SYMBOL vmlinux 0xbe6f064d idr_for_each +EXPORT_SYMBOL vmlinux 0xbe7731e3 pci_select_bars +EXPORT_SYMBOL vmlinux 0xbe9ea09a jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0xbea59fd7 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0xbeac4c78 validate_sp +EXPORT_SYMBOL vmlinux 0xbebd557f pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf1de659 inet_select_addr +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 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfb8b0b7 _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xbfc032ef find_get_page +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfc530cf register_sysctl_table +EXPORT_SYMBOL vmlinux 0xbfc86fb3 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xbfe827cd freeze_super +EXPORT_SYMBOL vmlinux 0xc025b6fc of_find_compatible_node +EXPORT_SYMBOL vmlinux 0xc03ba5e3 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xc0401a91 tty_vhangup +EXPORT_SYMBOL vmlinux 0xc041253e poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc05db902 gen_pool_create +EXPORT_SYMBOL vmlinux 0xc07a4630 napi_gro_receive +EXPORT_SYMBOL vmlinux 0xc0814c9b blk_queue_dma_alignment +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 0xc0c06fb0 inode_init_owner +EXPORT_SYMBOL vmlinux 0xc0cbe061 unregister_console +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 0xc1112197 __scsi_put_command +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc13d578d kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xc1589d7c of_scan_pci_bridge +EXPORT_SYMBOL vmlinux 0xc15e073c generic_find_next_zero_le_bit +EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic +EXPORT_SYMBOL vmlinux 0xc18a353f dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xc1908f03 dw_spi_remove_host +EXPORT_SYMBOL vmlinux 0xc1ae31bc scsi_execute_req +EXPORT_SYMBOL vmlinux 0xc1afe8df bio_endio +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 0xc2118a88 gen_pool_free +EXPORT_SYMBOL vmlinux 0xc214cc8e alloc_fcdev +EXPORT_SYMBOL vmlinux 0xc24c8da9 ide_wait_stat +EXPORT_SYMBOL vmlinux 0xc24fef1d scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc2714582 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0xc2725407 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xc2862e51 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xc2b1211c blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xc2bdaf31 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xc2c1e47f commit_creds +EXPORT_SYMBOL vmlinux 0xc2cb25e4 journal_release_buffer +EXPORT_SYMBOL vmlinux 0xc2d11e48 macio_enable_devres +EXPORT_SYMBOL vmlinux 0xc2d6a01c dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc33471f7 mem_map +EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu +EXPORT_SYMBOL vmlinux 0xc35e28f7 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xc35e9f6e vfs_getattr +EXPORT_SYMBOL vmlinux 0xc368849f nvram_sync +EXPORT_SYMBOL vmlinux 0xc36ead59 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xc38cc25c mdiobus_unregister +EXPORT_SYMBOL vmlinux 0xc3a921c6 thaw_super +EXPORT_SYMBOL vmlinux 0xc3cdfb55 vfs_llseek +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3d5303d input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0xc3f93ac9 matroxfb_g450_setclk +EXPORT_SYMBOL vmlinux 0xc40b2d17 dentry_open +EXPORT_SYMBOL vmlinux 0xc4395d35 scsi_dma_map +EXPORT_SYMBOL vmlinux 0xc4610aea pci_disable_device +EXPORT_SYMBOL vmlinux 0xc472e737 kernel_read +EXPORT_SYMBOL vmlinux 0xc475c567 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0xc4761749 flush_old_exec +EXPORT_SYMBOL vmlinux 0xc47cdf9c _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0xc4806e80 get_phy_device +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4a0276e mpage_readpages +EXPORT_SYMBOL vmlinux 0xc4c0de63 tcf_action_exec +EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic +EXPORT_SYMBOL vmlinux 0xc5067ad0 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xc50d631d generic_removexattr +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc53ab25d d_lookup +EXPORT_SYMBOL vmlinux 0xc53f692e scsi_prep_fn +EXPORT_SYMBOL vmlinux 0xc54a9a54 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc5718627 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0xc57bd2d1 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xc5a08d2c vfs_follow_link +EXPORT_SYMBOL vmlinux 0xc5c1efc8 dst_release +EXPORT_SYMBOL vmlinux 0xc5cd66b5 generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0xc5da8ff5 d_move +EXPORT_SYMBOL vmlinux 0xc5e681ed page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xc5f14984 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xc61be59c ida_remove +EXPORT_SYMBOL vmlinux 0xc61d0bbe genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0xc643e408 netlink_dump_start +EXPORT_SYMBOL vmlinux 0xc66d58a9 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xc6742eed sk_receive_skb +EXPORT_SYMBOL vmlinux 0xc6afe98b blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0xc6b600e1 blkdev_fsync +EXPORT_SYMBOL vmlinux 0xc6b7195d pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xc6bf4f79 module_refcount +EXPORT_SYMBOL vmlinux 0xc6cffa3d should_remove_suid +EXPORT_SYMBOL vmlinux 0xc723937c bio_phys_segments +EXPORT_SYMBOL vmlinux 0xc7365728 scsi_host_get +EXPORT_SYMBOL vmlinux 0xc7478b4b filemap_fault +EXPORT_SYMBOL vmlinux 0xc750a3a6 destroy_EII_client +EXPORT_SYMBOL vmlinux 0xc7733650 sock_no_socketpair +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 0xc7c49498 scsi_register_interface +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc802d899 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0xc81109a7 __bforget +EXPORT_SYMBOL vmlinux 0xc8277050 init_net +EXPORT_SYMBOL vmlinux 0xc8327b6f skb_set_dev +EXPORT_SYMBOL vmlinux 0xc844b55b netlink_ack +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0xc88fd48d clear_user_page +EXPORT_SYMBOL vmlinux 0xc8980526 alloc_disk +EXPORT_SYMBOL vmlinux 0xc89edfe4 scsi_host_put +EXPORT_SYMBOL vmlinux 0xc8b1fb07 __netdev_alloc_page +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8cd4184 matroxfb_vgaHWinit +EXPORT_SYMBOL vmlinux 0xc90a28d6 pci_read_vpd +EXPORT_SYMBOL vmlinux 0xc9162353 __destroy_inode +EXPORT_SYMBOL vmlinux 0xc91f56a4 xrlim_allow +EXPORT_SYMBOL vmlinux 0xc91fef2a tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xc92762b6 dst_alloc +EXPORT_SYMBOL vmlinux 0xc92db3de inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xc9458e7e tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0xc946016f scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xc94c7ccf i2c_release_client +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9a51c44 input_get_keycode_big +EXPORT_SYMBOL vmlinux 0xc9b26376 sync_inode +EXPORT_SYMBOL vmlinux 0xc9bc1ade pci_device_from_OF_node +EXPORT_SYMBOL vmlinux 0xc9c5b3a4 matroxfb_DAC_in +EXPORT_SYMBOL vmlinux 0xc9d03681 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xc9dede36 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xca182e01 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0xca1ed996 register_gifconf +EXPORT_SYMBOL vmlinux 0xca2d2fef register_con_driver +EXPORT_SYMBOL vmlinux 0xca4a8f2c jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0xca56dcaa bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca825895 pmu_suspend +EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel +EXPORT_SYMBOL vmlinux 0xcabf6d53 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xcacd272d atomic64_sub_return +EXPORT_SYMBOL vmlinux 0xcad08e48 mmu_hash_lock +EXPORT_SYMBOL vmlinux 0xcad73267 skb_tx_hash +EXPORT_SYMBOL vmlinux 0xcaeb5ca9 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0xcaf3a124 kernel_listen +EXPORT_SYMBOL vmlinux 0xcb07c70f journal_check_used_features +EXPORT_SYMBOL vmlinux 0xcb0a8512 sock_no_mmap +EXPORT_SYMBOL vmlinux 0xcb0baa30 igrab +EXPORT_SYMBOL vmlinux 0xcb3e20c4 get_sb_ns +EXPORT_SYMBOL vmlinux 0xcb53d647 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xcb639768 journal_lock_updates +EXPORT_SYMBOL vmlinux 0xcb6910ed make_EII_client +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb985679 lock_sock_fast +EXPORT_SYMBOL vmlinux 0xcbc7bd3a ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0xcc17504d _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xcc1774ec padata_add_cpu +EXPORT_SYMBOL vmlinux 0xcc32ca12 tty_unregister_device +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc50e5fd cdev_add +EXPORT_SYMBOL vmlinux 0xcc5f07f3 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xcc6b3c05 pagevec_lookup +EXPORT_SYMBOL vmlinux 0xcc6f1f34 path_is_under +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcce1c326 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xcce36a8d xfrm_lookup +EXPORT_SYMBOL vmlinux 0xcce40c42 put_io_context +EXPORT_SYMBOL vmlinux 0xcce4d805 generic_ro_fops +EXPORT_SYMBOL vmlinux 0xcd0529c7 _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xcd43a89e scsi_set_medium_removal +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 0xcd966228 input_release_device +EXPORT_SYMBOL vmlinux 0xcda66d4a journal_get_create_access +EXPORT_SYMBOL vmlinux 0xcdc87076 fsnotify_find_mark_entry +EXPORT_SYMBOL vmlinux 0xce00e741 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xce077e01 vfs_statfs +EXPORT_SYMBOL vmlinux 0xce0a69ba bio_alloc +EXPORT_SYMBOL vmlinux 0xce35242e tty_mutex +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce38e906 dm_table_get +EXPORT_SYMBOL vmlinux 0xce409cda pmac_set_early_video_resume +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce620fac security_task_getsecid +EXPORT_SYMBOL vmlinux 0xce8c2556 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xce8c94f3 kernel_getsockname +EXPORT_SYMBOL vmlinux 0xceb4e805 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0xced5314d eth_header_cache +EXPORT_SYMBOL vmlinux 0xcee7eb20 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0xcef43b63 dw_spi_suspend_host +EXPORT_SYMBOL vmlinux 0xcf4399a4 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xcf455f7f blk_integrity_compare +EXPORT_SYMBOL vmlinux 0xcf47ccce sk_wait_data +EXPORT_SYMBOL vmlinux 0xcf708918 arp_broken_ops +EXPORT_SYMBOL vmlinux 0xcf79711a dquot_quota_off +EXPORT_SYMBOL vmlinux 0xcf901697 __strnlen_user +EXPORT_SYMBOL vmlinux 0xcf93fd33 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfbc7e38 of_find_device_by_phandle +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd0556b40 add_timer +EXPORT_SYMBOL vmlinux 0xd0737347 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xd0a45fa5 pmu_enable_irled +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0c22f36 tty_devnum +EXPORT_SYMBOL vmlinux 0xd0d123c7 pcim_iounmap +EXPORT_SYMBOL vmlinux 0xd0d21c13 dev_get_by_name_rcu +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 0xd15458bf __alloc_skb +EXPORT_SYMBOL vmlinux 0xd16b44ad kunmap_atomic +EXPORT_SYMBOL vmlinux 0xd194aa6d neigh_parms_release +EXPORT_SYMBOL vmlinux 0xd1c81e69 nla_put +EXPORT_SYMBOL vmlinux 0xd1d3abf0 scsi_free_command +EXPORT_SYMBOL vmlinux 0xd1d5176d register_qdisc +EXPORT_SYMBOL vmlinux 0xd1ee1b33 inet_addr_type +EXPORT_SYMBOL vmlinux 0xd1f63a81 of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xd213f89b keyring_clear +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 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd29f35fa vfs_rmdir +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 0xd2e32654 generic_delete_inode +EXPORT_SYMBOL vmlinux 0xd2f4e9c1 ide_dma_off +EXPORT_SYMBOL vmlinux 0xd3187da4 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd330582e km_new_mapping +EXPORT_SYMBOL vmlinux 0xd348d35c __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xd355e61d set_blocksize +EXPORT_SYMBOL vmlinux 0xd35b099e i2c_bit_add_numbered_bus +EXPORT_SYMBOL vmlinux 0xd37d7e2c request_key_async +EXPORT_SYMBOL vmlinux 0xd394a9e8 bdput +EXPORT_SYMBOL vmlinux 0xd3c57a04 flush_hash_entry +EXPORT_SYMBOL vmlinux 0xd3e6f60d cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xd3eac703 inet_recvmsg +EXPORT_SYMBOL vmlinux 0xd409383c pmu_request +EXPORT_SYMBOL vmlinux 0xd4111f6f cdrom_release +EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource +EXPORT_SYMBOL vmlinux 0xd435330e gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xd4431c17 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0xd4605dd2 is_container_init +EXPORT_SYMBOL vmlinux 0xd46f90cb mach_powermac +EXPORT_SYMBOL vmlinux 0xd4a51bfc request_firmware +EXPORT_SYMBOL vmlinux 0xd4a81928 cdev_index +EXPORT_SYMBOL vmlinux 0xd4bdc01e ide_dma_off_quietly +EXPORT_SYMBOL vmlinux 0xd4ca561a seq_puts +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd532b354 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xd54e1b01 names_cachep +EXPORT_SYMBOL vmlinux 0xd559bc1d ip_queue_rcv_skb +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 0xd5a6c975 vmtruncate +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5b2e52a single_step_exception +EXPORT_SYMBOL vmlinux 0xd5bac4d7 misc_deregister +EXPORT_SYMBOL vmlinux 0xd5c731ca phy_device_create +EXPORT_SYMBOL vmlinux 0xd5cd879d notify_change +EXPORT_SYMBOL vmlinux 0xd5e8444a __div64_32 +EXPORT_SYMBOL vmlinux 0xd604ba28 dev_open +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd634f2b8 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0xd637d4a1 iunique +EXPORT_SYMBOL vmlinux 0xd6451659 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xd65c39f4 bio_clone +EXPORT_SYMBOL vmlinux 0xd662d955 llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0xd66eaa99 kmem_cache_alloc_node_notrace +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 0xd6a855a5 path_put +EXPORT_SYMBOL vmlinux 0xd6e09aee unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd711af8f fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xd7140425 serio_rescan +EXPORT_SYMBOL vmlinux 0xd7196020 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xd73657c9 abort_creds +EXPORT_SYMBOL vmlinux 0xd73d17c4 bdevname +EXPORT_SYMBOL vmlinux 0xd75c5d2b init_buffer +EXPORT_SYMBOL vmlinux 0xd75d0100 register_snap_client +EXPORT_SYMBOL vmlinux 0xd777d148 blk_remove_plug +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd78bc681 page_address +EXPORT_SYMBOL vmlinux 0xd79210a5 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7af55c0 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd80472d0 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0xd8248d96 eth_mac_addr +EXPORT_SYMBOL vmlinux 0xd8254bd1 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user +EXPORT_SYMBOL vmlinux 0xd86afab0 __mutex_init +EXPORT_SYMBOL vmlinux 0xd877aae0 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd89f6d44 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8d3a23f vfs_create +EXPORT_SYMBOL vmlinux 0xd8e0faf1 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8eb02fd sock_i_uid +EXPORT_SYMBOL vmlinux 0xd909df84 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xd913bb73 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xd92514ca agp_special_page +EXPORT_SYMBOL vmlinux 0xd928a60f blk_recount_segments +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd92b2202 fget +EXPORT_SYMBOL vmlinux 0xd95ab23a inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xd95ebd57 block_write_begin +EXPORT_SYMBOL vmlinux 0xd977cda4 nla_append +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd99d1f60 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xd9aa406d request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xd9b3b00f kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xd9bac924 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xd9d73b21 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xd9dd3504 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda3c2a86 unregister_nls +EXPORT_SYMBOL vmlinux 0xda471ac2 llc_build_and_send_ui_pkt +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 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdab7007d blk_complete_request +EXPORT_SYMBOL vmlinux 0xdac9acea nf_unregister_hook +EXPORT_SYMBOL vmlinux 0xdaf47ed0 dw_spi_add_host +EXPORT_SYMBOL vmlinux 0xdb13372f of_register_spi_devices +EXPORT_SYMBOL vmlinux 0xdb2f8e63 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xdb364caa security_path_symlink +EXPORT_SYMBOL vmlinux 0xdb50c08e __pci_enable_wake +EXPORT_SYMBOL vmlinux 0xdb6df324 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbe39361 key_type_keyring +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 0xdc7e6b20 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xdc81eff4 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xdc891261 d_alloc_root +EXPORT_SYMBOL vmlinux 0xdc908871 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0xdc942011 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family +EXPORT_SYMBOL vmlinux 0xdca25c73 pci_get_class +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +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 0xdd12be4f scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd508350 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xdd67f1c9 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xdda5bb6b get_disk +EXPORT_SYMBOL vmlinux 0xddcb91ff phy_register_fixup +EXPORT_SYMBOL vmlinux 0xddd6a8e6 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0xde0d3bc6 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0xde191966 napi_gro_frags +EXPORT_SYMBOL vmlinux 0xde28237d con_is_bound +EXPORT_SYMBOL vmlinux 0xde48e9ca _raw_spin_lock +EXPORT_SYMBOL vmlinux 0xde4accd9 filp_close +EXPORT_SYMBOL vmlinux 0xde629eca blk_queue_max_segment_size +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 0xded07e75 pskb_copy +EXPORT_SYMBOL vmlinux 0xdf3cfb2b __break_lease +EXPORT_SYMBOL vmlinux 0xdf4b6068 lease_modify +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf68cf9f sock_kfree_s +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfa94dda adb_client_list +EXPORT_SYMBOL vmlinux 0xdfefe05e security_path_chmod +EXPORT_SYMBOL vmlinux 0xdff43ed4 __debugger +EXPORT_SYMBOL vmlinux 0xdff56e64 adb_poll +EXPORT_SYMBOL vmlinux 0xe01cbfd0 d_path +EXPORT_SYMBOL vmlinux 0xe0558709 set_page_dirty +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe0794c55 jbd2_journal_start_commit +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 0xe0daa96c wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xe0dd13d8 get_fs_type +EXPORT_SYMBOL vmlinux 0xe0e235f4 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0xe0ea7324 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xe0f17771 free_buffer_head +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe1577312 kick_iocb +EXPORT_SYMBOL vmlinux 0xe15e4d70 do_sync_write +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe186a232 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xe1b316e1 kobject_put +EXPORT_SYMBOL vmlinux 0xe1c338ef generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xe1cf3e48 sock_wake_async +EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL vmlinux 0xe238fc0c dev_get_flags +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe2726491 bmap +EXPORT_SYMBOL vmlinux 0xe283a6a6 vga_client_register +EXPORT_SYMBOL vmlinux 0xe2ae4be3 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2d5f110 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xe2e09e01 tty_port_free_xmit_buf +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 0xe33acebf pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xe3422c27 netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0xe3b2ed5b dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xe3bcb920 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0xe3d02817 deny_write_access +EXPORT_SYMBOL vmlinux 0xe3d08629 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xe3df7cb0 __dquot_transfer +EXPORT_SYMBOL vmlinux 0xe41bab23 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xe43f7487 dev_get_by_flags +EXPORT_SYMBOL vmlinux 0xe47e5f82 cap_file_mmap +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe48644bd pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0xe497ac1e percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0xe499ef20 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xe49fe10c sk_dst_check +EXPORT_SYMBOL vmlinux 0xe4c71e4a __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xe4fe8ca1 _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xe510ef2a filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe54573f8 journal_check_available_features +EXPORT_SYMBOL vmlinux 0xe5547c1b jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0xe571de10 bdi_destroy +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5a7b2a6 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0xe5c146b7 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5d24c2b dev_set_mtu +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe62621d3 mntput_no_expire +EXPORT_SYMBOL vmlinux 0xe62eb52d input_register_handler +EXPORT_SYMBOL vmlinux 0xe65f2792 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0xe671df0a netif_carrier_on +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe69a36f4 security_path_mknod +EXPORT_SYMBOL vmlinux 0xe69dbfa2 dmam_pool_create +EXPORT_SYMBOL vmlinux 0xe6dd236d clear_pages +EXPORT_SYMBOL vmlinux 0xe6e1d94f block_sync_page +EXPORT_SYMBOL vmlinux 0xe6e3a81e napi_frags_finish +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe6fe33e4 down_killable +EXPORT_SYMBOL vmlinux 0xe6feace5 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xe72323b8 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xe7291b91 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xe73da1d5 neigh_table_init +EXPORT_SYMBOL vmlinux 0xe744d780 generic_write_checks +EXPORT_SYMBOL vmlinux 0xe77d1882 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0xe78ce312 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xe7aefc32 inet_stream_ops +EXPORT_SYMBOL vmlinux 0xe7b4b18d pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xe7b693dd unlock_new_inode +EXPORT_SYMBOL vmlinux 0xe7ce7439 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7d634fa create_proc_entry +EXPORT_SYMBOL vmlinux 0xe7fd96b0 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xe7fddf4b block_write_full_page +EXPORT_SYMBOL vmlinux 0xe7ffc7c1 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xe815b743 __f_setown +EXPORT_SYMBOL vmlinux 0xe8181282 remove_inode_hash +EXPORT_SYMBOL vmlinux 0xe820b64c skb_put +EXPORT_SYMBOL vmlinux 0xe844567e cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0xe8777227 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xe88fb0c0 of_match_node +EXPORT_SYMBOL vmlinux 0xe8a830fc skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0xe8b7378b get_sb_nodev +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 0xe90492af nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe928c3bf eth_change_mtu +EXPORT_SYMBOL vmlinux 0xe94e939c dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xe953bb20 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xe95d48d9 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xe96be8e4 fb_set_cmap +EXPORT_SYMBOL vmlinux 0xe9a04520 del_timer +EXPORT_SYMBOL vmlinux 0xe9b6fa25 rtas +EXPORT_SYMBOL vmlinux 0xe9e91ce3 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xe9efeb48 giveup_altivec +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea071587 scsi_remove_device +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea147363 printk +EXPORT_SYMBOL vmlinux 0xea248ecb nf_register_hook +EXPORT_SYMBOL vmlinux 0xea2d33a2 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0xea34299d inet_release +EXPORT_SYMBOL vmlinux 0xea3cbfb4 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xea6b8064 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea854168 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xea9e849f fb_class +EXPORT_SYMBOL vmlinux 0xeaa3cf0d inet_put_port +EXPORT_SYMBOL vmlinux 0xeab6c4c6 dquot_acquire +EXPORT_SYMBOL vmlinux 0xeaf16558 ida_init +EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0xeb371e29 skb_pull +EXPORT_SYMBOL vmlinux 0xeb38ee37 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xeb47a334 pci_request_region +EXPORT_SYMBOL vmlinux 0xeb67ad63 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xeb74dd3e textsearch_prepare +EXPORT_SYMBOL vmlinux 0xeb852377 of_dev_get +EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n +EXPORT_SYMBOL vmlinux 0xeb8afc6f tc_classify_compat +EXPORT_SYMBOL vmlinux 0xeb905fb0 scsi_print_sense +EXPORT_SYMBOL vmlinux 0xeb99346a of_create_pci_dev +EXPORT_SYMBOL vmlinux 0xeba2a1f7 rtas_indicator_present +EXPORT_SYMBOL vmlinux 0xebb34e6b blk_rq_init +EXPORT_SYMBOL vmlinux 0xebb468a1 ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0xebb9d27c i2c_del_driver +EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull +EXPORT_SYMBOL vmlinux 0xebd7bb7d __page_symlink +EXPORT_SYMBOL vmlinux 0xebef98c1 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec2f6ea3 dget_locked +EXPORT_SYMBOL vmlinux 0xec38a9c8 d_alloc +EXPORT_SYMBOL vmlinux 0xec7353bb bio_map_user +EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0xec8c969f pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xec8f0ccd __free_pages +EXPORT_SYMBOL vmlinux 0xeca73a01 pci_claim_resource +EXPORT_SYMBOL vmlinux 0xecf811b8 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xecfa8dca tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xed40de08 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xed56031a brioctl_set +EXPORT_SYMBOL vmlinux 0xed6abb00 softnet_data +EXPORT_SYMBOL vmlinux 0xed735e77 fb_set_suspend +EXPORT_SYMBOL vmlinux 0xed8297da journal_get_write_access +EXPORT_SYMBOL vmlinux 0xed86b3b7 ___ratelimit +EXPORT_SYMBOL vmlinux 0xed900dc0 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xeda1d975 proc_mkdir +EXPORT_SYMBOL vmlinux 0xeda684d3 skb_checksum_help +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 0xedf6e7c1 blk_get_request +EXPORT_SYMBOL vmlinux 0xedfa97db dm_table_get_md +EXPORT_SYMBOL vmlinux 0xee12b07a vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee467dba ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xee5624ab check_disk_change +EXPORT_SYMBOL vmlinux 0xee59412f adb_try_handler_change +EXPORT_SYMBOL vmlinux 0xee6828ee key_link +EXPORT_SYMBOL vmlinux 0xee805dd6 update_region +EXPORT_SYMBOL vmlinux 0xeea1a031 key_revoke +EXPORT_SYMBOL vmlinux 0xeea4e1ea get_sb_single +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeaecdea ide_raw_taskfile +EXPORT_SYMBOL vmlinux 0xeec211ab jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xeec5d696 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0xeee7b919 install_exec_creds +EXPORT_SYMBOL vmlinux 0xeeef854e pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0xeeefd74a neigh_ifdown +EXPORT_SYMBOL vmlinux 0xef109449 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xef31056a tcf_hash_release +EXPORT_SYMBOL vmlinux 0xef4a788b handle_sysrq +EXPORT_SYMBOL vmlinux 0xef525b50 nf_afinfo +EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool +EXPORT_SYMBOL vmlinux 0xef8d94db rfkill_alloc +EXPORT_SYMBOL vmlinux 0xefa4bf87 tty_port_init +EXPORT_SYMBOL vmlinux 0xefabf11c tty_register_driver +EXPORT_SYMBOL vmlinux 0xefb3b5ec dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xefda5a48 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xefdb2e56 sync_blockdev +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefde1bbe flush_dcache_range +EXPORT_SYMBOL vmlinux 0xefeaac72 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xeff0f5dd sk_reset_txq +EXPORT_SYMBOL vmlinux 0xeff63871 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xeffac935 devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf02ff2cc phy_sanitize_settings +EXPORT_SYMBOL vmlinux 0xf033be3f scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xf0469e9d pci_clear_master +EXPORT_SYMBOL vmlinux 0xf04ae1ba idr_remove_all +EXPORT_SYMBOL vmlinux 0xf053d7f9 skb_seq_read +EXPORT_SYMBOL vmlinux 0xf05d1e18 unregister_filesystem +EXPORT_SYMBOL vmlinux 0xf0629ed5 neigh_seq_start +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf09d1753 of_unregister_driver +EXPORT_SYMBOL vmlinux 0xf0b635cb scsi_device_set_state +EXPORT_SYMBOL vmlinux 0xf0e14db7 module_put +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11d6fca skb_clone +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf1479625 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xf160a0b6 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf1855ecf xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xf18f3cc5 kmap_high +EXPORT_SYMBOL vmlinux 0xf1907288 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0xf193cceb sg_miter_start +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf19e9355 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xf1d5c193 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e412b4 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xf1e79e36 inet_getname +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf2010d66 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xf20abf90 phy_attach +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf235a959 __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0xf23cce33 __ip_select_ident +EXPORT_SYMBOL vmlinux 0xf2581628 inode_add_bytes +EXPORT_SYMBOL vmlinux 0xf2653e93 devm_free_irq +EXPORT_SYMBOL vmlinux 0xf289d945 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xf29ac5cc xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xf2e64d3e rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xf2fdb65f abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +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 0xf33eda8e nobh_writepage +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf347a00d pci_get_slot +EXPORT_SYMBOL vmlinux 0xf34e58d9 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0xf37ec188 single_release +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 0xf413f3ea scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4449388 timer_interrupt +EXPORT_SYMBOL vmlinux 0xf4527b68 sg_miter_next +EXPORT_SYMBOL vmlinux 0xf45e0458 lro_flush_all +EXPORT_SYMBOL vmlinux 0xf49aa7af __nla_reserve +EXPORT_SYMBOL vmlinux 0xf49f8b43 seq_release +EXPORT_SYMBOL vmlinux 0xf4af861d get_super +EXPORT_SYMBOL vmlinux 0xf4b49d02 skb_store_bits +EXPORT_SYMBOL vmlinux 0xf4ccc107 mutex_trylock +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f89cee mutex_unlock +EXPORT_SYMBOL vmlinux 0xf52006bf alloc_disk_node +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 0xf55a9e72 up_read +EXPORT_SYMBOL vmlinux 0xf569c553 __devm_request_region +EXPORT_SYMBOL vmlinux 0xf596d1ab inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xf5a404f1 write_cache_pages +EXPORT_SYMBOL vmlinux 0xf5a62ecc _memset_io +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5c9c26f jbd2_journal_stop +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 0xf63f5b16 fd_install +EXPORT_SYMBOL vmlinux 0xf6454672 nf_log_unregister +EXPORT_SYMBOL vmlinux 0xf64aaea9 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0xf666890f mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0xf6791b44 slow_work_register_user +EXPORT_SYMBOL vmlinux 0xf68501f0 dev_uc_del +EXPORT_SYMBOL vmlinux 0xf6968f6d ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6d6325d pci_restore_state +EXPORT_SYMBOL vmlinux 0xf6ddd3c2 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0xf6de8f29 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf70384d7 __debugger_sstep +EXPORT_SYMBOL vmlinux 0xf71521ba atomic64_add_return +EXPORT_SYMBOL vmlinux 0xf71e1a09 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xf72be841 flush_signals +EXPORT_SYMBOL vmlinux 0xf72e815d xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xf7700fd2 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7906471 sg_miter_stop +EXPORT_SYMBOL vmlinux 0xf79b41b9 scsi_finish_command +EXPORT_SYMBOL vmlinux 0xf7a62268 input_grab_device +EXPORT_SYMBOL vmlinux 0xf7a8a828 framebuffer_release +EXPORT_SYMBOL vmlinux 0xf7b12aee __next_cpu +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 0xf82feef4 pci_target_state +EXPORT_SYMBOL vmlinux 0xf8389084 dquot_destroy +EXPORT_SYMBOL vmlinux 0xf862ca0a pipe_to_file +EXPORT_SYMBOL vmlinux 0xf8aad586 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0xf8bccb70 pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0xf8e54cbd sock_map_fd +EXPORT_SYMBOL vmlinux 0xf9112470 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xf91828cc tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xf9182d5e nobh_write_begin +EXPORT_SYMBOL vmlinux 0xf918d073 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xf934ea4e filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xf93c3a0a pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0xf94d77d2 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0xf9505a65 block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xf96804c2 generic_fillattr +EXPORT_SYMBOL vmlinux 0xf970c969 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xf97bc358 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xf97e1bf7 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9a5d61e macio_request_resources +EXPORT_SYMBOL vmlinux 0xf9d3cad6 __scm_send +EXPORT_SYMBOL vmlinux 0xf9e2f7c3 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0xfa04bde8 llc_set_station_handler +EXPORT_SYMBOL vmlinux 0xfa69ca8d arp_create +EXPORT_SYMBOL vmlinux 0xfa9248cb kmem_cache_create +EXPORT_SYMBOL vmlinux 0xfaa3c377 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xfab34f8c dma_direct_ops +EXPORT_SYMBOL vmlinux 0xfabf92fb __getblk +EXPORT_SYMBOL vmlinux 0xfad9caa0 pci_save_state +EXPORT_SYMBOL vmlinux 0xfadb5750 pmu_unlock +EXPORT_SYMBOL vmlinux 0xfae3ede9 skb_split +EXPORT_SYMBOL vmlinux 0xfaf4dc98 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb02e7d1 sock_no_getname +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb10ac0a iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb9b57f8 unload_nls +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbd48004 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc0da34b end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xfc338c84 nobh_write_end +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc3a1c03 journal_wipe +EXPORT_SYMBOL vmlinux 0xfc4d3f70 ilookup5 +EXPORT_SYMBOL vmlinux 0xfc5ba93b dcache_readdir +EXPORT_SYMBOL vmlinux 0xfc7f0d3d fddi_type_trans +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcc24db0 sock_wmalloc +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcc89fcf bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd01c31c bio_pair_release +EXPORT_SYMBOL vmlinux 0xfd0c5038 adb_unregister +EXPORT_SYMBOL vmlinux 0xfd2d9622 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xfd4c9afe __netif_schedule +EXPORT_SYMBOL vmlinux 0xfd4fd161 replace_mount_options +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfdae845f skb_append +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 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe3bcd95 inode_init_once +EXPORT_SYMBOL vmlinux 0xfe4a0205 read_cache_pages +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe674c08 eth_header +EXPORT_SYMBOL vmlinux 0xfe71b0ed set_bh_page +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe9cd1c7 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xfec03438 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff1765c7 rtas_call +EXPORT_SYMBOL vmlinux 0xff189386 skb_trim +EXPORT_SYMBOL vmlinux 0xff1e28df tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff4096d7 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xff4ce35c boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xff5456c3 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff6dea25 smp_hw_index +EXPORT_SYMBOL vmlinux 0xff79ba61 cdrom_open +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 0xffac05fa qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xffbb3c02 phy_connect +EXPORT_SYMBOL vmlinux 0xffcc3063 dm_table_event +EXPORT_SYMBOL vmlinux 0xffcfdcb8 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffdb82bc sg_free_table +EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL crypto/aes_generic 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 0xc4e31cbf async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xca0a0747 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x7d4f0fe7 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x9ac7295b async_raid6_datap_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 0x1cde3383 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x25cd1204 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x32f36e67 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x380cdfc9 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x48c9506f ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x65bd1e83 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x778bb076 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x798bab55 ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x940d35be ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x96fe4ce1 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xac2855f0 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb4470628 ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xbb052390 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc3d9473e ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x1605f43b __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xfd7f1ad2 __pata_platform_remove +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0xf215452d 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 0x2842c928 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x2bbaf52f btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x38393bb7 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x5af748ec btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7ca8e2bd btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x80730230 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xd8e5e92d btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xef14f451 btmrvl_remove_card +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 0xdfd37543 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xe21a86d6 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x041d731c dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x0b5b195b dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x12c47b50 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x16896c70 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x1930b4d3 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x274471f3 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x27f3c730 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x370b3d1c dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4c864c13 dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4dd06161 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x6a493b8b dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x6c785c6d dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x84b16055 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x89a1b0cb dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x901eb530 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb5fea31a dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb69df627 dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc31d328d dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xcf90af19 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf9188699 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf985c2da dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x69693b9f sync_page_io +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x7274ce3b md_do_sync +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xbfee1316 md_allow_write +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xc5164646 md_new_event +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x0b8ef590 raid6_2data_recov +EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x4a48d81c raid6_datap_recov +EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 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 0x02f6751b sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x56500306 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x66c6a6e5 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x88007d95 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xdca03121 sm501_unit_power +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 0x37fe38b6 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x646558a9 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x974b8ba0 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x98e62fcf sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb215aca6 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb31950d7 sdhci_alloc_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 0x48ee569a register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x8d5be8a3 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xa72ec4cf del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xcdc87ae4 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 0x31585d4f macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x37ff0536 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x8a02023f macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xdb90063a macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xf691b7ab macvlan_dellink +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 0xd78511bb 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 0x175ec316 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2809c363 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x42e97392 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4d151c97 rt2800_init_rfcsr +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4fb8dcca rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5606df33 rt2800_init_eeprom +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 0x721f39b7 rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8083d207 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x929a3246 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa0082900 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaf34678a rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb4cc79ba rt2800_mac80211_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb5840046 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb8ad9bc7 rt2800_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc18b148f rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc3ce2e70 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe1354a24 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xea26b5a1 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xed945523 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf08bcb69 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf4bcbff8 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfda29092 rt2800_init_bbp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0921e811 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0feaed1d rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1d7ef6cc rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1f3b38a9 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x322cc9b6 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3853573c rt2x00mac_rfkill_poll +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 0x6e81b50f rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7223b64f rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7d0f3f20 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7dfc4afc rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9fa9f2ab rt2x00lib_beacondone +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 0xad099953 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb9ed115a rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbf922de9 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdb80eb95 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe3a551d1 rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x2820e503 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x792509d7 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xa7205782 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xbd40d1de rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xbfc01c57 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xc7fb2d93 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xcfde5f75 rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd2d1eb55 rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf5b06014 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x01779816 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0592b352 rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0b017f86 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0b70afd0 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0bd663be rt2x00usb_kill_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0eaf3a5f rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x102418b1 rt2x00usb_kick_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1ba6805b rt2x00usb_vendor_request_large_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x33a3f642 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3847ab4a rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x52c8973b rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6c7c9fe6 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8ee897db rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa2bdcac9 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdf1618b2 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe80794c2 rt2x00usb_regbusy_read +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 0x05692839 scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x6f4a2d18 scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x73559160 scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x960b6a31 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x9e383324 scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xdb0e44b3 scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x03db4532 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x02030152 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0b2b5983 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0e49aa0a iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12ee02c0 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x13334efd iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x16dbb547 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x17cf34f0 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x32d1ac15 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x33a9e6fd iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x35decd70 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3d7f47e3 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4a6f43ef iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5b578fd8 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5e89a2d7 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6028dbb8 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x70343e4c iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x767bff23 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x77bf792f iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7caefc39 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x83aed858 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8c99434b iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d69f906 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8ea6c68b iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x90a4e532 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x911bfb3b iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9767887e iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9a71bbd5 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9d5f9821 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9f8f6090 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9ff36422 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa88b6ffd iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb0778c53 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc2126c3f iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd051b5cf iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd05fd960 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd0ead3af iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd4d90e60 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd585617c iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd88ce2f0 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdb373d76 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe97669ad iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe9b92d73 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x053366ed iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x09243637 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0b36af08 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0c5a80e5 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x11c6b376 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x17e7949e iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x33ced3b9 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x82d2b7e2 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x96c3f595 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9fd7d394 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9ff5eef4 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf63cbb0c iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf6bc05b5 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf863d2ec iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfa0c81dc iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfbe88342 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2b257ae4 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2c2952f9 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x340afc5e sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3d7cc4b5 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x45ddbae0 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x472b69e3 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4a258fd0 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4c7d50af sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4cb8e5e2 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6dc7eca7 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x82f2d1ca sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x97373b3b sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9a99172b sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xba6d7a36 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbb0a5b02 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbc2a0a0d sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbc7ae779 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd741d124 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdaff31e6 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe486fa8d sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe7442735 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xebfb27e5 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfa9e2e0b sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x1eac995a srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x7787e393 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xa2b44f39 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xa5496a7c srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xd4effa39 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xd5212aca srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x04eb5498 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x2853fcd8 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x2941815a scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x2fd4bc03 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4adb7a54 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x784d460b scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc2bd190f scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd3116208 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe2961293 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2aefdbe4 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2b3fccd5 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x36e350f5 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x37f73e90 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3d4cda3a iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3f6921b5 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x405b4e40 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x51b05d73 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x564d1dcc iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7d842e1d iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fc6f639 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8c41ea08 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x99d13c0c iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9eaa05d8 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xab273d9b iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xba57e590 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbcdd0ad3 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcb3a7323 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd9116b04 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdcc21eb6 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe5d2b9ba iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf43168a6 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x65da58d8 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x99684bf9 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xee8b19cb sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xfa4a2d80 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xade90340 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xb7b38598 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc7a6c7d8 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xee6c2cc5 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xefa0551b srp_release_transport +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x0c0cb4ac pciserial_init_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x47529fc8 pciserial_suspend_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x531adb80 pciserial_remove_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xfc8dbde5 pciserial_resume_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 0x20efe336 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 0x2129e5d1 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x9c447987 usbatm_usb_probe +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 0x0e14fed2 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0e8898ba ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x259a36a6 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2658e06b usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x35572c59 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x44e8d011 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5599f8f9 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x60028a10 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x80b0cae4 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x810c314c usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8e2088b2 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8ebf7479 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa6c1658b usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa70a1cde usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xaa3567f8 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc9e31f57 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd96aa6c1 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe34c7693 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xff000ac0 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x073174c9 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0f8b6b58 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x16236b88 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1ef0a0df usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2cacf22b usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2d702f6d usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2f8ccd8f usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x38c03e53 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3aa6d078 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3d7ef733 usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x471fa658 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x51aee38a usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x56e7cb63 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6e813445 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6ee32f33 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x715a728c usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9121d772 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa282f705 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa5d52b81 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb034a18e usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb4946f44 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd4b098c9 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfc1e3913 fill_inquiry_response +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 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 0x29348b00 fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x2961033b __fat_fs_error +EXPORT_SYMBOL_GPL fs/fat/fat 0x31ccbbba fat_getattr +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 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 0xd2310ac5 fat_free_clusters +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 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 0x18aa9676 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x4e16c73c nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x94a4388e nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x962702d5 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 0xae302e64 nlmclnt_proc +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 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 0x2c17d399 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x354721ff o2hb_unregister_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 0x52818c61 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x770a33ab o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x807d5143 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb7f0bddc o2nm_node_put +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 0xe5302872 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x521cedb5 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x79b5f5d6 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x8138bea6 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xa5bdc278 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xa7c6bce9 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/dlm/ocfs2_dlm 0xfbede194 dlmlock +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 0xa691ca53 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 0xaa7f68ee bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0713fa4f dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x13578e88 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x136b5986 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x16f854a1 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x17a66492 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x21248fed dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2a925cc0 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2d9fec61 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3d7eadd1 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4a240860 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x53cf919c dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ece631 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5af21acf dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5f7e2ed4 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x68a8249c dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x790b6d1a dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x810c7fdc dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x82125646 dccp_reqsk_send_ack +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 0x94b012f2 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9f7c5806 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa1e9ba2f dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb3ce6648 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc5315e08 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcf2cb9f2 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd026944d dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd75ee424 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdb6be999 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe7a6b61c dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xea734758 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf07c9579 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf45f4e83 dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf69e62a8 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf85b4804 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf8d1f97e dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x07747005 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x25664cef dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x33acbbf8 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x76596a96 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x80f9559b dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xef7b30eb dccp_invalid_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xcd6c8e8e arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x79e1f892 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x577f4a8b 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 0x06f07865 nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x30d5d327 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x59500aea nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x59f58e4c nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x9162d3b9 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 0x95cd035f nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xc696102c nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xcb1059d7 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 0x6b312844 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x74b14c87 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x828e065f tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xa0510d61 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xdd2aea74 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x151d8d8e ip6_local_out +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x416f5838 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x4e16a121 ip6_dst_blackhole +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x4f40d269 ipv6_opt_accepted +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x6eeaa809 inet6_csk_search_req +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x7057e38a fl6_sock_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x741626a6 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x91af6819 ipv6_find_tlv +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x988839e3 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa2bd8688 inet6_destroy_sock +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xb7cef092 inet6_csk_xmit +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xbc6b6dd8 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xc7d31f3a ip6_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xcaf97dbb ipv6_dup_options +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xf9f2fc40 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x19c735ca ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0b9cd906 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1013098a l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x21c0fd2e l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4733e750 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4def7ce8 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5d5a478a l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x66135e16 l2tp_udp_recv_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6ab2e19f l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6caefc15 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x77c87cb5 l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8b730c5c l2tp_tunnel_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x91313c77 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa59c751a l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb7f12e90 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbb30a297 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe133ae37 l2tp_xmit_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf4e56300 l2tp_tunnel_closeall +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 0x14036ffe nf_conntrack_l4proto_udp4 +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 0x26350d7c nf_conntrack_l4proto_udp6 +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 0x6a28deb1 nf_conntrack_l3proto_generic +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 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 0x98e33289 nf_conntrack_l4proto_tcp6 +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 0xaad5500b nf_conntrack_l4proto_tcp4 +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 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 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 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 0x6ced75be nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xd3bccf0a nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x01691e39 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2ff524e6 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3da04a86 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4abe4d58 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6ec24120 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9c5f15e9 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9f341bc1 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9f83e7e5 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa0e2a9fd set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe54110b4 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x2ed0026f nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x07c94d81 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x4059b29d nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x9cd6781f nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xc2e79670 nf_nat_pptp_hook_exp_gre +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 0x104562d0 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x111ac82d nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x11d510cd ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x32eadfa1 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3779825b ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3bc028cb nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6101fa3d ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x77b17b1d nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x79ef850b ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9184a041 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xabab8884 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc8719424 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xdb85f530 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x96fdab5d nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x591c785b nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xb59d34c6 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x2236a87e nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x28fa3c69 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x2c70cf87 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x38752919 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x9c6fd14e nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xea0af493 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xcbb6d8ea nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2a893db7 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x34b7ad85 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4fe44124 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x53fe839f xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x55e5f5f9 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x57634b92 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x638001b2 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7220c8ee xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x92c00940 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa1160bfe xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xbd528f1d xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc676e694 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd2478812 xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd7d729f0 xt_hook_link +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x217ffc98 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x91846ee4 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 0x195e6209 gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x1e9314ae gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x2a039945 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x33d47e38 gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x68ec1d68 svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa6bd9527 gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb23012d1 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd70698ae gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe056969b gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf97f6833 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x002c4c77 rpc_queue_empty +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01cb2f31 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01fb0eae rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02c7ea33 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02f58cf8 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x054f655b rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05558203 svc_sock_destroy +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 0x06b11bbf __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x096211d4 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a39951e cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d152450 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f9fd9c0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x136027e8 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x181aa640 rpc_exit_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x19c81130 rpc_force_rebind +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 0x20f38f98 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x213cb842 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x242aaec1 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24e05ea0 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2626c9ff rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26d49f3e xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2cebf266 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e279899 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e7d2916 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30705889 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x33a9036b xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x34ed6a89 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35448c65 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38ae3299 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c74ee4f sunrpc_cache_pipe_upcall +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 0x418f81f8 xdr_read_pages +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 0x44cd2d61 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x47e6d3a6 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4901df8e svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ae6a1ea xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b0040c5 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e9c72e2 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x540569ab svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x548f3da9 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x54c4f0bf svc_close_xprt +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 0x58256c38 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x595ec099 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a6c609c rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c955934 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e22eb49 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5eefc72a rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fe61fb4 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60c79a56 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x667b23c2 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67cc2a2a rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6adff4f9 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e16fa9d xprt_release_xprt_cong +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 0x70b195b2 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70ee831d rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x720da0c6 rpc_call_async +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 0x757eb756 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x761215f3 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7abc5565 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b7c1b3b xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e7172c7 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ed114ba svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f57e975 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x81496bce rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86ed282a rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8da094b4 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e32ebf3 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x903c9c60 auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x907a811e put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9091a6c3 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x920952be svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x93e8150d xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x959f66d7 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97d24d7a xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98f41792 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9acc9817 rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9b10aeb1 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9daf79cc rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9dfc7aa7 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ea546ad xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4d4abf2 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa53fd6e6 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6dec430 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7767a4e rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa827acb6 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9fa9bb9 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa0c04d3 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa8658e1 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaab25d0f xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaae9a457 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad245188 auth_domain_put +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 0xb15dcd65 xdr_skb_read_bits +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 0xb5faaed3 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6777c93 svc_sock_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb669fd8 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbc177383 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd6aba0d svc_xprt_copy_addrs +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 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc6b63722 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc893b463 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8a77753 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8b56ebd svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccc2372e rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcce9d7a6 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce1ace80 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0380b3b svc_create_pooled +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 0xd4e35bcd xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd57b73e9 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf844ecc svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0ee7444 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1bd4397 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1caa2e3 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2cfd263 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4dea37e rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe777f412 auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe791a44f svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe7e79408 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb3a3415 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb82a90f rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xebdce67b 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 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1661d2a rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2df17f0 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6548ad0 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6c50a58 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7d0fe5c svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9e4a621 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa7eef82 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff19a0c6 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/wimax/wimax 0x16026d8e wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2c8a120b wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x4424ec2f wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x508513a9 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x62f60ce9 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x69b3f74e wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x90d574d8 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x9537bb0d wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb3c1ee0b wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0xdb4b591f wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xeeefb2d4 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf966fd61 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0xfaf1ea36 wimax_report_rfkill_sw +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 0x1aa59c18 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x3de91aad ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xcba8b65f ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xf71a585f 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 0x000bcde3 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x004a1d7a pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x004d5422 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x0053687d ide_cd_get_xferlen +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00741d7a ide_dma_test_irq +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 0x00e056d4 ide_init_sg_cmd +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00f36416 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x013835d0 ide_dma_setup +EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x016cadc3 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x01930973 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01c18f79 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x01c255ae ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x01ddfc3c driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x02272c1c __class_create +EXPORT_SYMBOL_GPL vmlinux 0x026c289a attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x02bb0bdd __ide_pci_register_driver +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 0x0318dda6 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x031fc6bd tty_wakeup +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 0x03d2fa81 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +EXPORT_SYMBOL_GPL vmlinux 0x04483256 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x0496520a debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x049f2175 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x04d09272 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x04db4f44 scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x054e58a5 each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency +EXPORT_SYMBOL_GPL vmlinux 0x05a89413 blocking_notifier_chain_unregister +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 0x065f1f6d perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x06b0f92b i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x06e03706 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x06f5efcf spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x070c6e87 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x07148400 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0724568d get_device +EXPORT_SYMBOL_GPL vmlinux 0x0734a51a spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x07a21887 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x07ac3d71 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07c02d81 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x082bf10f device_rename +EXPORT_SYMBOL_GPL vmlinux 0x0880a8dd ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x089b744f ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x08c54e41 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x08d14939 ide_port_scan +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 0x0972a8b5 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x09e5b349 sysdev_show_ulong +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 0x0a933992 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x0aa108ce rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x0abf7934 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b0b350e fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x0b1d53dc register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0x0b4c80ff skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x0b73753e user_update +EXPORT_SYMBOL_GPL vmlinux 0x0bb3fe65 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x0be16e74 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x0be50ead tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x0c04fee6 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c3a5b9a irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0x0c3b88c9 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x0c4c47db crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x0c694f6f crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x0c6a2574 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x0c92a8b6 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x0c97d338 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0cd3f9e9 ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0ce9db47 sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x0cf5646d usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x0d5171c4 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x0d5b063c atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x0d962654 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x0dc74435 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x0e641278 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x0e67c69b __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x0e9b64ad inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0x0ecc7c5c elv_register +EXPORT_SYMBOL_GPL vmlinux 0x0f3d4c1b srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x0f68bf34 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x0fce402f fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x103186a0 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x105acfee sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x106433ca ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x10668418 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x108d22f6 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x1093c009 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x10bd7350 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x10f1b0e9 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1130addb register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x113173eb ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x11b059af sysfs_remove_link +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 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 0x12745e8a ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x1275f6ec ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x131dd808 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x13354608 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x133e41d6 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x13601184 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x138bfc07 ide_setting_ioctl +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 0x145d183e skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x145d95d6 ide_pci_setup_ports +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 0x14c2742e input_ff_upload +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 0x154a2564 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x1554c96a spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x1559f290 __blkdev_driver_ioctl +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 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 0x15c16673 ide_prep_sense +EXPORT_SYMBOL_GPL vmlinux 0x15c6dcc1 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x15fef36a security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x1601138d regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x1602e422 ide_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x16046b62 pm_request_resume +EXPORT_SYMBOL_GPL vmlinux 0x1610fe1b hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x1695c03e ide_create_request_sense_cmd +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 0x17df0c3f __pm_runtime_put +EXPORT_SYMBOL_GPL vmlinux 0x18650e54 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x1865aecb ide_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x187c5f44 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x189148fd ata_host_register +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 0x19d2b762 do_rw_taskfile +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1ae3fc40 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x1ae87b69 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x1b0c5f58 blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x1b236b82 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x1b4db504 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bb1510b platform_device_unregister +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 0x1d520994 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x1d5d1059 of_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x1d612df9 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x1d758efd crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x1d8ca4aa ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x1dc7ea6d filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x1dc9e898 vfs_setxattr +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 0x1eaf17ec ata_do_eh +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 0x1ec9eb65 locks_release_private +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 0x1fabd601 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x200f544e tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x2030bfd9 ata_dev_next +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 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 0x218c6b03 ide_pad_transfer +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 0x224bbf93 ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x2285200f usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x228f6256 bd_release_from_disk +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 0x22f20fd9 inode_add_to_lists +EXPORT_SYMBOL_GPL vmlinux 0x230b468d i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x23116cd7 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23afb2bf __pci_reset_function +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 0x2484a607 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x24bc356c inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x24cadddc sock_prot_inuse_get +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 0x2580964f rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x25a13fcd vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x261e7ba9 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x26297b3d crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x26664a12 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2677aa8a inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x26841986 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x26a5ef64 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x26a63641 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x27210105 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x2746ba79 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x277722a5 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x279b3cc0 ata_ehi_push_desc +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 0x27da9854 sg_scsi_ioctl +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 0x282e5e12 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x286b4aaa ide_pci_init_two +EXPORT_SYMBOL_GPL vmlinux 0x288b6d05 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x289cefdb find_pid_ns +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 0x2921621e ata_dummy_port_info +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 0x29d1886d ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x29f0e9b5 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x2a1e1dd3 transport_configure_device +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 0x2af88234 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x2afbe2a5 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2b033008 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x2b03d4ff module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x2b21d6c1 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x2b3a1609 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x2b607170 ktime_sub_ns +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 0x2c60f849 scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c841885 sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x2cb0df69 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x2cdb64c6 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x2ce6a2c9 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d11e76f da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x2d24dafe disk_part_iter_exit +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 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 0x2dffdd45 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e7167bd power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x2eb91dfe scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x2ec6c820 ring_buffer_discard_commit +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 0x30199d19 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x30301151 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x304b7bd8 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x304c0bc6 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x3050ec18 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30da4bf8 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x30dec9b9 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x310541ba unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x311b3076 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x31468585 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x322e4e3f ata_pci_device_suspend +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 0x331888be posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x331cb9ed ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x3346d61e sk_clone +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 0x33fa59c4 class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x340d2c0b file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x343d3f3a shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x34620474 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x347af712 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x351bd533 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x353ffd6f ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x35d4b91d ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x35e3ce53 dm_underlying_device_busy +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 0x36cfde70 ide_output_data +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 0x373c7cf4 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x3755cbd9 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x376eb63b __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x3784f105 pmac_i2c_find_bus +EXPORT_SYMBOL_GPL vmlinux 0x38278534 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x38585529 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x385a1433 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x386acbb5 bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0x387ca845 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x387d6095 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38d66f96 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x38d985f6 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x3936cf9f cgroup_lock_live_group +EXPORT_SYMBOL_GPL vmlinux 0x3937c00b irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0x3972410c ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x399bb82a xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x39a94909 dm_noflush_suspending +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 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a36ca7f ide_pci_resume +EXPORT_SYMBOL_GPL vmlinux 0x3a4c83e6 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x3a7ad3a0 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x3a9c2a1e usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x3ad39656 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x3adda37e ip_route_output_flow +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 0x3d06c647 vfs_kern_mount +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 0x3e227b63 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x3e3d24d6 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x3e4df484 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x3eecdc00 fuse_conn_put +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 0x3fb5d75d ide_pci_set_master +EXPORT_SYMBOL_GPL vmlinux 0x3fd1353e debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x3ff44715 wm8994_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x40223f15 ide_init_pc +EXPORT_SYMBOL_GPL vmlinux 0x402c844d ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x408c57d7 ide_device_get +EXPORT_SYMBOL_GPL vmlinux 0x40a3f466 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40b6cac0 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x40f1e195 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x411fc689 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x41389212 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x41590e78 dm_set_device_limits +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 0x41c12773 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0x425c1c0b ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x4273c899 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42842b2a crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x428ae940 br_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x42b364ef scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x42f9c819 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x4345cfa5 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x4381bc75 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x43b81d87 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0x43bf9eff ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x43f270a1 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x4456d0c8 pmf_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x44627204 ide_host_remove +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 0x4502d4c7 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x4530e53a wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x45359f1a pmac_i2c_setmode +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x4598bc11 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45d51e5a ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x45f0bcce adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x45ff60cd css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x465252d9 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x465fd406 ide_no_data_taskfile +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 0x468a3fb9 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x4697f1d2 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x46f200f0 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x46f9192b usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x477569fb ide_port_unregister_devices +EXPORT_SYMBOL_GPL vmlinux 0x478c2996 blk_abort_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 0x480de8c4 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x485b0bce invalidate_inode_pages2 +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 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 0x49b268ec ide_retry_pc +EXPORT_SYMBOL_GPL vmlinux 0x49cf0518 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x4a18f32f usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x4a2d9fb5 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x4a588346 inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0x4a8d43fc cpu_add_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x4ab81583 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x4af3f9f0 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x4b408329 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x4b551c38 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x4b733dc6 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x4c18095a ring_buffer_time_stamp +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 0x4c803dc3 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x4d14e74c regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x4db4a95f vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x4dbc664b cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x4dd1fbdc ide_dma_start +EXPORT_SYMBOL_GPL vmlinux 0x4e0a799f pm_generic_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x4e258855 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x4e3594c4 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x4e933f4c xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x4ece0f6e platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x4ed3c7a6 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f0ff577 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x4f6f514e part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x4fa0f3b9 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x4fa7137e __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x4fab8181 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x4fad8fae ide_do_start_stop +EXPORT_SYMBOL_GPL vmlinux 0x4fcb28f5 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fdd60f3 ide_read_error +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 0x50257b97 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x502c9eee crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x50402440 ide_host_register +EXPORT_SYMBOL_GPL vmlinux 0x504a5bf8 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50d595fb ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x50d91c86 dm_requeue_unmapped_request +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 0x5102512b find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x514e8bf2 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x516100f0 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x51af7f83 unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x51b65a26 rtc_lock +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 0x528af6d0 ide_unregister_region +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 0x5341db81 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x5345aba5 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x5375e3f8 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53a54084 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x53a810a2 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x53d3c536 crypto_enqueue_request +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 0x54c3c28c tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x54cac89f scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x54e081c7 inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0x5517024c inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x553ec50a user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x558a23d3 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x55ceecb7 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x5618fb82 __inet_lookup_listener +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 0x5652f2ba vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x56a3601c fib_rules_cleanup_ops +EXPORT_SYMBOL_GPL vmlinux 0x56bca5ba sata_link_debounce +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 0x573047ac ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x575e59fc free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x578e2b2f usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57b89acd eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x57c158e3 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x582c63ee console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x58653cc8 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5892f832 release_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x5916f9bb fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x597fcce5 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x59c48ca0 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x5a0ed886 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x5a1727f0 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5a3c2377 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x5a402f77 init_dummy_netdev +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 0x5a9d4f44 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x5acd0bd7 platform_add_devices +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 0x5b380dcb kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x5b449488 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x5ba089c9 device_move +EXPORT_SYMBOL_GPL vmlinux 0x5bb4181d inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x5be29105 pmac_i2c_match_adapter +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c5642b1 user_match +EXPORT_SYMBOL_GPL vmlinux 0x5c6440b4 ide_dma_sff_read_status +EXPORT_SYMBOL_GPL vmlinux 0x5cc99975 irq_find_mapping +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 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 0x5e4f6576 debugfs_create_file +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 0x5f76c8c9 raw_seq_stop +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 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 0x60a6e3de queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x60af1d02 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x60cac3d4 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x613827d9 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x61430158 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x61536ff9 __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x619af8ff wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x61a90c54 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x61d29289 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x62351848 sk_attach_filter +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 0x62e24fd9 ide_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x62e3a739 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x6302cc40 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x6395f0d5 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x63e72b86 ring_buffer_lock_reserve +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 0x645f5ef9 ata_sas_queuecmd +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 0x64aec469 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x64d29734 input_class +EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0x65a63d3f blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x65c9f7a2 sdev_evt_send_simple +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 0x6732faaa seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x674fad56 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x67679313 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x678ec518 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x679de2cc inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x67c4d52b devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x67ca5214 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x68517a73 inet_ctl_sock_create +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 0x6954daca tcp_reno_cong_avoid +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 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a6e1649 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x6a82c810 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x6a8595cb __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x6a947072 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x6acc05d9 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x6ad910eb ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x6adda078 input_ff_create +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 0x6c258604 pcibios_finish_adding_to_bus +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c6ce857 find_module +EXPORT_SYMBOL_GPL vmlinux 0x6c7ca23b tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x6cce1b95 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6cf456e6 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d36fe3d rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x6d747883 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x6da3277d ref_module +EXPORT_SYMBOL_GPL vmlinux 0x6db9f9c8 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6e937c5c pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x6ea63ada rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x6eb00f54 __inet_inherit_port +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 0x6f3a0eac ide_host_add +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 0x6ff1fd85 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x70090028 do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0x700ced80 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x709c77fa register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x7121c65d ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x712fd157 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x715ffd41 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71aa2711 ide_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x71d1208e usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x71ebed11 ata_port_pbar_desc +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 0x72ea504c inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0x732fed5c blk_end_request_err +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 0x73ac9481 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x73cab46a class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x73f87fe3 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x740a60a2 ide_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7419e7a8 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x74537689 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x7478bcdf blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x749fe57a securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74aca725 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74ef7edc page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x752eb022 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x75921f2b tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x760a0c21 ata_scsi_ioctl +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 0x76b1c653 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x770125d6 crypto_unregister_ahash +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 0x77da43ea raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x77eb10e3 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x7821f30c ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x787cd910 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x78f23561 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x790299b8 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x795e04bb fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x795ee137 d_materialise_unique +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 0x7b106c08 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b4c0812 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x7b55b95f pmf_call_one +EXPORT_SYMBOL_GPL vmlinux 0x7b590c5e ide_issue_pc +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 0x7bf534d8 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7bf64d0c dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x7c6b8d30 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x7cc4ec07 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d5d5283 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7db99fc9 ide_pci_dma_base +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7dd04a38 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x7e00bfbb inet6_lookup_listener +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 0x7e89a447 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x7ef72fd3 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7f468b8a put_pid +EXPORT_SYMBOL_GPL vmlinux 0x7f5e7862 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x7f74735b skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x7f7bc710 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x7f97ba34 dio_end_io +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 0x802acd25 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0x80438578 ide_dma_sff_timer_expiry +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 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 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 0x81a84b89 ide_read_bcount_and_ireason +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 0x824ee095 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x825bdf17 ide_input_data +EXPORT_SYMBOL_GPL vmlinux 0x826a72c1 da903x_writes +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 0x82a693af ide_error +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 0x8304e80c ide_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x83066e71 hvc_remove +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 0x84256e6c crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x84a6fb80 nf_register_afinfo +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 0x8579deca scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x864632f7 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x866f2bc2 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x86852bc2 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x8699aeff pci_cleanup_aer_uncorrect_error_status +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 0x87416058 ide_dma_lost_irq +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 0x87b0c7ad cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x87ebf5a6 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8822bcd9 ide_init_disk +EXPORT_SYMBOL_GPL vmlinux 0x8848769b driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x887e540a ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x88a59b9c ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x88a5d3c9 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x88f4d4d7 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x893d137d pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x894357a2 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x8966f709 pmf_register_irq_client +EXPORT_SYMBOL_GPL vmlinux 0x89b4a146 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x8a0a6b21 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0x8a1228f9 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x8a16b797 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x8a524f16 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x8a7f4754 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x8a83bcdb ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x8ad2fba2 pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x8adfa438 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x8b44705b ide_capacity_proc_fops +EXPORT_SYMBOL_GPL vmlinux 0x8b5e4f9e sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x8b646eea ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x8b6e7a38 kobject_uevent +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 0x8c4cb0e1 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x8c898bbb debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x8cb5d5cb tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x8d1a481f eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x8d32a389 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x8d6f09ca tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x8da17b42 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x8df573d6 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x8df8e2f2 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x8e4e9f16 pci_stop_bus_device +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 0x8f1f673f ide_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x8f251436 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x8f68e33c ide_check_atapi_device +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f817147 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8fb2d7f8 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0x903c212b sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x907fb206 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90ae7a17 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x9142db05 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x917c30e0 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x9191e7fa blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x91968334 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x9212efac fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x92ab33c3 ab8500_write +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x93032657 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x930508c6 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x9309b153 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x930a2c21 ide_device_put +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 0x93a2cb47 reserve_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x93b5bcd7 ide_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x943ede70 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x9459f423 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94e191e9 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x94eba3e1 tcp_twsk_unique +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 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 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 0x96b8ac9a platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +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 0x98b210d2 do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x98b318f5 mnt_want_write +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 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 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a129d46 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x9a4ee3ad ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x9a7e0e27 ide_map_sg +EXPORT_SYMBOL_GPL vmlinux 0x9aad6540 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x9aade4fd ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x9aee7b85 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x9af3d9d6 rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0x9b32abfa sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9b5170ef rtnl_kill_links +EXPORT_SYMBOL_GPL vmlinux 0x9b872107 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bbc101d __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x9bd2b201 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x9bda6a9e usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x9c375594 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x9c588574 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0x9c5b0d6d scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9ce69a0d ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x9cf511d5 perf_arch_fetch_caller_regs +EXPORT_SYMBOL_GPL vmlinux 0x9cfdb911 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x9d0d981b skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x9d91a0eb anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x9de6f8b5 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x9e074dd5 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9e0de2f2 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x9e4432cb unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x9e76be9c crypto_hash_walk_first +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 0x9f453de0 mmput +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 0x9faa1112 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x9fb39c72 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x9fc36842 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x9fc3c319 kick_process +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 0xa02e1bb4 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xa0a081d9 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xa0b4b9fb sysfs_create_link +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 0xa15b237e __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xa1947f98 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa1a8383a inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0xa1d02d87 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0xa1ed2d23 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xa1fd6d71 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xa23b57a4 cpu_remove_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0xa243ae55 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xa26cbf48 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0xa27b0ac4 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0xa2af3bbf ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xa2c5e572 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0xa2dd2f08 hvc_poll +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 0xa331fbb8 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xa345004d ide_setup_pci_noise +EXPORT_SYMBOL_GPL vmlinux 0xa357d56e ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xa37f1dbb dev_attr_unload_heads +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 0xa4e9fe3a ide_write_devctl +EXPORT_SYMBOL_GPL vmlinux 0xa544655d vfs_lock_file +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 0xa5dfddea blk_trace_startstop +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 0xa6ec7483 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xa7539779 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xa7734f26 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0xa7c470a6 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xa7c5cda8 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xa81391d5 tty_get_pgrp +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 0xa85a99f2 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xa8a53480 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0xa8aaede1 ide_pci_check_simplex +EXPORT_SYMBOL_GPL vmlinux 0xa8c372af securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xa8cc32a3 ata_pci_device_resume +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 0xa91261ee ide_pci_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa91e9897 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xa95a9e37 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0xa95f1f8f ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0xa9698333 ata_common_sdev_attrs +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 0xa9f2c730 pmf_unregister_irq_client +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +EXPORT_SYMBOL_GPL vmlinux 0xa9fd6e8e ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0xaa1594a6 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa81b6db ide_get_lba_addr +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 0xac16bfd8 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xac1d76b0 css_depth +EXPORT_SYMBOL_GPL vmlinux 0xac1e8237 ide_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xac2da4db device_create +EXPORT_SYMBOL_GPL vmlinux 0xacbace62 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xad02694e dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xad0983ea of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad652027 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0xad83cb60 ab8500_read +EXPORT_SYMBOL_GPL vmlinux 0xadaa26f2 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xadb231e0 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0xadff2832 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae0f8e49 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xae11ce31 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae756aa8 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0xae86a8d9 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaf43419f ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0xaf673a1e tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0xaf8ba5cb gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0xafede715 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb007c5b4 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xb08dff2f ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xb09344d2 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0xb09fa51d ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb0ab9f8c flush_work +EXPORT_SYMBOL_GPL vmlinux 0xb0e29dfb tcp_reno_ssthresh +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 0xb16df28d put_device +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb19f0cc7 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1d81f1d set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xb1f70652 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xb1fd5149 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xb200e0da alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xb2498d1e cvt_df +EXPORT_SYMBOL_GPL vmlinux 0xb250bf78 tc35892_block_read +EXPORT_SYMBOL_GPL vmlinux 0xb25d1430 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0xb2bd202e lookup_create +EXPORT_SYMBOL_GPL vmlinux 0xb2d0ab0c ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0xb30884c9 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0xb31deaf5 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0xb3413552 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xb35ad981 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xb372ffa4 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb3d60296 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xb42cdfed blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xb43e96ba sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0xb47c0f54 tty_prepare_flip_string_flags +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 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 0xb5af53da tcp_done +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 0xb60240e0 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0xb60fa721 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0xb61ad0e0 ide_read_status +EXPORT_SYMBOL_GPL vmlinux 0xb62e4ae9 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec +EXPORT_SYMBOL_GPL vmlinux 0xb6755d05 pmac_low_i2c_lock +EXPORT_SYMBOL_GPL vmlinux 0xb681b876 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xb6823e49 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6b4dc74 xfrm_output_resume +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 0xb71527be vfs_removexattr +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 0xb79b1d69 skcipher_geniv_free +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 0xb81e8a19 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0xb8952c04 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0xb89f783d sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0xb8b8f70d debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xb8d44583 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb8d4ad6b screen_glyph +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 0xb93c213f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0xb95d53f3 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0xb9849cd3 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xb9888f70 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xb991b11f sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xba4cbc91 pci_add_dynid +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 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 0xbb4be0d1 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xbb50063c regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0xbb5e99e2 generic_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0xbb617d62 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0xbb6aef7f inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0xbb7aefba wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xbb91cb36 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xbba50182 pci_test_config_bits +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 0xbc13a3f8 ide_check_ireason +EXPORT_SYMBOL_GPL vmlinux 0xbc5a1c1f regulator_register +EXPORT_SYMBOL_GPL vmlinux 0xbc60b316 pmac_i2c_get_bus_node +EXPORT_SYMBOL_GPL vmlinux 0xbc98113a pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0xbca2ef58 ide_dma_unmap_sg +EXPORT_SYMBOL_GPL vmlinux 0xbd62162a get_inotify_watch +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 0xbe08a642 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe86685d crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xbe970709 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0xbec51c35 ide_pio_cycle_time +EXPORT_SYMBOL_GPL vmlinux 0xbecc61b5 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0xbf1cc04b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xbf3b7588 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xbf417842 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xbf9edbab find_get_pid +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 0xc06d8a41 destroy_workqueue +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 0xc1590454 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0xc16746b7 user_read +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc1e75acb __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc2088628 ide_set_dma_mode +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 0xc28376fb ide_pio_bytes +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 0xc32f3637 page_cache_async_readahead +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 0xc4152c5f fb_ddc_read +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc46d877e schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xc47ad852 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4c852e4 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc5024a36 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xc572650e pmac_i2c_get_type +EXPORT_SYMBOL_GPL vmlinux 0xc5a79fab unregister_jprobes +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 0xc68fdad7 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0xc6b860e6 ide_register_region +EXPORT_SYMBOL_GPL vmlinux 0xc6b9bd86 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0xc6df0556 relay_buf_full +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 0xc810ac17 ide_host_free +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xc8cae6f2 dev_attr_sw_activity +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 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 0xc989823c raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xc9c83ed6 __put_net +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9fce8a9 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0xca32a2aa ide_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xca34e3be add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xca5acfad pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xcaac47bd ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0xcae01a2d blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xcbc2c8dd atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbf4de3f ata_wait_after_reset +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 0xcc725c31 ide_dma_end +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcce1c2e9 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xcd83ec85 pmac_i2c_get_flags +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 0xce17b963 macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0xce656477 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xce684dc9 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce8def91 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xceac61f5 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xcecabbe8 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcfd37b03 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xcff4cf77 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xd00652f3 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0xd010fc9a __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xd025f357 ata_dummy_port_ops +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 0xd0a66ffb ata_std_postreset +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 0xd1537590 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1845c3b debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xd18b16bd nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1f0491c irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0xd21cfabb xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd2467d0d fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xd270540c pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd27e6e3a aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xd2892e30 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd2bfea67 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xd2e3821c inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd30967fd ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd34423cc __module_address +EXPORT_SYMBOL_GPL vmlinux 0xd3557d81 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xd3abe7d5 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0xd3c53f3b user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd3c5cb5f __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xd3c5f601 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0xd43fb1a7 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0xd48540c7 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xd4ad2bea tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xd4b74fb6 ide_pci_init_one +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 0xd5103845 ide_dma_host_set +EXPORT_SYMBOL_GPL vmlinux 0xd5196792 pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd51cf4f0 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xd52153bf fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0xd5640961 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xd57af5a3 __crypto_alloc_tfm +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 0xd5faa155 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0xd61ad5d6 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xd64ee824 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0xd67d101d ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0xd6957d54 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd6c8b8ef __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xd6cbfcf1 register_pernet_device +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 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd76cf85c init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd783edf8 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xd7d5b209 ata_timing_compute +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 0xd92f8f2f wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xd94f49ea inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xd96c26b2 debugfs_create_blob +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 0xda74a3b5 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xda951233 pmac_i2c_get_controller +EXPORT_SYMBOL_GPL vmlinux 0xdab9e502 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb099024 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb2f2b78 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xdb67d3df ide_queue_pc_tail +EXPORT_SYMBOL_GPL vmlinux 0xdba112e0 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0xdbc654ce ata_sff_busy_sleep +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 0xdc50eeb4 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0xdc5b1e04 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0xdcac679a ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xdcfac8fe usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0xdd1b9f57 crypto_shash_finup +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 0xddbaedfb inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xddd32419 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0xddd69ee0 pmf_put_function +EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xde4f17b8 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0xde54a9c7 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0xde5fee0a platform_device_del +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 0xdfa276ee ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xdfb0f3f5 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe07ca631 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe0ea84e6 ide_read_altstatus +EXPORT_SYMBOL_GPL vmlinux 0xe103ff8f crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xe1060a1f dev_attr_em_message +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 0xe18f3f84 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xe1910006 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xe1cfe903 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xe1d37f25 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0xe1f86c2a crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe257744b cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xe2c028e1 pmf_get_function +EXPORT_SYMBOL_GPL vmlinux 0xe2f6c4e6 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe30255cf hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0xe332ae19 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe387e4f7 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xe3af2fdc crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0xe3ef364e cpufreq_cpu_get +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 0xe569aafd relay_open +EXPORT_SYMBOL_GPL vmlinux 0xe5e4c2f0 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xe5fec92f ide_undecoded_slave +EXPORT_SYMBOL_GPL vmlinux 0xe61f6e27 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xe625686e trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0xe6393f06 mnt_drop_write +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 0xe6d7a663 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe70afe5b usb_clear_halt +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 0xe8007560 ide_allocate_dma_engine +EXPORT_SYMBOL_GPL vmlinux 0xe802fd48 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0xe8375f95 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe86875de register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xe8799ed0 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xe881a4df ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xe8ebbca2 ide_queue_sense_rq +EXPORT_SYMBOL_GPL vmlinux 0xe923161a ata_host_init +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 0xe98b044d dm_path_uevent +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 0xea20e28f ide_release_dma_engine +EXPORT_SYMBOL_GPL vmlinux 0xea35e41a ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +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 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 0xec6c358b mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xec94ab39 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xecad0f15 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0xece16896 ide_cd_expiry +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 0xee0278a1 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0xee37e0c2 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xeed18b87 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xeedeac65 usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xef64fd28 ata_cable_40wire +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 0xefa68ddd ring_buffer_read +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 0xf06c140c ide_do_test_unit_ready +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 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 0xf20ce254 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0xf272bd5b __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xf295113a fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xf2955a7b device_add +EXPORT_SYMBOL_GPL vmlinux 0xf29a72cc bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0xf29eb08d usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0xf2a034a1 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xf2b33162 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xf2da3cec platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xf302233e disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf331a340 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xf33571f9 sff_dma_ops +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf3a2c3ac ide_intr +EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held +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 0xf4e4b7f0 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0xf51be62e disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xf52db469 __create_workqueue_key +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 0xf58628b5 task_active_pid_ns +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 0xf5df6526 kobject_uevent_env +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 0xf67dddc9 ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf6ca6110 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6ebbe46 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xf731e3be ide_set_media_lock +EXPORT_SYMBOL_GPL vmlinux 0xf73cae50 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xf756d227 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0xf7714bda power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xf77642a7 perf_event_create_kernel_counter +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 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8b55908 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf916be69 register_net_sysctl_table +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 0xf9c09d67 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa4376e1 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xfa44d8be ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0xfa699fa6 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0xfa9dd504 timecompare_transform +EXPORT_SYMBOL_GPL vmlinux 0xfaa85635 ide_end_rq +EXPORT_SYMBOL_GPL vmlinux 0xfab60503 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xfabfbc53 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xfac84de7 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0xfafa3388 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfb0069cc tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb3fe38a bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0xfb86c3a8 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfb88ca24 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xfbc0499a dm_put +EXPORT_SYMBOL_GPL vmlinux 0xfbf50ad6 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xfbf9a3f3 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +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 0xfd07befa led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfd1c231c driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfd3d0de5 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0xfd6827cc __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0xfd9302e7 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xfdb49a56 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xfddbf82a ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfdf5a322 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xfe2c4789 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xfe7c4b67 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0xfe7ee8ae usb_deregister_dev +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 0xfee01030 ide_set_pio +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff345c9b fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0xff4c4a07 ide_build_dmatable +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 0xffb2cd9b tty_mode_ioctl --- linux-2.6.35.orig/debian.master/abi/2.6.35-28.49/powerpc/powerpc64-smp +++ linux-2.6.35/debian.master/abi/2.6.35-28.49/powerpc/powerpc64-smp @@ -0,0 +1,10515 @@ +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 0x958d8e3c suni_init +EXPORT_SYMBOL drivers/block/loop 0x49e35c03 loop_register_transfer +EXPORT_SYMBOL drivers/block/loop 0xbfee3ad5 loop_unregister_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 0x0114bce3 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0467b0f6 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x056defc9 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x05b6bb21 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x05c09d01 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x07b2548e drm_mode_detachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x07be9ca8 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ac30083 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0b1f1faa drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e3bcc58 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e7339e4 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x116f42a7 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x126c9ece drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x185a3ea1 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1aeed46b drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c2ac3fd drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d705eff drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e46c2ed drm_encoder_init +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 0x1efce34c drm_core_reclaim_buffers +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 0x1fb6c77d drm_mode_duplicate +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 0x2214a6a4 drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x225d78f9 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x23d81bf2 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26911e5c drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26cce2e0 drm_lock_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x29d3846f drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b3b6a11 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c908368 drm_i_have_hw_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e95dfa0 drm_framebuffer_cleanup +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 0x2f01f13f drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32da931d drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32efa039 drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36172ee6 drm_get_drawable_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3880d04e drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x396ba8cc drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c73f0ef drm_lock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3cd9fec7 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ef888cf drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41653e6a drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41726224 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41d207cc drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4395a8c4 drm_sg_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44428ddf drm_agp_chipset_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4575bc3c drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4686c709 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x48b3abaa drm_get_resource_start +EXPORT_SYMBOL drivers/gpu/drm/drm 0x497c469f drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4acc8eb6 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c627b20 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4eb1bf47 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x52ea341e drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53c2a701 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55a45060 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55c79e94 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5667892f drm_mode_connector_update_edid_property +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 0x58c3c2af drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ac582bd drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ae31748 drm_mode_attachmode_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b65ba7f drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c82042d drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x626d3f3f drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x651a03e3 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66f67c74 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b589b09 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6edd8d59 drm_get_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f97dcd6 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74d2264b drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77e63fe1 drm_i2c_encoder_destroy +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 0x794127be drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7bb9bdf5 drm_rmmap +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 0x7daef9db drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fd7a785 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x80fca0c8 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x84fd5af1 drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x88cfe455 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x89f59f06 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a3d4779 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e03b7d6 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e62fb19 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91a70a85 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92c44fdb drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x93617bf3 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9389509e drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9561c765 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9bd06f17 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9bed6b8c drm_get_resource_len +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6cbf507 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa70b75fe drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8a80aac drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab14ec46 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaffcd515 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb09d3acf drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5221373 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb969e3f0 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9c55980 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd70d164 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc51127d0 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc54a8150 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc72c848a drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc879132b drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8c39410 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc922a3d1 drm_cvt_mode +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 0xcdf2eff4 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf596a08 drm_mm_put_block +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 0xd63d6819 drm_core_get_map_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd6a2b8d3 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd9a60e54 drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdaf27b22 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde178203 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde5edfc9 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0c109ab drm_agp_free +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 0xe5bdce7e drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6d025be drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6e05660 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6f68f28 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb310ebe drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec462ff1 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xecd48ccf drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed71dfa3 drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeedd64c7 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefc59742 drm_mode_create_dvi_i_properties +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 0xf42d5284 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4b57776 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf5c6418a drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf74f336f drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0056f44f i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x08040fe1 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0b8cec17 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1306e71e drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x14852aa4 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x31e62edf drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34dba4a8 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3704bef0 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3eb0abba drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3f0f1537 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4e1b0988 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x598a72dc drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5db9af04 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x62956a06 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7bba6e86 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8a10b6b7 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8fbe47d3 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9580243f drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x99efcde1 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9ccf1667 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa1e7dfe2 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa409e2af drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb98a0709 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbdd34159 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbdd603b2 drm_helper_crtc_in_use +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 0xc8fcf470 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd1c48050 drm_kms_helper_poll_init +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 0xf5066d80 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 0x069e3bb5 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x19cd6adf rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x354cfba1 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x44edb4b8 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x59877230 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x778ea2cc rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x86653c7c rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8ce81466 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa0b03087 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa189450d rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa886aae4 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xae2cd33c rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb64ca50f rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcb4e17d3 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd52d8e7b rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd56b4e6a rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe8d07f45 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfb0beb52 rdma_destroy_id +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 0x15e05f16 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0x31ef15f9 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0x98ab7816 dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0xbe151542 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x0d19a7e4 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x58d6c78f dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x955918b0 dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0xb33a79ea dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0xbb021537 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0xf6b45706 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/md-mod 0x0e1f2f43 bitmap_start_sync +EXPORT_SYMBOL drivers/md/md-mod 0x0f3c8c31 bitmap_endwrite +EXPORT_SYMBOL drivers/md/md-mod 0x35812413 md_integrity_register +EXPORT_SYMBOL drivers/md/md-mod 0x36a08167 bitmap_close_sync +EXPORT_SYMBOL drivers/md/md-mod 0x4203c034 mddev_congested +EXPORT_SYMBOL drivers/md/md-mod 0x4a965e43 register_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0x52d309dd md_check_recovery +EXPORT_SYMBOL drivers/md/md-mod 0x5abf87de md_barrier_request +EXPORT_SYMBOL drivers/md/md-mod 0x5b98193e md_unregister_thread +EXPORT_SYMBOL drivers/md/md-mod 0x6bf7f87a md_register_thread +EXPORT_SYMBOL drivers/md/md-mod 0x9506c664 bitmap_unplug +EXPORT_SYMBOL drivers/md/md-mod 0xa65b86df md_write_start +EXPORT_SYMBOL drivers/md/md-mod 0xa770e5ed bitmap_startwrite +EXPORT_SYMBOL drivers/md/md-mod 0xaf40f715 md_error +EXPORT_SYMBOL drivers/md/md-mod 0xb7a2dd6f bitmap_cond_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0xb93ee8ce bitmap_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0xc34e3478 md_set_array_sectors +EXPORT_SYMBOL drivers/md/md-mod 0xcc8cc2be md_done_sync +EXPORT_SYMBOL drivers/md/md-mod 0xcd392b7a md_wait_for_blocked_rdev +EXPORT_SYMBOL drivers/md/md-mod 0xdbf6a296 md_integrity_add_rdev +EXPORT_SYMBOL drivers/md/md-mod 0xe022310a unregister_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0xec34e849 md_write_end +EXPORT_SYMBOL drivers/md/md-mod 0xf52fa07f md_check_no_bitmap +EXPORT_SYMBOL drivers/md/md-mod 0xf80c2674 md_wakeup_thread +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 0x439e3a32 dib7000p_i2c_enumeration +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 0xdbfa1a06 dib7000p_attach +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 0x034e0f0c mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x08a8db0c mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x12ae3fd9 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x233ffbd3 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x37f756f0 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3d3c257d mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3da6a79d mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x413fa402 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x45d0e762 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4857cdc9 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x549bd1eb mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x54bc1acc mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5e7fe64c mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6720056c mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6df2b887 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9dbcd2f4 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9eb53377 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa10e7608 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa6992ab0 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa6be13cf mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc3ab0b46 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd29b98da mpt_suspend +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 0xde45e76a mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe10ef242 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe63d6a71 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf6b4759b mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf883792b mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfb61b97c mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfd7894c1 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1224c6f9 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1a7f8e1d mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x28d7c07d mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x38d9e1ff mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3da966c6 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4620641a mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4c43b3c0 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4d91e56d mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x50badbe1 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x50e4de71 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5c5674d6 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x62e8099e mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x68b15ea3 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6d833ccc mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6f24b464 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7bc4d4da mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7d09fcee mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x81f4cada mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x872ffec4 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x88d966ed mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x99649a2d mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa11fd66e mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdd1b7786 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdeb3cb9d mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe943cdc0 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf17bbe0e mptscsih_scandv_complete +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 0x05b4cfc7 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 0xe7647e19 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x 0x521b6616 bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x614b5c65 cnic_register_driver +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x0dd10ec4 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x139935a4 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3d8ea225 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7c690175 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7e3b6323 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8159db76 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8d99d9d9 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa76cb030 cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb36644ac cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb4eb904b t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe190b1a9 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe5bafc84 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xee884cce cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xfb82b4e9 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xfe7d34d7 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xff89de6a cxgb3_alloc_stid +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 0xa51b4ad3 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa6979383 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xc3c7137a cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xcb0202c9 cxgb4_port_chan +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 0x159e1e4b sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x18f0787d sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1ec11024 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3132c489 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x76edeec3 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9b067d0f sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xbd5f64bd sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xbfe59af8 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd24f0854 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xfea0ebc3 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mii 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 0x155c5462 ppp_channel_index +EXPORT_SYMBOL drivers/net/ppp_generic 0x1e3d1abe ppp_dev_name +EXPORT_SYMBOL drivers/net/ppp_generic 0x3cdc401f ppp_input_error +EXPORT_SYMBOL drivers/net/ppp_generic 0x4d18c625 ppp_register_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x5b24eb9b ppp_unit_number +EXPORT_SYMBOL drivers/net/ppp_generic 0x6a66c8c5 ppp_unregister_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x7322307b ppp_input +EXPORT_SYMBOL drivers/net/ppp_generic 0x84f3cec6 ppp_output_wakeup +EXPORT_SYMBOL drivers/net/ppp_generic 0x90f99bb2 ppp_register_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0xacf4ecec ppp_unregister_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0xba6e1f2f ppp_register_net_channel +EXPORT_SYMBOL drivers/net/pppox 0x1bd8debf register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0x235a8f89 pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0x5cca2c9d pppox_unbind_sock +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 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 0x0f4bed92 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1ec08756 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1efab935 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2a030180 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x321b3678 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3e9a4301 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4716eb7f libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4b5396a5 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6d85c791 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x759b3f86 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8d635f66 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x977e78a8 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9ab0dde2 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9f91c6eb libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb2fafd5e libipw_is_valid_channel +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 0xc7d7bf85 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfb4829a4 libipw_xmit +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 0x1cfe8206 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x27d716d9 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x60027ff2 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa475c9b4 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa86d802c fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb8d05e62 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xbab9718d fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x062352c8 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x08a02cfc libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0abc6303 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x11b3a7b5 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x14a53fee fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x150c117d fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x230f7a68 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x257f1bca fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x305e6d3d fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x31d47f79 fc_exch_mgr_free +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 0x3c4dec6f fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4a9babf9 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5adf6c48 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5b5a9dfa fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5e423137 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5f1cdea5 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6828eaad fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6b604cdb fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x74269e6a fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7ab81123 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x85a25c6f fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x87c1b984 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9706db7b fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa6bd0a06 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa6db921b fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaa9dcf90 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc651efb7 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc7b3312c fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc9e73111 fc_eh_device_reset +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 0xd220b19b fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdbd2ba35 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe14bb439 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe890e87d fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe91dbe62 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe9e758c5 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf09e9f69 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfa6f5e0e fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfaf71d24 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfc57c47e fc_lport_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 0x7ac1f046 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x021d3951 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x072fe75a osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0b0a1296 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x10b9e7f8 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x26d17c97 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2929a693 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3374b7ba osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3c7e06a0 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x479b3db6 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5de55698 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x645c97e4 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x65d4f699 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6c6c7f8a osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6d63d6b6 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x749090fe osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x789db69a osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7a23b37d osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7d965ce7 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7e8b53e2 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9615e736 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb16b12c5 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb414aeed osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xba198e01 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc4cf153d osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcf74e3be osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcfa47dd8 osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcfadd77e osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd1aac3b5 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd212bbc6 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd54c4b9d osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf405fb67 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfba4ce83 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/osd 0x10b86a7f osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x146c4f44 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x3ea638b7 osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x862751f0 osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0xca3c46e6 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0xfde80b8d osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1e4d2882 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x29427ada qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xa7e58287 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xc3cf6f4a qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xcc7092a6 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/qlogicfas408 0xfaf2a9ed qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/raid_class 0x10be20f1 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0x1ae50410 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x47119e3a raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x05970a44 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x346790aa fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x49bc32ed scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4ea2d3f8 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x57007efd fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6912d2d2 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8a28ced9 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9c3e6212 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa3fcb06c fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xac6aef10 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xcc2884ca scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xdaf67f66 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xff48e943 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0a89bc6b sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x16260009 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x197879a5 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x245fea69 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x391a69dd sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3bd4acbc sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x48eb6aea sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4ba77535 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x53bf06ae scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x565d9328 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x581eeda3 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x68eb54de sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6c147c84 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6fda6085 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x73e221e6 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7b872194 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x85175bda sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9bf5e834 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaeac5d95 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbc8b1157 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc3033f91 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc8d4b60d sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcbc3ec67 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcc9765e7 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd3f86276 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd694e751 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x424c4d1c spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x7bfe3e63 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x7f841374 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x86117624 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xf057602a spi_attach_transport +EXPORT_SYMBOL drivers/serial/8250 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL drivers/serial/8250 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL drivers/serial/8250 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL drivers/serial/8250 0xf9336e53 serial8250_register_port +EXPORT_SYMBOL drivers/serial/serial_core 0x1e4c4c7b uart_match_port +EXPORT_SYMBOL drivers/serial/serial_core 0x20ce742a uart_register_driver +EXPORT_SYMBOL drivers/serial/serial_core 0x4c2310cb uart_resume_port +EXPORT_SYMBOL drivers/serial/serial_core 0x546d7318 uart_get_baud_rate +EXPORT_SYMBOL drivers/serial/serial_core 0x5903c048 uart_write_wakeup +EXPORT_SYMBOL drivers/serial/serial_core 0xc29e2746 uart_suspend_port +EXPORT_SYMBOL drivers/serial/serial_core 0xc7898159 uart_update_timeout +EXPORT_SYMBOL drivers/serial/serial_core 0xc9504f24 uart_get_divisor +EXPORT_SYMBOL drivers/serial/serial_core 0xd71d3e8b uart_remove_one_port +EXPORT_SYMBOL drivers/serial/serial_core 0xdbc6deb5 uart_add_one_port +EXPORT_SYMBOL drivers/serial/serial_core 0xdd01be7c uart_unregister_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 0x2dd3cb2c ieee80211_rx_mgt_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 0x44ea63fc ieee80211_rx_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 0xa0d62cd0 ieee80211_txb_free_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 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 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/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 0x1b36ac03 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x374b4422 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4f4b1874 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6b9b7d4a usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x708124b9 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x763906fa usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x77c42f71 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x92587685 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9292cf38 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa27ba0c7 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb91e14eb usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xbf1a29c2 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdb14cd08 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe279e018 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x2ec24a35 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x9b810a0d 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 0x545bb4ed w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xcccb93c1 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 0x64d0ea2f atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x890c3cb5 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x97c90764 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xc0222265 alloc_ltalkdev +EXPORT_SYMBOL net/atm/atm 0x0effa1f3 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x206dcbb0 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x26edfaf2 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x425d5250 atm_charge +EXPORT_SYMBOL net/atm/atm 0x67b6a2b0 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x6abb2ae3 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x6f34daa5 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x78f984dd atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x7d1078ec 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 0xb63f5b56 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xca87b453 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xde510be3 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/ax25/ax25 0x07965aa2 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x1d2b167f ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x2f9007c2 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x645f1e60 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x6e04886f ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x83c23777 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x98391d4f ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xd68a9a18 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xe6615db7 ax25_linkfail_release +EXPORT_SYMBOL net/bluetooth/bluetooth 0x052a8f70 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x12de26bf bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1616398b bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x233046d1 hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x320c42e4 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3eec8946 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x58f1ee7b hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x58f51978 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6aae8716 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6d7db9c8 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x785945ae hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7c8f353c hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7c9e549b hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x95d6eb7a bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9ea98593 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb0fd85e9 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb37850f0 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc067cd13 hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc419779c hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc45f862d hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc7020c23 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc9f0c3d5 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcb7e1514 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xce216edd hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd65d72e9 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd7632453 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdb99cb8e hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe02f7ae2 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf38d4846 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf9cdb248 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfb805bcf hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfc5eeea2 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x7165bc5d br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xb3dab62e ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd69a062f ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xefc084f0 ebt_do_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 0x0a6ff636 can_rx_register +EXPORT_SYMBOL net/can/can 0x2c2759a5 can_proto_register +EXPORT_SYMBOL net/can/can 0x30523935 can_proto_unregister +EXPORT_SYMBOL net/can/can 0x338e663e can_send +EXPORT_SYMBOL net/can/can 0xc7c01857 can_rx_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x43bd3582 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5d083dd6 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x6a1e32e9 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x8e02de4d ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x93e397d8 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x9687a154 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x9db133b6 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xaced9b61 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0xbb64f8ad ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xdc6abe22 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe6ade638 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xee1c6787 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xfaec0fea wpan_phy_register +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x19a65e41 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x50324ca9 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xeb2a50b3 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x30594b88 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x8d3c1589 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xf4288b63 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x0e559ef7 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x5b3e5111 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x6067e983 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x6e51f572 nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x764b7cf2 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x9b05ef77 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xd4394851 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/tunnel4 0x7ca26be3 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xc33b3cce xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/ipv6 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL net/ipv6/ipv6 0x25812ef4 inet6_register_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x2a1fa379 ip6_xmit +EXPORT_SYMBOL net/ipv6/ipv6 0x37fd62f9 ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x396b86e7 compat_ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x41e0bb7e inet6_release +EXPORT_SYMBOL net/ipv6/ipv6 0x43937685 inet6_getname +EXPORT_SYMBOL net/ipv6/ipv6 0x4b22450b xfrm6_rcv_spi +EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0x54c3f0a1 inet6_bind +EXPORT_SYMBOL net/ipv6/ipv6 0x579919b5 icmpv6_send +EXPORT_SYMBOL net/ipv6/ipv6 0x5d088df7 xfrm6_rcv +EXPORT_SYMBOL net/ipv6/ipv6 0x5e64c6c7 compat_ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x646505a1 xfrm6_prepare_output +EXPORT_SYMBOL net/ipv6/ipv6 0x6ff91c81 ip6_route_me_harder +EXPORT_SYMBOL net/ipv6/ipv6 0x71d09565 ipv6_chk_prefix +EXPORT_SYMBOL net/ipv6/ipv6 0x81ecf70d nf_ip6_checksum +EXPORT_SYMBOL net/ipv6/ipv6 0x88059aaa xfrm6_input_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x8e866e46 inet6_del_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x8ee15cdc ipv6_dev_get_saddr +EXPORT_SYMBOL net/ipv6/ipv6 0x9305e6fc ndisc_mc_map +EXPORT_SYMBOL net/ipv6/ipv6 0xa2d69a7c ipv6_push_nfrag_opts +EXPORT_SYMBOL net/ipv6/ipv6 0xa65609c9 ip6_frag_init +EXPORT_SYMBOL net/ipv6/ipv6 0xa8ab9351 inet6_unregister_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0xae1d2571 ndisc_send_skb +EXPORT_SYMBOL net/ipv6/ipv6 0xb47de610 ip6_route_output +EXPORT_SYMBOL net/ipv6/ipv6 0xb579c9e9 inet6_ioctl +EXPORT_SYMBOL net/ipv6/ipv6 0xc35091a9 ip6_frag_match +EXPORT_SYMBOL net/ipv6/ipv6 0xc730dfce inet6_add_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0xcbfc991c ipv6_chk_addr +EXPORT_SYMBOL net/ipv6/ipv6 0xcd07fc76 ndisc_build_skb +EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0xd982f6f8 ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0xe690b8fd __ipv6_isatap_ifid +EXPORT_SYMBOL net/ipv6/ipv6 0xf1dc4879 in6_dev_finish_destroy +EXPORT_SYMBOL net/ipv6/ipv6 0xfc36c836 rt6_lookup +EXPORT_SYMBOL net/ipv6/ipv6 0xfed266d6 xfrm6_find_1stfragopt +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x552f8add ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x754915a8 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xc45c3f2a ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xeb21be51 ip6t_register_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x483a9d57 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0x72a40f31 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x996038e9 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9c5fb73d xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xa10117eb xfrm6_tunnel_free_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 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 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 0x3ee91c1d irda_device_set_media_busy +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 0x4a0eb0d3 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x52fdc0e9 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x57327352 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x601bda46 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x613e4171 irlap_close +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 0xb75c7844 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc3be1fb4 iriap_open +EXPORT_SYMBOL net/irda/irda 0xc68e43be irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0xc6cf1328 alloc_irdadev +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 0xf442f2dc irlap_open +EXPORT_SYMBOL net/irda/irda 0xf4c7c07e irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0xf5876b95 hashbin_remove_this +EXPORT_SYMBOL net/l2tp/l2tp_core 0x0dca7bc7 l2tp_recv_common +EXPORT_SYMBOL net/l2tp/l2tp_core 0x7fc460e4 l2tp_tunnel_destruct +EXPORT_SYMBOL net/lapb/lapb 0x040fef8a lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x668c58a3 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x78f4f314 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x9ae79f8d lapb_register +EXPORT_SYMBOL net/lapb/lapb 0xcc2ae00e lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0xd88f746f lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0xdfb5d348 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xffe04d40 lapb_connect_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 0x0f043d00 ip_vs_skb_replace +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1e60ca4c ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x35e2fe2e ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x423546b8 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9ed8ce40 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa64a2f96 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xad61d1db unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xddded770 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe5f370af ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf9448aa4 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf96969b2 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 0x0e853198 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x1fc5a0e5 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x3c2614d6 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x3d680fd3 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x575ef96a xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x7e991c31 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x9ee51cfb xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xa71a3a3d xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xdb2bc5d6 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xf610f987 xt_register_matches +EXPORT_SYMBOL net/phonet/phonet 0x127003e6 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0xa51389da phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0xa55f1932 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xb87ef45e phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0xc675e2b7 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xc9980b87 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0xea600d22 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0xeb25a2c3 phonet_proto_unregister +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0315c565 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x09cd060e key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1c87656e rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x38c8829b rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3dd3e046 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6035a8c8 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7b3d49da rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8007f203 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8784d2d7 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x987a3669 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa5ae20fb rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb3b42a35 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdafe457a rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf5fe83c6 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xfe5078ea rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/sunrpc/sunrpc 0x08f2d978 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 0x8e42f0ba wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0xa1fba873 wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x03dcffd0 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x04b2075c __ieee80211_get_channel +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 0x30e50f13 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x353a35bf wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x36b7f529 cfg80211_classify8021d +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 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6babe5cc cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x739ed4a5 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 0x8f832bcf ieee80211_amsdu_to_8023s +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 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 0xc446a7d6 ieee80211_data_to_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 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 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 0x001b2758 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x00405348 sock_no_sendpage +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 0x00c7b105 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x0122f95e _lv1_get_spe_irq_outlet +EXPORT_SYMBOL vmlinux 0x013b7a3a single_release +EXPORT_SYMBOL vmlinux 0x01446f4f tty_port_close_start +EXPORT_SYMBOL vmlinux 0x0150817b llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x0158f2cf scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x0178d18c cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x017b1a5a tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x018d3027 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x018d9919 _lv1_set_lpm_interrupt_mask +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x019301bd scsi_host_put +EXPORT_SYMBOL vmlinux 0x0198d079 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01c44562 padata_free +EXPORT_SYMBOL vmlinux 0x01eaf783 init_timer_key +EXPORT_SYMBOL vmlinux 0x020d18d7 _lv1_set_lpm_debug_bus_control +EXPORT_SYMBOL vmlinux 0x022da950 current_fs_time +EXPORT_SYMBOL vmlinux 0x02466138 bdev_read_only +EXPORT_SYMBOL vmlinux 0x024f5ca5 kobject_set_name +EXPORT_SYMBOL vmlinux 0x0253f676 kmem_cache_create +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x026d356e backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x027d5499 _lv1_did_update_interrupt_mask +EXPORT_SYMBOL vmlinux 0x02807e77 vio_unregister_device +EXPORT_SYMBOL vmlinux 0x028651db xfrm_policy_unregister_afinfo +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 0x02ca5b0d dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x031dc65e pasemi_dma_free_chan +EXPORT_SYMBOL vmlinux 0x032b0734 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x038a00a1 neigh_destroy +EXPORT_SYMBOL vmlinux 0x03975d68 idr_find +EXPORT_SYMBOL vmlinux 0x039b3163 follow_pfn +EXPORT_SYMBOL vmlinux 0x03b34604 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03e38d37 i2c_bit_add_numbered_bus +EXPORT_SYMBOL vmlinux 0x03e8d67b pci_get_subsys +EXPORT_SYMBOL vmlinux 0x03f36ef8 iget5_locked +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04074f48 ioremap +EXPORT_SYMBOL vmlinux 0x040a6973 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x040adf9c block_write_end +EXPORT_SYMBOL vmlinux 0x04153b34 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x0423757c __locks_copy_lock +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 0x04799797 noop_llseek +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x048d899b scsi_ioctl +EXPORT_SYMBOL vmlinux 0x048fe2a8 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x04d63f22 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x04f81bea mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x0514aec6 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x052e1a5a ___pskb_trim +EXPORT_SYMBOL vmlinux 0x0530dede _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x0540b32a cpu_core_map +EXPORT_SYMBOL vmlinux 0x0559a86b sock_no_connect +EXPORT_SYMBOL vmlinux 0x055a93a9 phy_disconnect +EXPORT_SYMBOL vmlinux 0x0567a99a ide_geometry_proc_fops +EXPORT_SYMBOL vmlinux 0x057d35b7 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x058700ab vfs_readdir +EXPORT_SYMBOL vmlinux 0x059ebf2a pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x05a514a1 _insl_ns +EXPORT_SYMBOL vmlinux 0x05e42f28 register_nls +EXPORT_SYMBOL vmlinux 0x05f3d95f gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x060445ab netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x06426a5a bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x0649d1b4 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x0665028b i2c_transfer +EXPORT_SYMBOL vmlinux 0x066a7f0a commit_creds +EXPORT_SYMBOL vmlinux 0x06762ebb netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x068bdaf4 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x06937f50 dqput +EXPORT_SYMBOL vmlinux 0x06a485f2 __krealloc +EXPORT_SYMBOL vmlinux 0x06b2c8c5 set_irq_chip +EXPORT_SYMBOL vmlinux 0x06bbb24a mempool_resize +EXPORT_SYMBOL vmlinux 0x06e04356 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x07004558 scsi_scan_host +EXPORT_SYMBOL vmlinux 0x071c0f85 __ide_dma_bad_drive +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x0764c1ae pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x076ab496 vga_tryget +EXPORT_SYMBOL vmlinux 0x07898462 sock_update_classid +EXPORT_SYMBOL vmlinux 0x078ca0ed compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong +EXPORT_SYMBOL vmlinux 0x07a4c2ed skb_kill_datagram +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 0x07b74bbc ps3_dma_region_create +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x07e98934 read_cache_page +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 0x0805c0a4 sock_wfree +EXPORT_SYMBOL vmlinux 0x08102832 blk_unplug +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x083469f9 bdi_init +EXPORT_SYMBOL vmlinux 0x08565a34 ps3_sb_event_receive_port_destroy +EXPORT_SYMBOL vmlinux 0x086d0a1a iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x0888d906 lookup_hash +EXPORT_SYMBOL vmlinux 0x08a55531 file_update_time +EXPORT_SYMBOL vmlinux 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL vmlinux 0x08f6d3cf jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x08fa8e6f genphy_suspend +EXPORT_SYMBOL vmlinux 0x09122394 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x092b3b48 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x092c0249 set_security_override +EXPORT_SYMBOL vmlinux 0x092ce383 netlink_unicast +EXPORT_SYMBOL vmlinux 0x09382c1d bio_split +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x095afa08 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x095b3d2a scsi_execute +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 0x099b5369 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x09a574d5 arp_tbl +EXPORT_SYMBOL vmlinux 0x09ad427c gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x09bb5740 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x09c484c5 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09d61233 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x09ded951 keyring_clear +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 0x0a2f5959 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x0a3d0644 cpu_online_mask +EXPORT_SYMBOL vmlinux 0x0a4d622e vio_disable_interrupts +EXPORT_SYMBOL vmlinux 0x0a6e47e9 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x0ab30a9e blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x0ab7949e up +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0ad86caf load_nls_default +EXPORT_SYMBOL vmlinux 0x0ae63c84 tcp_ioctl +EXPORT_SYMBOL vmlinux 0x0af23fda unregister_snap_client +EXPORT_SYMBOL vmlinux 0x0af940cb pcim_enable_device +EXPORT_SYMBOL vmlinux 0x0b062b0f sock_create_lite +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b889cc6 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x0bddb4d3 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x0bdf5e9b tr_type_trans +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 0x0c2ddef0 __invalidate_device +EXPORT_SYMBOL vmlinux 0x0c43b5c1 clocksource_register +EXPORT_SYMBOL vmlinux 0x0c616144 bd_claim +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c94a3e2 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cd11438 compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x0d035806 prepare_kernel_cred +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 0x0d84396f pci_map_rom +EXPORT_SYMBOL vmlinux 0x0da019ae redraw_screen +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dd4fcb9 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x0dfec21e security_path_link +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e8f30f6 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x0e9aafb9 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x0ebacab8 sock_no_getname +EXPORT_SYMBOL vmlinux 0x0ec97b14 mapping_tagged +EXPORT_SYMBOL vmlinux 0x0ecbf72a nf_getsockopt +EXPORT_SYMBOL vmlinux 0x0ed336dc vm_insert_page +EXPORT_SYMBOL vmlinux 0x0efb8354 security_file_mmap +EXPORT_SYMBOL vmlinux 0x0f0ca439 __bread +EXPORT_SYMBOL vmlinux 0x0f0ceeb5 get_sb_nodev +EXPORT_SYMBOL vmlinux 0x0f7761c6 scsi_unblock_requests +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 0x0fe0fda7 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x0fee9dab search_binary_handler +EXPORT_SYMBOL vmlinux 0x0ffc3bea elv_queue_empty +EXPORT_SYMBOL vmlinux 0x1004ee6e sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x103f58b1 vfs_create +EXPORT_SYMBOL vmlinux 0x105f43bc pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x108784fb blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint +EXPORT_SYMBOL vmlinux 0x1090abff pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x10a6c807 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x10b0b23c neigh_sysctl_unregister +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 0x11396b73 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x114ce43f ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x115b1136 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x115c7a35 pcibus_to_node +EXPORT_SYMBOL vmlinux 0x1162a2c2 get_unmapped_area_prot +EXPORT_SYMBOL vmlinux 0x11632f10 insert_inode_locked4 +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 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11a63bcf unregister_quota_format +EXPORT_SYMBOL vmlinux 0x11c96496 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x11d1e91f phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x11dc36c8 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x11f9f3f2 load_nls +EXPORT_SYMBOL vmlinux 0x12055169 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x125e7ee4 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x127ad531 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x12928179 mac_find_mode +EXPORT_SYMBOL vmlinux 0x1298c6c5 dquot_acquire +EXPORT_SYMBOL vmlinux 0x12a22cef dquot_alloc +EXPORT_SYMBOL vmlinux 0x12b21b14 scsi_init_io +EXPORT_SYMBOL vmlinux 0x12c822de send_sig +EXPORT_SYMBOL vmlinux 0x12cb6622 _lv1_map_device_dma_region +EXPORT_SYMBOL vmlinux 0x12e5ef0c rtas_set_power_level +EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x12fc68db cfb_fillrect +EXPORT_SYMBOL vmlinux 0x13071698 d_invalidate +EXPORT_SYMBOL vmlinux 0x131d1b79 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x1329651f scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x132e7cde fd_install +EXPORT_SYMBOL vmlinux 0x134183a8 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x1362b06b nf_register_hook +EXPORT_SYMBOL vmlinux 0x138025ab tcp_proc_register +EXPORT_SYMBOL vmlinux 0x13873c8b inet_put_port +EXPORT_SYMBOL vmlinux 0x13938ed3 simple_setattr +EXPORT_SYMBOL vmlinux 0x139e3439 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x13a1a3b5 blk_init_queue +EXPORT_SYMBOL vmlinux 0x13a38b35 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x13ac5994 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x13c2d2ad ethtool_ntuple_flush +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 0x13f8ef8a scsi_block_requests +EXPORT_SYMBOL vmlinux 0x14119a46 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x141fe5fd pasemi_read_iob_reg +EXPORT_SYMBOL vmlinux 0x142ca950 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x14607b8c soft_cursor +EXPORT_SYMBOL vmlinux 0x149ac111 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x14a1f03c matroxfb_DAC_in +EXPORT_SYMBOL vmlinux 0x14e0a77e tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x14e8f6bd sk_alloc +EXPORT_SYMBOL vmlinux 0x1512e2d3 misc_deregister +EXPORT_SYMBOL vmlinux 0x151592c4 _lv1_invalidate_htab_entries +EXPORT_SYMBOL vmlinux 0x15307cd9 phy_detach +EXPORT_SYMBOL vmlinux 0x1542e283 ps2_init +EXPORT_SYMBOL vmlinux 0x154949b2 kill_fasync +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x155a7659 clear_user_page +EXPORT_SYMBOL vmlinux 0x1566dc03 of_platform_device_create +EXPORT_SYMBOL vmlinux 0x156ad18a posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x15936a4a pagecache_write_end +EXPORT_SYMBOL vmlinux 0x15a8d0a4 submit_bio +EXPORT_SYMBOL vmlinux 0x15aa0289 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x15c7d8a0 netpoll_poll +EXPORT_SYMBOL vmlinux 0x15ff8f00 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x160bd45c rtas_token +EXPORT_SYMBOL vmlinux 0x1611c85f tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x161c83e1 of_phy_connect +EXPORT_SYMBOL vmlinux 0x162840f9 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x1653e77c set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x166f9f07 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x16a8b470 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x16b2bf4f tty_port_hangup +EXPORT_SYMBOL vmlinux 0x16d4de7a of_device_uevent +EXPORT_SYMBOL vmlinux 0x16f1dc01 scsi_put_command +EXPORT_SYMBOL vmlinux 0x16f2e2be pci_request_region +EXPORT_SYMBOL vmlinux 0x17064314 compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x170dcf97 find_or_create_page +EXPORT_SYMBOL vmlinux 0x17185d8a of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0x173068cc scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x1743414f __debugger_fault_handler +EXPORT_SYMBOL vmlinux 0x17648396 dev_base_lock +EXPORT_SYMBOL vmlinux 0x1775c13c scsi_device_get +EXPORT_SYMBOL vmlinux 0x17ab7fb3 keyring_search +EXPORT_SYMBOL vmlinux 0x17c85a66 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x17cb8c79 _lv1_read_htab_entries +EXPORT_SYMBOL vmlinux 0x17daea2f jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x17db881d in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x17f5ce12 kmem_cache_name +EXPORT_SYMBOL vmlinux 0x181ca521 macio_unregister_driver +EXPORT_SYMBOL vmlinux 0x182f50af _lv1_open_device +EXPORT_SYMBOL vmlinux 0x183bfab4 generic_file_aio_read +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 0x188db5e2 clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x189b6bac memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x18a42e2b blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x18b6b7b2 skb_recv_datagram +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 0x18f34a63 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x1929f78b compat_mc_getsockopt +EXPORT_SYMBOL vmlinux 0x1935c015 fb_blank +EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x193f3cd6 dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x19413345 i2c_verify_client +EXPORT_SYMBOL vmlinux 0x197f6fb0 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x19824754 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x199ec4fb arch_spin_unlock_wait +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x199f4973 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x19a53daa __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x19b1061f security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x19c968d1 pasemi_dma_start_chan +EXPORT_SYMBOL vmlinux 0x19c9f5e5 udp_proc_unregister +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 0x1a19ca44 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x1a2f6945 __next_cpu +EXPORT_SYMBOL vmlinux 0x1a3f0766 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x1a53d18e bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x1a61829b matroxfb_vgaHWinit +EXPORT_SYMBOL vmlinux 0x1a91663d pasemi_dma_free_buf +EXPORT_SYMBOL vmlinux 0x1a92ba59 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in +EXPORT_SYMBOL vmlinux 0x1ab0e2ad simple_pin_fs +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b152b3e kthread_bind +EXPORT_SYMBOL vmlinux 0x1b351c2e consume_skb +EXPORT_SYMBOL vmlinux 0x1b5d5432 ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b8295c8 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b8e7e2d tty_mutex +EXPORT_SYMBOL vmlinux 0x1b8fbf4f ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x1b9317b2 dquot_quota_sync +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 0x1bc4ff03 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x1bd08e40 open_by_devnum +EXPORT_SYMBOL vmlinux 0x1beee32b ide_dump_status +EXPORT_SYMBOL vmlinux 0x1beeeb90 cdev_index +EXPORT_SYMBOL vmlinux 0x1bfec830 __iounmap_at +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 0x1c5b2c15 pmu_wait_complete +EXPORT_SYMBOL vmlinux 0x1c757164 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x1c7822ba bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check +EXPORT_SYMBOL vmlinux 0x1ca9f75e input_get_keycode_big +EXPORT_SYMBOL vmlinux 0x1cb63ff6 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x1cc2a1b8 matrox_mystique +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cfe9ba8 skb_gso_segment +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d4750bc _lv1_stop_lpm +EXPORT_SYMBOL vmlinux 0x1da05438 bio_integrity_free +EXPORT_SYMBOL vmlinux 0x1db240f5 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd45512 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1ddefc18 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x1df1bb24 bdi_destroy +EXPORT_SYMBOL vmlinux 0x1dfa4564 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x1e14a2e2 xrlim_allow +EXPORT_SYMBOL vmlinux 0x1e522466 key_type_keyring +EXPORT_SYMBOL vmlinux 0x1e5592b8 register_netdev +EXPORT_SYMBOL vmlinux 0x1e593987 dm_io +EXPORT_SYMBOL vmlinux 0x1e6164b5 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x1e64b485 __netif_schedule +EXPORT_SYMBOL vmlinux 0x1e69f455 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e6fe6f1 idr_init +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ed4cffe ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f13c161 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x1f1ce2c4 textsearch_register +EXPORT_SYMBOL vmlinux 0x1f618318 input_grab_device +EXPORT_SYMBOL vmlinux 0x1f646b76 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x1f7cd888 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x1f86f73d pci_get_class +EXPORT_SYMBOL vmlinux 0x1f8cf5c5 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x1f946b44 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x1fb35163 vc_resize +EXPORT_SYMBOL vmlinux 0x1fb5485b xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x1fca5c18 mach_pasemi +EXPORT_SYMBOL vmlinux 0x1fcea11c get_pci_dma_ops +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fe7b4ab pasemi_write_dma_reg +EXPORT_SYMBOL vmlinux 0x1fe920bd block_is_partially_uptodate +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 0x202a9103 iput +EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x203c07dc blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x205d08f1 dquot_initialize +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x2077f225 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x208811de blk_peek_request +EXPORT_SYMBOL vmlinux 0x20cba385 generic_read_dir +EXPORT_SYMBOL vmlinux 0x20cbb890 __seq_open_private +EXPORT_SYMBOL vmlinux 0x20d5dd98 sock_no_accept +EXPORT_SYMBOL vmlinux 0x213603bf pasemi_dma_free_ring +EXPORT_SYMBOL vmlinux 0x2154190d scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x216876e3 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x217f5fe2 cap_file_mmap +EXPORT_SYMBOL vmlinux 0x2183a82c pci_fixup_device +EXPORT_SYMBOL vmlinux 0x21da5859 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x21ffe365 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x225ebee6 _lv1_destruct_lpm +EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log +EXPORT_SYMBOL vmlinux 0x227147e2 close_bdev_exclusive +EXPORT_SYMBOL vmlinux 0x227b6ce2 matroxfb_DAC_out +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22dd2be1 matroxfb_g450_shutdown +EXPORT_SYMBOL vmlinux 0x22ee6354 scsi_unregister +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 0x237b6ebe blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x2382db29 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x239a5d62 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x23a71078 fasync_helper +EXPORT_SYMBOL vmlinux 0x23aa968d registered_fb +EXPORT_SYMBOL vmlinux 0x23ad843c tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x23f2243d mempool_free +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x2436e3db generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x244a2411 __first_cpu +EXPORT_SYMBOL vmlinux 0x24571fe6 dquot_resume +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 0x245ac3bd tty_vhangup +EXPORT_SYMBOL vmlinux 0x246d4fbb kdb_current_task +EXPORT_SYMBOL vmlinux 0x2485c200 mach_ps3 +EXPORT_SYMBOL vmlinux 0x248f263d tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x24a14091 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x24cfd438 _lv1_copy_lpm_trace_buffer +EXPORT_SYMBOL vmlinux 0x24d86903 dm_get_device +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x2517c2a9 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x25382756 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x25673872 input_allocate_device +EXPORT_SYMBOL vmlinux 0x2568d155 cont_write_begin +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +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 0x26257a73 giveup_altivec +EXPORT_SYMBOL vmlinux 0x2633e456 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x263bf3b6 nobh_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x270cde0a pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x273c206f netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x27646df3 start_thread +EXPORT_SYMBOL vmlinux 0x277a8176 pci_pme_active +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27c94e04 scsi_finish_command +EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic +EXPORT_SYMBOL vmlinux 0x27dcec52 register_netdevice +EXPORT_SYMBOL vmlinux 0x27dcf7ac update_region +EXPORT_SYMBOL vmlinux 0x280596c5 scsi_print_result +EXPORT_SYMBOL vmlinux 0x282c99d1 scsi_add_device +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 0x2891b0f2 __register_binfmt +EXPORT_SYMBOL vmlinux 0x289a8f92 mpage_readpages +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28ba926c hippi_type_trans +EXPORT_SYMBOL vmlinux 0x28c08bb0 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x28c0e6cd tty_set_operations +EXPORT_SYMBOL vmlinux 0x29046980 vga_client_register +EXPORT_SYMBOL vmlinux 0x290e6f55 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x290eb1a6 padata_add_cpu +EXPORT_SYMBOL vmlinux 0x291bb12e bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0x292fa55c end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x293066cf skb_recycle_check +EXPORT_SYMBOL vmlinux 0x2946d828 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x294e6227 elv_rb_add +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x2960019b eeh_check_failure +EXPORT_SYMBOL vmlinux 0x29803f5a follow_down +EXPORT_SYMBOL vmlinux 0x29b0b244 inet_select_addr +EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set +EXPORT_SYMBOL vmlinux 0x29d73d03 ida_init +EXPORT_SYMBOL vmlinux 0x29ed863b block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x29f438da nla_reserve +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a71b472 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x2a939daa names_cachep +EXPORT_SYMBOL vmlinux 0x2a978a7a sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x2ae944cf wireless_spy_update +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b0d979b __free_pages +EXPORT_SYMBOL vmlinux 0x2b20f583 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x2b304023 ftrace_event_seq +EXPORT_SYMBOL vmlinux 0x2b498c8b blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x2b4a1e9a stop_tty +EXPORT_SYMBOL vmlinux 0x2b5e6c69 __any_online_cpu +EXPORT_SYMBOL vmlinux 0x2b70bbfd jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x2b754d0b balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bbdb9a5 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x2bd7a289 blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0x2bf34a07 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x2c1cd4a4 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x2c323dc7 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x2c4c7997 _lv1_construct_lpm +EXPORT_SYMBOL vmlinux 0x2c8532f4 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x2c919c63 gen_new_estimator +EXPORT_SYMBOL vmlinux 0x2c930c13 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x2c9b5ce2 phy_find_first +EXPORT_SYMBOL vmlinux 0x2cb567a1 netif_napi_add +EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic +EXPORT_SYMBOL vmlinux 0x2cf9db12 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x2d0c6d75 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +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 0x2d94240b __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x2df2988e __alloc_pages_nodemask +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 0x2e5a776e seq_read +EXPORT_SYMBOL vmlinux 0x2e77bd96 d_delete +EXPORT_SYMBOL vmlinux 0x2e7b26d3 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x2e8c3f84 get_io_context +EXPORT_SYMBOL vmlinux 0x2e93495e _lv1_write_htab_entry +EXPORT_SYMBOL vmlinux 0x2ecf257c nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x2ed76588 inet_addr_type +EXPORT_SYMBOL vmlinux 0x2ee1f956 idr_pre_get +EXPORT_SYMBOL vmlinux 0x2ee4337f smu_queue_cmd +EXPORT_SYMBOL vmlinux 0x2ef133fe blk_start_queue +EXPORT_SYMBOL vmlinux 0x2ef9d281 skb_push +EXPORT_SYMBOL vmlinux 0x2f037653 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f101e7f pipe_lock +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f3625e8 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x2fae96de rtas_data_buf_lock +EXPORT_SYMBOL vmlinux 0x2fb35c7b of_device_unregister +EXPORT_SYMBOL vmlinux 0x2fca080e xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x2fcf740d idr_get_new_above +EXPORT_SYMBOL vmlinux 0x2ff04df7 udplite_prot +EXPORT_SYMBOL vmlinux 0x30018444 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x300447bb macio_register_driver +EXPORT_SYMBOL vmlinux 0x3016f0b3 security_path_truncate +EXPORT_SYMBOL vmlinux 0x3023822c fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x302d1dca mutex_trylock +EXPORT_SYMBOL vmlinux 0x3036c8a1 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x3066fcd7 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x306c7d89 key_task_permission +EXPORT_SYMBOL vmlinux 0x30707c66 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x307830d6 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x3090b4cf km_state_expired +EXPORT_SYMBOL vmlinux 0x30913c6c tty_port_open +EXPORT_SYMBOL vmlinux 0x30ecb8f5 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x30ef0c0c of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x30fcc0b8 rfkill_unregister +EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x3127bda7 page_put_link +EXPORT_SYMBOL vmlinux 0x312cfaf2 _lv1_disable_logical_spe +EXPORT_SYMBOL vmlinux 0x3138c8ec pci_dev_get +EXPORT_SYMBOL vmlinux 0x3141d896 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x3143456e dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x31544f48 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x316cd9fe down +EXPORT_SYMBOL vmlinux 0x317fdc77 sk_common_release +EXPORT_SYMBOL vmlinux 0x31838532 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x318aa974 generic_readlink +EXPORT_SYMBOL vmlinux 0x31b7f300 _lv1_set_lpm_signal +EXPORT_SYMBOL vmlinux 0x31cd509a _lv1_net_control +EXPORT_SYMBOL vmlinux 0x31ed1707 down_timeout +EXPORT_SYMBOL vmlinux 0x321178e0 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x324538cf kill_block_super +EXPORT_SYMBOL vmlinux 0x3247b59b __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x32650dee tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x32667f51 dm_kcopyd_client_create +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 0x329c5eea kernel_getsockname +EXPORT_SYMBOL vmlinux 0x32ed65ab __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x3331c9db d_rehash +EXPORT_SYMBOL vmlinux 0x33758c55 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x33a22200 journal_get_write_access +EXPORT_SYMBOL vmlinux 0x33b39ed9 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x33cff416 generic_write_end +EXPORT_SYMBOL vmlinux 0x33dcdf3c xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x33e20d86 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x33ea4e5d inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x33f24e69 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x33f4754f generic_removexattr +EXPORT_SYMBOL vmlinux 0x3410d2dc neigh_seq_start +EXPORT_SYMBOL vmlinux 0x342e975c sget +EXPORT_SYMBOL vmlinux 0x344adbd5 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long +EXPORT_SYMBOL vmlinux 0x34770fa5 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x347d901c locks_init_lock +EXPORT_SYMBOL vmlinux 0x349157ce unregister_netdev +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34a37641 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x34aa2468 kobject_del +EXPORT_SYMBOL vmlinux 0x34d46aed netif_notify_peers +EXPORT_SYMBOL vmlinux 0x34ec737f udp_ioctl +EXPORT_SYMBOL vmlinux 0x34fd0900 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x35110c58 tty_hangup +EXPORT_SYMBOL vmlinux 0x351bb07a phy_device_register +EXPORT_SYMBOL vmlinux 0x352721a1 rfkill_register +EXPORT_SYMBOL vmlinux 0x353229d9 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x356463ed blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x35846051 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x35b0650f vsnprintf +EXPORT_SYMBOL vmlinux 0x35c1b5d7 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35d41dd3 dm_table_event +EXPORT_SYMBOL vmlinux 0x35e673c9 task_nice +EXPORT_SYMBOL vmlinux 0x3609676d mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x361e75db jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x3622bb8f napi_complete +EXPORT_SYMBOL vmlinux 0x363ca804 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x36544e19 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x3657b2d0 audit_log_end +EXPORT_SYMBOL vmlinux 0x36a311d2 slow_work_register_user +EXPORT_SYMBOL vmlinux 0x36af0288 ps3_dma_region_init +EXPORT_SYMBOL vmlinux 0x36afd7c8 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x36b0e732 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x36b67b99 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x36b85791 vc_cons +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36ec49e0 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x36f7774c tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x36fc174f invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x371902e9 _lv1_get_lpm_interrupt_status +EXPORT_SYMBOL vmlinux 0x371d2130 check_legacy_ioport +EXPORT_SYMBOL vmlinux 0x37383edd rtas_get_power_level +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x3750b2f0 nf_afinfo +EXPORT_SYMBOL vmlinux 0x375465a7 radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x375a0f4d __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x375b82fc xfrm_state_add +EXPORT_SYMBOL vmlinux 0x377c58ab sk_stop_timer +EXPORT_SYMBOL vmlinux 0x377ec20a qdisc_reset +EXPORT_SYMBOL vmlinux 0x3786561b set_create_files_as +EXPORT_SYMBOL vmlinux 0x3787710a inet_bind +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 0x37f916e0 dev_get_by_flags +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 0x389c923d remove_inode_hash +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +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 0x391c7b8f mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x392195f8 arp_send +EXPORT_SYMBOL vmlinux 0x3950bd86 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x397e528a xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x399687be posix_acl_permission +EXPORT_SYMBOL vmlinux 0x39971b89 noop_qdisc +EXPORT_SYMBOL vmlinux 0x399ff79b __scsi_put_command +EXPORT_SYMBOL vmlinux 0x39ab649e register_sysrq_key +EXPORT_SYMBOL vmlinux 0x39cdf63c wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x39ce3db1 register_con_driver +EXPORT_SYMBOL vmlinux 0x39dbe3c7 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x3a182926 km_policy_expired +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a5db0be is_container_init +EXPORT_SYMBOL vmlinux 0x3a751984 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x3a93df56 genphy_update_link +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3b0102ca security_inode_init_security +EXPORT_SYMBOL vmlinux 0x3b0aab82 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x3b0b183f input_free_device +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b35dbb7 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x3b3b19a0 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x3b511672 pci_dev_put +EXPORT_SYMBOL vmlinux 0x3b615a21 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x3ba02867 dm_io_client_resize +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bfc5557 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c539829 secpath_dup +EXPORT_SYMBOL vmlinux 0x3c63388a __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x3c8e62d9 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cff1181 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x3d0a2d9c inet_csk_accept +EXPORT_SYMBOL vmlinux 0x3d54ac01 _lv1_net_stop_rx_dma +EXPORT_SYMBOL vmlinux 0x3d8728bb memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x3d922587 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x3d9b67f3 __vlan_hwaccel_rx +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3db2e258 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x3dca9772 neigh_update +EXPORT_SYMBOL vmlinux 0x3ddb8756 kmem_cache_alloc_notrace +EXPORT_SYMBOL vmlinux 0x3df13da1 rtc_dev_update_irq_enable_emul +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e23b6ec jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x3e286dca _lv1_get_rtc +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e3fb390 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +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 0x3ec0561a tcf_action_exec +EXPORT_SYMBOL vmlinux 0x3ed43ade sk_filter +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ef8ff98 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f059dfc rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x3f06a656 _lv1_construct_event_receive_port +EXPORT_SYMBOL vmlinux 0x3f08b0a6 blk_register_region +EXPORT_SYMBOL vmlinux 0x3f122913 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x3f12b1ea simple_unlink +EXPORT_SYMBOL vmlinux 0x3f19d26c journal_init_dev +EXPORT_SYMBOL vmlinux 0x3f1d90fd jbd2_journal_get_create_access +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 0x3f5991f7 block_read_full_page +EXPORT_SYMBOL vmlinux 0x3f5d47b4 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x3f78f07f gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x3f811b07 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x3fa03a97 memset +EXPORT_SYMBOL vmlinux 0x3fa0fda0 ether_setup +EXPORT_SYMBOL vmlinux 0x3fa913da strspn +EXPORT_SYMBOL vmlinux 0x3fb2487f of_n_addr_cells +EXPORT_SYMBOL vmlinux 0x3fbc4f54 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x3fbfd6ed _lv1_gpu_open +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3fee107c ilookup5 +EXPORT_SYMBOL vmlinux 0x3ff11884 skb_split +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x40163d44 replace_mount_options +EXPORT_SYMBOL vmlinux 0x402401d7 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x40341c33 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x4039f23f sg_miter_start +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x40748ea5 of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0x408c5488 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x40955431 mdiobus_register +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +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 0x411f9bf8 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x4126c789 gen_pool_destroy +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 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features +EXPORT_SYMBOL vmlinux 0x4170f95d journal_revoke +EXPORT_SYMBOL vmlinux 0x41800234 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x41834119 km_report +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41ae1e5e neigh_create +EXPORT_SYMBOL vmlinux 0x41d5e991 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x41da02a8 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x41dbf4de _lv1_start_lpm +EXPORT_SYMBOL vmlinux 0x41f50add register_quota_format +EXPORT_SYMBOL vmlinux 0x4205dd2f lock_may_write +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x421cddc7 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x42224298 sscanf +EXPORT_SYMBOL vmlinux 0x422e7e33 dentry_open +EXPORT_SYMBOL vmlinux 0x4236e1e0 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x424f49ab jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x429544c4 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x4297afd9 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x42a70576 nobh_writepage +EXPORT_SYMBOL vmlinux 0x42ac0b7a neigh_seq_next +EXPORT_SYMBOL vmlinux 0x42ae13f1 matroxfb_wait_for_sync +EXPORT_SYMBOL vmlinux 0x43016346 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +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 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x436eb9bd pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x4390e54f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0x43959a61 arp_create +EXPORT_SYMBOL vmlinux 0x43a01f90 complete_all +EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get +EXPORT_SYMBOL vmlinux 0x43c59a00 otg_set_transceiver +EXPORT_SYMBOL vmlinux 0x43c80103 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x43d53390 register_gifconf +EXPORT_SYMBOL vmlinux 0x43d800c1 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg +EXPORT_SYMBOL vmlinux 0x4407b223 del_gendisk +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x44539f44 poll_freewait +EXPORT_SYMBOL vmlinux 0x4464eef9 dma_pool_free +EXPORT_SYMBOL vmlinux 0x44786c59 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x44ac938b take_over_console +EXPORT_SYMBOL vmlinux 0x44ad626b starget_for_each_device +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 0x44f5772f tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x4516d409 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x453fe39f matroxfb_g450_setpll_cond +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x4564459b _lv1_set_virtual_uart_param +EXPORT_SYMBOL vmlinux 0x456f05ab set_disk_ro +EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x457310e3 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x4577dc5f seq_open +EXPORT_SYMBOL vmlinux 0x457d1a13 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x45947727 param_array_set +EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states +EXPORT_SYMBOL vmlinux 0x45a28fd6 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x45a55ec8 __iounmap +EXPORT_SYMBOL vmlinux 0x45ad25cc skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x45b7f376 dev_addr_del +EXPORT_SYMBOL vmlinux 0x45c4fecf write_one_page +EXPORT_SYMBOL vmlinux 0x45cfe80b pasemi_dma_free_flag +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45fab495 tty_free_termios +EXPORT_SYMBOL vmlinux 0x461ebfa0 __copy_tofrom_user +EXPORT_SYMBOL vmlinux 0x465568ec machine_id +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x469dad43 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x46aefc6f ip_dev_find +EXPORT_SYMBOL vmlinux 0x46e3c02d dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x47200052 udp_prot +EXPORT_SYMBOL vmlinux 0x4738b5ea of_n_size_cells +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x47665f29 key_put +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47ba0788 serio_open +EXPORT_SYMBOL vmlinux 0x47de49c3 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x47eb1a39 dm_table_get +EXPORT_SYMBOL vmlinux 0x48000553 mempool_create_node +EXPORT_SYMBOL vmlinux 0x48047d4c cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x480ab42a __next_cpu_nr +EXPORT_SYMBOL vmlinux 0x482bf2c9 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x483506bb genphy_resume +EXPORT_SYMBOL vmlinux 0x483fc8c9 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x48404b9a remove_wait_queue +EXPORT_SYMBOL vmlinux 0x4840c51b neigh_lookup +EXPORT_SYMBOL vmlinux 0x4858aa06 of_parse_phandle +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +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 0x48b2861c __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x48c1d080 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x48c422a3 ethtool_op_get_rx_csum +EXPORT_SYMBOL vmlinux 0x48def8a4 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x48e6928f dmam_pool_create +EXPORT_SYMBOL vmlinux 0x48f0326e mod_timer +EXPORT_SYMBOL vmlinux 0x4906025b generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x49097add input_event +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 0x496030f6 lock_may_read +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x49654392 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x4987bda4 key_alloc +EXPORT_SYMBOL vmlinux 0x4987c08e pci_find_capability +EXPORT_SYMBOL vmlinux 0x498e68db __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x499030d9 register_filesystem +EXPORT_SYMBOL vmlinux 0x499d5926 tty_port_init +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b54b7e scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x49d54307 cdrom_open +EXPORT_SYMBOL vmlinux 0x49dd8628 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string +EXPORT_SYMBOL vmlinux 0x4a21aeaa serio_reconnect +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a3a5e70 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x4a4de4db mutex_unlock +EXPORT_SYMBOL vmlinux 0x4a673d16 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x4a714e26 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x4a857e10 qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x4a977cb3 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4ab759c0 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x4abb2a78 vfs_mknod +EXPORT_SYMBOL vmlinux 0x4ac64da4 _lv1_select_virtual_address_space +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b074225 dev_txq_stats_fold +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 0x4b6bed3e __napi_schedule +EXPORT_SYMBOL vmlinux 0x4b6fcddc _lv1_set_spe_interrupt_mask +EXPORT_SYMBOL vmlinux 0x4b7dc8b3 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x4b7ed27b sleep_on +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4c077794 aio_complete +EXPORT_SYMBOL vmlinux 0x4c11435a _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c255abc blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x4c3a324c blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x4c4238a0 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp +EXPORT_SYMBOL vmlinux 0x4c66f858 __devm_release_region +EXPORT_SYMBOL vmlinux 0x4c86c659 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x4c956e8c pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cd3f6b7 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x4cfb4934 vfs_follow_link +EXPORT_SYMBOL vmlinux 0x4d0577b6 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x4d085564 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x4d0bd2e3 read_dev_sector +EXPORT_SYMBOL vmlinux 0x4d0cf94e init_task +EXPORT_SYMBOL vmlinux 0x4d0d3dfc input_register_handle +EXPORT_SYMBOL vmlinux 0x4d4a3622 of_get_parent +EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dda726b match_strlcpy +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create +EXPORT_SYMBOL vmlinux 0x4e192269 __lock_page +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e4f0c4a journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e73552d matroxfb_unregister_driver +EXPORT_SYMBOL vmlinux 0x4e744945 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x4e759295 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x4e79f3dc dev_add_pack +EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum +EXPORT_SYMBOL vmlinux 0x4eafa32e set_bdi_congested +EXPORT_SYMBOL vmlinux 0x4ec1f424 devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x4ec637c3 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x4ecfae07 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4ee0bac7 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x4eea701b udp_poll +EXPORT_SYMBOL vmlinux 0x4eeb23a8 input_mt_create_slots +EXPORT_SYMBOL vmlinux 0x4efed67e matroxfb_enable_irq +EXPORT_SYMBOL vmlinux 0x4f12efd3 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x4f149d9b skb_pad +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f2d3796 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x4f56aa1d sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x4f587237 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x4f62024c ab3100_event_register +EXPORT_SYMBOL vmlinux 0x4f664db6 _lv1_insert_htab_entry +EXPORT_SYMBOL vmlinux 0x4f872208 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x4fc17154 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x4fc73e38 __mutex_init +EXPORT_SYMBOL vmlinux 0x4fd2f037 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x4fd3e644 kill_anon_super +EXPORT_SYMBOL vmlinux 0x4fd86c93 journal_restart +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fecfb57 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x4ff7d6d9 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x502a3812 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x503dd0c9 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x503e4357 blk_init_allocated_queue +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 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x5070a4fd journal_flush +EXPORT_SYMBOL vmlinux 0x507d254c dcache_readdir +EXPORT_SYMBOL vmlinux 0x50976ce3 security_path_unlink +EXPORT_SYMBOL vmlinux 0x50ae3c54 _lv1_gpu_attribute +EXPORT_SYMBOL vmlinux 0x50ef5708 __alloc_skb +EXPORT_SYMBOL vmlinux 0x50f50277 of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x51076bf6 vmtruncate +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5138f121 sock_no_poll +EXPORT_SYMBOL vmlinux 0x513c6aa0 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x515584cd seq_printf +EXPORT_SYMBOL vmlinux 0x51651273 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x517ecea5 security_path_rename +EXPORT_SYMBOL vmlinux 0x517f1f4c phy_start +EXPORT_SYMBOL vmlinux 0x519b0da3 finish_wait +EXPORT_SYMBOL vmlinux 0x51ae1728 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x51bebaa7 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x51c4595b pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x51dba77d jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e8fa84 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x51eb1948 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x51ee8d79 dst_destroy +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x520868fa neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x52495b76 phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0x524dd6cb skb_unlink +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x527830ff pmac_xpram_read +EXPORT_SYMBOL vmlinux 0x52806c87 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x52869744 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +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 0x52fbeaf6 block_sync_page +EXPORT_SYMBOL vmlinux 0x53055655 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x531a82e9 security_inode_permission +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x5339f5f8 _lv1_read_virtual_uart +EXPORT_SYMBOL vmlinux 0x533e0ec0 kstat +EXPORT_SYMBOL vmlinux 0x5379a90e generic_make_request +EXPORT_SYMBOL vmlinux 0x53b9bea0 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53c7c115 kernel_accept +EXPORT_SYMBOL vmlinux 0x53ebab1b _outsl_ns +EXPORT_SYMBOL vmlinux 0x54177e73 fsnotify_find_mark_entry +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x54398e45 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x54568b75 register_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x545e4a56 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x548f6b16 copy_4K_page +EXPORT_SYMBOL vmlinux 0x5495151f scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x549fc37f rfkill_destroy +EXPORT_SYMBOL vmlinux 0x54bdb885 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x54c1f4e5 rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0x54c23d4e vfs_mkdir +EXPORT_SYMBOL vmlinux 0x54e642f5 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x550237f3 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x550319f9 dev_uc_init +EXPORT_SYMBOL vmlinux 0x5519ec67 i2c_master_recv +EXPORT_SYMBOL vmlinux 0x5520a0cd grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x552b33fb netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x5568c553 complete +EXPORT_SYMBOL vmlinux 0x5577ef9e udp_table +EXPORT_SYMBOL vmlinux 0x557b3dd8 _lv1_gpu_close +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 0x55a36e0b ide_stall_queue +EXPORT_SYMBOL vmlinux 0x55b82498 of_get_mac_address +EXPORT_SYMBOL vmlinux 0x55bc943e slow_work_unregister_user +EXPORT_SYMBOL vmlinux 0x56001714 tty_name +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 0x5622f3f4 sk_reset_txq +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5662587b filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x5677ac21 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x5679a7a5 generic_pipe_buf_unmap +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 0x56c2b95b rtas_progress +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56cf5095 ide_dma_off_quietly +EXPORT_SYMBOL vmlinux 0x56d507e6 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x56d6c38a dev_mc_add +EXPORT_SYMBOL vmlinux 0x56db64e9 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x56eb8958 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x56f494e0 smp_call_function +EXPORT_SYMBOL vmlinux 0x56f7ac1b tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x574fd8d2 mpage_readpage +EXPORT_SYMBOL vmlinux 0x57527bf3 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x575c967b pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x576775eb swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0x576b927e arp_xmit +EXPORT_SYMBOL vmlinux 0x5784edd0 register_cdrom +EXPORT_SYMBOL vmlinux 0x57922970 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x579bab50 _lv1_gpu_memory_free +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57c14e50 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x57debb5c pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x57f4927f scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x583ea3d2 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x584a3134 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x586b609a vfs_lstat +EXPORT_SYMBOL vmlinux 0x587224fb iget_locked +EXPORT_SYMBOL vmlinux 0x58a0cbac freeze_bdev +EXPORT_SYMBOL vmlinux 0x58b6fda9 elv_abort_queue +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 0x58fa7b52 kick_iocb +EXPORT_SYMBOL vmlinux 0x591fff71 dev_addr_add +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 0x597c2d35 unbind_con_driver +EXPORT_SYMBOL vmlinux 0x59a909f6 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x59ad38b2 get_super +EXPORT_SYMBOL vmlinux 0x59b3378a completion_done +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59f6ed5d scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x59f88ae5 simple_fill_super +EXPORT_SYMBOL vmlinux 0x5a1108a7 inet_ioctl +EXPORT_SYMBOL vmlinux 0x5a24caa7 mdiobus_free +EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc +EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x5a5fe7fb clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x5a6060bc dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x5a6c1964 kernel_listen +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5aac266b unregister_nls +EXPORT_SYMBOL vmlinux 0x5aad4531 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x5ac97431 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x5ad00cf4 read_cache_pages +EXPORT_SYMBOL vmlinux 0x5ad549de input_set_keycode +EXPORT_SYMBOL vmlinux 0x5b1fd6b9 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x5b34043c blkdev_get +EXPORT_SYMBOL vmlinux 0x5b39988e ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x5b43f1f1 rtas_service_present +EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x5b89beb7 vfs_getattr +EXPORT_SYMBOL vmlinux 0x5b97c1c4 xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x5b9828c5 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x5bcb60f7 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x5bebb494 alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x5c00a92c key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x5c2c2030 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x5c37f319 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x5c3b09a4 ip_fragment +EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x5c54e3e8 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0x5c64d0ce dev_set_mtu +EXPORT_SYMBOL vmlinux 0x5c6d47b5 phy_attach_direct +EXPORT_SYMBOL vmlinux 0x5c81b1bb cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x5c91b36d generic_permission +EXPORT_SYMBOL vmlinux 0x5c944713 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x5ca3ef4a cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5ccc9045 _lv1_close_device +EXPORT_SYMBOL vmlinux 0x5cdf020c jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x5cf30e10 __debugger_ipi +EXPORT_SYMBOL vmlinux 0x5d113035 vm_stat +EXPORT_SYMBOL vmlinux 0x5d19f19b sock_no_mmap +EXPORT_SYMBOL vmlinux 0x5d32a4a6 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x5d44666f cfb_imageblit +EXPORT_SYMBOL vmlinux 0x5d8a15e1 __brelse +EXPORT_SYMBOL vmlinux 0x5dab969e inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x5dbbe98e memmove +EXPORT_SYMBOL vmlinux 0x5dd39cfd vfs_fstatat +EXPORT_SYMBOL vmlinux 0x5de74295 file_fsync +EXPORT_SYMBOL vmlinux 0x5e0fed0a swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x5e2ba373 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x5e2ba5bc swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x5e3a8a9c __wake_up +EXPORT_SYMBOL vmlinux 0x5e755d88 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x5e7ef1e8 netdev_state_change +EXPORT_SYMBOL vmlinux 0x5e8c101f udp_proc_register +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eb5f795 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x5ec54383 alloc_pages_current +EXPORT_SYMBOL vmlinux 0x5ec6f346 bdi_unregister +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5edf561e sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x5ee3fbb9 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x5ee43d94 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x5efdcd11 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x5f0be112 fetch_dev_dn +EXPORT_SYMBOL vmlinux 0x5f118ca9 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x5f2542d9 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x5f345e0f tty_port_put +EXPORT_SYMBOL vmlinux 0x5f41ac6a simple_transaction_read +EXPORT_SYMBOL vmlinux 0x5f516da6 block_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x5f53e9d1 do_splice_from +EXPORT_SYMBOL vmlinux 0x5f5748cc dw_spi_add_host +EXPORT_SYMBOL vmlinux 0x5f5e2da7 xfrm_input +EXPORT_SYMBOL vmlinux 0x5f8a2728 isa_io_base +EXPORT_SYMBOL vmlinux 0x5f8b0028 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fb38074 nf_log_register +EXPORT_SYMBOL vmlinux 0x5fb9e0b8 macio_request_resource +EXPORT_SYMBOL vmlinux 0x5fc233ef misc_register +EXPORT_SYMBOL vmlinux 0x5fd2298e strnstr +EXPORT_SYMBOL vmlinux 0x5fe3fa1e get_gendisk +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 0x605eec81 unlock_page +EXPORT_SYMBOL vmlinux 0x60642b10 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x6067a146 memcpy +EXPORT_SYMBOL vmlinux 0x607ebe1b mpage_writepages +EXPORT_SYMBOL vmlinux 0x60966473 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a7f6b6 iterate_mounts +EXPORT_SYMBOL vmlinux 0x60baf06d bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x60cd8740 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n +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 0x612512de sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x61563f5a skb_queue_head +EXPORT_SYMBOL vmlinux 0x618baab8 unregister_exec_domain +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 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61c54b34 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x61dcdcd3 _lv1_pause +EXPORT_SYMBOL vmlinux 0x61eef2c9 _insb +EXPORT_SYMBOL vmlinux 0x61facfe6 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x623b41a2 inode_permission +EXPORT_SYMBOL vmlinux 0x6258ff7a panic_notifier_list +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x6275d6de skb_copy_bits +EXPORT_SYMBOL vmlinux 0x627900be compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x62a35026 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x62b1f65a ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x62c750d6 dquot_transfer +EXPORT_SYMBOL vmlinux 0x62d49932 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x62db1ffd kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x62e66da7 do_sync_read +EXPORT_SYMBOL vmlinux 0x62f633b3 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x6350b931 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x6360d639 cpu_all_bits +EXPORT_SYMBOL vmlinux 0x6379439f del_timer_sync +EXPORT_SYMBOL vmlinux 0x63828c51 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x638c172e vfs_fstat +EXPORT_SYMBOL vmlinux 0x639f3c22 get_user_pages +EXPORT_SYMBOL vmlinux 0x63a0b519 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x63b1cc9c jbd2_journal_destroy +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 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x64285428 km_new_mapping +EXPORT_SYMBOL vmlinux 0x6434112b tcf_exts_dump_stats +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 0x646cc6ab pmu_poll +EXPORT_SYMBOL vmlinux 0x649955bd pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64cd9b58 vfs_write +EXPORT_SYMBOL vmlinux 0x64f88702 kobject_init +EXPORT_SYMBOL vmlinux 0x65022a24 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x65022de9 fb_class +EXPORT_SYMBOL vmlinux 0x65040373 vfs_readlink +EXPORT_SYMBOL vmlinux 0x65062951 tty_register_device +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x65792bec mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x6582c5eb swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x65b6de8f xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x65bb58a2 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x661c791a tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x6640d8a6 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x6643b148 prepare_creds +EXPORT_SYMBOL vmlinux 0x6649536f input_release_device +EXPORT_SYMBOL vmlinux 0x6663db60 __init_rwsem +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x668ff3a7 give_up_console +EXPORT_SYMBOL vmlinux 0x66a256b3 ida_pre_get +EXPORT_SYMBOL vmlinux 0x66ad1cb3 _lv1_set_lpm_general_control +EXPORT_SYMBOL vmlinux 0x66b3d630 aio_put_req +EXPORT_SYMBOL vmlinux 0x66bc0eb3 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x66c97cdf inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x66cbf14b pmac_xpram_write +EXPORT_SYMBOL vmlinux 0x66dece56 kfree_skb +EXPORT_SYMBOL vmlinux 0x66ed4a37 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x66f8bf49 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x670a0b2e udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x671670e6 invalidate_inodes +EXPORT_SYMBOL vmlinux 0x671ef555 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x672144bd strlcpy +EXPORT_SYMBOL vmlinux 0x672f102e powerpc_debugfs_root +EXPORT_SYMBOL vmlinux 0x6743a6f6 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x678ad402 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67c5041e neigh_for_each +EXPORT_SYMBOL vmlinux 0x67c571a7 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x67d6ca5f bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x67eccc1f lease_get_mtime +EXPORT_SYMBOL vmlinux 0x683d305c otg_put_transceiver +EXPORT_SYMBOL vmlinux 0x6855502f journal_get_create_access +EXPORT_SYMBOL vmlinux 0x68609857 complete_and_exit +EXPORT_SYMBOL vmlinux 0x68736c2b skb_trim +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x68b4c7ec skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x68c070a5 of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0x68e1ef51 smu_present +EXPORT_SYMBOL vmlinux 0x690742a0 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x690a6b5b bio_put +EXPORT_SYMBOL vmlinux 0x69293289 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x694a4e9a vio_find_node +EXPORT_SYMBOL vmlinux 0x695236e0 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x69550ae2 pipe_unlock +EXPORT_SYMBOL vmlinux 0x696c4051 pcim_pin_device +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 0x699760e8 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x699ccbf8 _lv1_deconfigure_virtual_uart_irq +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69c22b3d vfs_statfs +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 0x69f577bf sk_run_filter +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a2f60f5 __register_chrdev +EXPORT_SYMBOL vmlinux 0x6a3899b0 of_scan_pci_bridge +EXPORT_SYMBOL vmlinux 0x6a3be64a vfs_rmdir +EXPORT_SYMBOL vmlinux 0x6a43a810 i2c_master_send +EXPORT_SYMBOL vmlinux 0x6a478625 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x6a5dccd0 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a61f874 to_tm +EXPORT_SYMBOL vmlinux 0x6a6fb281 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6acfca2f clear_inode +EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp +EXPORT_SYMBOL vmlinux 0x6ad22dc2 dqget +EXPORT_SYMBOL vmlinux 0x6aeb50ab journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x6af9870c matrox_G100 +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b250b28 genphy_config_advert +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 0x6b53da93 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x6b589a6e _lv1_net_add_multicast_address +EXPORT_SYMBOL vmlinux 0x6b5dfe73 __debugger_bpt +EXPORT_SYMBOL vmlinux 0x6b6f0c4b _lv1_create_repository_node +EXPORT_SYMBOL vmlinux 0x6b7823c9 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x6b7c0006 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x6b8dc28c mdiobus_alloc +EXPORT_SYMBOL vmlinux 0x6baba703 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x6bb8ae28 cdev_del +EXPORT_SYMBOL vmlinux 0x6bbcad39 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bc56c67 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bf5a19c kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x6c0383ef simple_write_end +EXPORT_SYMBOL vmlinux 0x6c0bd5b5 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x6c479c63 __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0x6c48c0dc sg_miter_stop +EXPORT_SYMBOL vmlinux 0x6c5921ec blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c6aa4b1 set_device_ro +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c759dbe simple_setsize +EXPORT_SYMBOL vmlinux 0x6c7e4b88 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x6ca5db03 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x6caabf35 vio_unregister_driver +EXPORT_SYMBOL vmlinux 0x6cbe7632 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x6cf0db6f pskb_expand_head +EXPORT_SYMBOL vmlinux 0x6d09f14c unregister_console +EXPORT_SYMBOL vmlinux 0x6d12807f journal_wipe +EXPORT_SYMBOL vmlinux 0x6d1743eb _lv1_get_total_execution_time +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d344daa file_remove_suid +EXPORT_SYMBOL vmlinux 0x6d3ee71c proto_unregister +EXPORT_SYMBOL vmlinux 0x6d444720 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x6d4f25a9 journal_clear_err +EXPORT_SYMBOL vmlinux 0x6d6c1c3f of_dev_get +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d72b5db rtnl_unicast +EXPORT_SYMBOL vmlinux 0x6d7b8da2 tcf_hash_search +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 0x6db1a33f dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6dc1a9bf nf_register_hooks +EXPORT_SYMBOL vmlinux 0x6de6bf83 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e2288d6 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x6e2ae560 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x6e38160b blk_stack_limits +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e802324 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ea9ef09 mach_maple +EXPORT_SYMBOL vmlinux 0x6ed39b77 lease_modify +EXPORT_SYMBOL vmlinux 0x6ee861f7 netif_rx +EXPORT_SYMBOL vmlinux 0x6ef9a22d wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x6efd4f62 dev_close +EXPORT_SYMBOL vmlinux 0x6f1403dd inet_getname +EXPORT_SYMBOL vmlinux 0x6f589879 __lookup_one_len +EXPORT_SYMBOL vmlinux 0x6f6480a2 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x6f7d1210 matroxfb_vgaHWrestore +EXPORT_SYMBOL vmlinux 0x6f8597fb sk_free +EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6fa2dbbd compat_nf_getsockopt +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 0x6fed789d __secpath_destroy +EXPORT_SYMBOL vmlinux 0x6ff53b9f ll_rw_block +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 0x7031d5b2 dma_direct_ops +EXPORT_SYMBOL vmlinux 0x703d3a60 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x70422e05 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x704c4365 __cputime_sec_factor +EXPORT_SYMBOL vmlinux 0x7050a3ea netdev_set_master +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x705c57b2 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x7063df56 vfs_llseek +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70dd07f9 eth_type_trans +EXPORT_SYMBOL vmlinux 0x70e5d765 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x70f86c70 pmu_queue_request +EXPORT_SYMBOL vmlinux 0x7108094f vga_put +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x71443db2 pcim_iomap +EXPORT_SYMBOL vmlinux 0x71601cbe truncate_pagecache +EXPORT_SYMBOL vmlinux 0x716218ed rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71ca3eb2 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x71daf4d4 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x71e570ac xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x71f6eb38 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x7229abd2 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x7242e96d strnchr +EXPORT_SYMBOL vmlinux 0x7246da8b skb_put +EXPORT_SYMBOL vmlinux 0x72485793 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x7282db45 fb_pan_display +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 0x72c8451c fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x72e68188 sg_miter_next +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x731a747a pci_io_base +EXPORT_SYMBOL vmlinux 0x7328bf5e pci_set_master +EXPORT_SYMBOL vmlinux 0x732950d5 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x73483e65 get_phy_id +EXPORT_SYMBOL vmlinux 0x734c871e fsync_bdev +EXPORT_SYMBOL vmlinux 0x735d8503 add_wait_queue +EXPORT_SYMBOL vmlinux 0x73768f69 security_path_symlink +EXPORT_SYMBOL vmlinux 0x73892628 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x7391090c scsi_execute_req +EXPORT_SYMBOL vmlinux 0x739f2b98 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x73b3f82b make_bad_inode +EXPORT_SYMBOL vmlinux 0x73b992dc idr_remove_all +EXPORT_SYMBOL vmlinux 0x73c97999 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x73fd02c7 revert_creds +EXPORT_SYMBOL vmlinux 0x740fe5e2 of_find_matching_node +EXPORT_SYMBOL vmlinux 0x74239762 tcp_close +EXPORT_SYMBOL vmlinux 0x742f7adc generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte +EXPORT_SYMBOL vmlinux 0x7451a7c9 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x7457f054 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x74620350 bdput +EXPORT_SYMBOL vmlinux 0x7462eb62 compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0x747db705 serio_rescan +EXPORT_SYMBOL vmlinux 0x7480f2cd dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x748505c5 block_commit_write +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x748df800 generic_file_direct_write +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 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74fe8730 sys_ctrler +EXPORT_SYMBOL vmlinux 0x751c2917 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x75267562 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x75592fb9 jbd2_journal_set_features +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 0x757b402d handle_sysrq +EXPORT_SYMBOL vmlinux 0x7589c4f1 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x75994700 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x759ebce7 hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0x75b72a6f sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75cfbe2d input_close_device +EXPORT_SYMBOL vmlinux 0x75e4f5aa pasemi_read_mac_reg +EXPORT_SYMBOL vmlinux 0x75ef3f3c __break_lease +EXPORT_SYMBOL vmlinux 0x76077fdf inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x76082d43 dev_change_flags +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x76139ac8 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x761c76b4 iunique +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x764e2224 _lv1_disconnect_irq_plug_ext +EXPORT_SYMBOL vmlinux 0x767727ca generic_ide_ioctl +EXPORT_SYMBOL vmlinux 0x7687916c get_sb_single +EXPORT_SYMBOL vmlinux 0x76984aed posix_test_lock +EXPORT_SYMBOL vmlinux 0x7698f2e2 get_sb_bdev +EXPORT_SYMBOL vmlinux 0x769b25d2 _lv1_get_version_info +EXPORT_SYMBOL vmlinux 0x76a1b810 netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x76be1909 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d60a2a blkdev_put +EXPORT_SYMBOL vmlinux 0x76d7d257 set_groups +EXPORT_SYMBOL vmlinux 0x76e5c8d8 skb_copy +EXPORT_SYMBOL vmlinux 0x76e9c86a kthread_stop +EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic +EXPORT_SYMBOL vmlinux 0x77144936 _lv1_disconnect_irq_plug +EXPORT_SYMBOL vmlinux 0x77170e68 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x77278a42 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x7740f5ca set_anon_super +EXPORT_SYMBOL vmlinux 0x77530a44 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x77637ab6 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x77766657 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x778b1970 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x77ab520a check_disk_change +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 0x77fdd641 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x78139180 generic_fillattr +EXPORT_SYMBOL vmlinux 0x7813ca3b wireless_send_event +EXPORT_SYMBOL vmlinux 0x781abbdf xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x781fad5e udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x785df315 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x787a260a tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x78858eed dm_kcopyd_client_destroy +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 0x793e1209 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x794b215c do_truncate +EXPORT_SYMBOL vmlinux 0x795bef8d dev_get_stats +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x79940167 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x7999f45c deny_write_access +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79cf6d36 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x79d0bb13 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x79f458ef filemap_fault +EXPORT_SYMBOL vmlinux 0x79ff03b2 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x7a083cf4 g450_mnp2f +EXPORT_SYMBOL vmlinux 0x7a12ee23 of_iomap +EXPORT_SYMBOL vmlinux 0x7a194608 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol +EXPORT_SYMBOL vmlinux 0x7a34b3da bio_clone +EXPORT_SYMBOL vmlinux 0x7a372468 module_layout +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a451110 bio_integrity_split +EXPORT_SYMBOL vmlinux 0x7a4b1a60 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x7a58faa2 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x7a595efa pci_choose_state +EXPORT_SYMBOL vmlinux 0x7a6bd7d7 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x7a85c0ee qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x7a8f6241 dquot_release +EXPORT_SYMBOL vmlinux 0x7a99288f tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x7aa9e259 _lv1_map_htab +EXPORT_SYMBOL vmlinux 0x7ab3bdda pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip +EXPORT_SYMBOL vmlinux 0x7ae5e0fa pcim_iounmap +EXPORT_SYMBOL vmlinux 0x7ae73de1 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x7af4944c blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x7b074abb may_umount_tree +EXPORT_SYMBOL vmlinux 0x7b2f320f dev_trans_start +EXPORT_SYMBOL vmlinux 0x7b718228 ida_destroy +EXPORT_SYMBOL vmlinux 0x7b8cc185 inet_listen +EXPORT_SYMBOL vmlinux 0x7b8f4c40 key_create_or_update +EXPORT_SYMBOL vmlinux 0x7b9c6ea2 bd_set_size +EXPORT_SYMBOL vmlinux 0x7bc09eaf llc_sap_open +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7be38128 release_firmware +EXPORT_SYMBOL vmlinux 0x7bee5afd set_binfmt +EXPORT_SYMBOL vmlinux 0x7bf691d2 hippi_mac_addr +EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x7c003aef _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c731a57 page_follow_link_light +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 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7ca341af kernel_thread +EXPORT_SYMBOL vmlinux 0x7cae87ef tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x7caef0c5 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cc50fb4 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x7cf0526b tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x7cf9f983 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d213bef d_alloc +EXPORT_SYMBOL vmlinux 0x7d4c83f8 generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0x7d5f1202 dev_load +EXPORT_SYMBOL vmlinux 0x7d62b224 of_find_property +EXPORT_SYMBOL vmlinux 0x7d96de54 override_creds +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 0x7de7c865 posix_lock_file +EXPORT_SYMBOL vmlinux 0x7df0eb82 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e42c8e1 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x7e9ccaf3 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x7e9efc83 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x7eb8a455 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy +EXPORT_SYMBOL vmlinux 0x7ecef913 poll_schedule_timeout +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 0x7f2a841c inode_add_bytes +EXPORT_SYMBOL vmlinux 0x7f461b09 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x7f5ebc27 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x7f6c032a cont_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x7f9c427f nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x7f9f8841 idr_remove +EXPORT_SYMBOL vmlinux 0x7faa5963 bio_init +EXPORT_SYMBOL vmlinux 0x7fc3cc5b blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x7fea39f2 skb_set_dev +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x8011c0cb request_key_async +EXPORT_SYMBOL vmlinux 0x801f5a3f __strncpy_from_user +EXPORT_SYMBOL vmlinux 0x8033a7c9 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x803c5b12 flush_icache_user_range +EXPORT_SYMBOL vmlinux 0x803f1495 down_read +EXPORT_SYMBOL vmlinux 0x80523533 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x80947dd3 filemap_flush +EXPORT_SYMBOL vmlinux 0x80ad44a3 dst_release +EXPORT_SYMBOL vmlinux 0x80db1757 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x80e001bf dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x80e7dce4 skb_checksum +EXPORT_SYMBOL vmlinux 0x80faceb1 tcp4_gro_receive +EXPORT_SYMBOL vmlinux 0x81272b60 padata_do_serial +EXPORT_SYMBOL vmlinux 0x8138311b remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815f0f2a __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x81607323 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x81a07f4e _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x81a5dd26 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x81c0a84f rtas_set_indicator +EXPORT_SYMBOL vmlinux 0x81d8f8d3 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x81d9f7f2 _lv1_put_iopte +EXPORT_SYMBOL vmlinux 0x81dde6d3 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x81f734ad pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x820e88e4 input_set_capability +EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user +EXPORT_SYMBOL vmlinux 0x8236d63e key_revoke +EXPORT_SYMBOL vmlinux 0x8239a738 napi_reuse_skb +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +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 0x829e7e03 backlight_device_register +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82b4225d get_sb_pseudo +EXPORT_SYMBOL vmlinux 0x82d6e166 mnt_pin +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x82e86391 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x82f91d50 pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0x8329a342 pci_save_state +EXPORT_SYMBOL vmlinux 0x83471add register_8022_client +EXPORT_SYMBOL vmlinux 0x83535904 devm_ioremap_prot +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x8398b82d __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83e5f5a7 lro_receive_skb +EXPORT_SYMBOL vmlinux 0x845124e0 ps3_mm_phys_to_lpar +EXPORT_SYMBOL vmlinux 0x84577898 nf_reinject +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 0x84ab8953 d_validate +EXPORT_SYMBOL vmlinux 0x84bd69bf dq_data_lock +EXPORT_SYMBOL vmlinux 0x84e0d7df sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x84e5e98d mark_page_accessed +EXPORT_SYMBOL vmlinux 0x85042130 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x853a32ef mutex_lock +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x8597eb47 plpar_hcall +EXPORT_SYMBOL vmlinux 0x85abc85f strncmp +EXPORT_SYMBOL vmlinux 0x85c5189e scsi_free_command +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x860f6911 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x8625c3b2 sock_rfree +EXPORT_SYMBOL vmlinux 0x862bd734 pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0x8631f188 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x866a0240 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x866b0e91 __pci_register_driver +EXPORT_SYMBOL vmlinux 0x866e1a28 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x869d3a9a __elv_add_request +EXPORT_SYMBOL vmlinux 0x86a6e384 sock_register +EXPORT_SYMBOL vmlinux 0x86bcd74e touch_atime +EXPORT_SYMBOL vmlinux 0x86bffe07 default_llseek +EXPORT_SYMBOL vmlinux 0x86db1cbb rtas_flash_term_hook +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870e029f task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x871005e2 scsi_bios_ptable +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 0x874d2048 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x8761ebc6 dquot_drop +EXPORT_SYMBOL vmlinux 0x87748a92 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87e66cc2 __destroy_inode +EXPORT_SYMBOL vmlinux 0x87ec81e7 unlock_super +EXPORT_SYMBOL vmlinux 0x880da1b1 _lv1_get_logical_partition_id +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x881b4000 path_is_under +EXPORT_SYMBOL vmlinux 0x88710499 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x887c288a pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x88925dc8 sk_stream_error +EXPORT_SYMBOL vmlinux 0x88a0fc80 con_is_bound +EXPORT_SYMBOL vmlinux 0x88a6ed98 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x88c9cea5 ip_route_input_common +EXPORT_SYMBOL vmlinux 0x88e73fe9 unregister_key_type +EXPORT_SYMBOL vmlinux 0x88e756f1 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x890a924e kill_pid +EXPORT_SYMBOL vmlinux 0x891fbb10 mempool_destroy +EXPORT_SYMBOL vmlinux 0x892ec1dd filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x893636c1 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x89384712 tty_check_change +EXPORT_SYMBOL vmlinux 0x89442aa2 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x894d33c1 eth_header_parse +EXPORT_SYMBOL vmlinux 0x895577b0 numa_cpu_lookup_table +EXPORT_SYMBOL vmlinux 0x895a27c7 vfs_read +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89797060 _raw_read_lock +EXPORT_SYMBOL vmlinux 0x899724f1 blk_end_request_all +EXPORT_SYMBOL vmlinux 0x89ae4368 bio_add_page +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 0x89e50950 swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x8a1d59f6 inet_sendmsg +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 0x8ad4d974 bio_kmalloc +EXPORT_SYMBOL vmlinux 0x8aea1297 sock_i_ino +EXPORT_SYMBOL vmlinux 0x8b065f8b block_prepare_write +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b4c0216 ipv4_specific +EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x8b608865 do_SAK +EXPORT_SYMBOL vmlinux 0x8b69fbe5 journal_release_buffer +EXPORT_SYMBOL vmlinux 0x8b6ac975 journal_update_format +EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup +EXPORT_SYMBOL vmlinux 0x8bbfa016 key_unlink +EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long +EXPORT_SYMBOL vmlinux 0x8bf22d6b blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x8bf30db4 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x8c07f3dc udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c23e72b pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x8c30bbde pci_restore_state +EXPORT_SYMBOL vmlinux 0x8c483c65 elv_register_queue +EXPORT_SYMBOL vmlinux 0x8c52cd91 kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x8c6f29bd pmac_resume_agp_for_card +EXPORT_SYMBOL vmlinux 0x8c84695f __inet6_hash +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 0x8cbc0067 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x8cc6368f rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8ce29260 eth_header +EXPORT_SYMBOL vmlinux 0x8ceef60d register_sysctl_table +EXPORT_SYMBOL vmlinux 0x8cf459dd pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x8d0f5d81 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x8d20284d fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x8d2b5252 get_fs_type +EXPORT_SYMBOL vmlinux 0x8d4fc4e4 find_get_page +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d6906d4 unregister_memory_notifier +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 0x8db35287 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x8dbbaa8a page_readlink +EXPORT_SYMBOL vmlinux 0x8de0b5ac mempool_create +EXPORT_SYMBOL vmlinux 0x8de2fbc5 _lv1_get_virtual_uart_param +EXPORT_SYMBOL vmlinux 0x8de80e0c scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x8dfb527d inet_frag_find +EXPORT_SYMBOL vmlinux 0x8dfb7098 path_get +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e0d6e38 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk +EXPORT_SYMBOL vmlinux 0x8e663915 of_gpio_count +EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq +EXPORT_SYMBOL vmlinux 0x8e7e69cf set_blocksize +EXPORT_SYMBOL vmlinux 0x8ec04552 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x8ee3f6ab tty_port_close +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8eea1bc9 smu_poll +EXPORT_SYMBOL vmlinux 0x8ef0587f fb_show_logo +EXPORT_SYMBOL vmlinux 0x8ef31f4d splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x8efdd2a0 netpoll_send_skb +EXPORT_SYMBOL vmlinux 0x8f1a110c rtnl_notify +EXPORT_SYMBOL vmlinux 0x8f295945 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x8f2d100d tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f557be9 blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f75707f jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x8f7c35c7 sock_map_fd +EXPORT_SYMBOL vmlinux 0x8f849406 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x8f85f835 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x8f9d8ea2 migrate_page +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 0x9021f345 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x9022f3c5 pci_write_vpd +EXPORT_SYMBOL vmlinux 0x9044ec8d unregister_binfmt +EXPORT_SYMBOL vmlinux 0x9050c070 find_inode_number +EXPORT_SYMBOL vmlinux 0x905790a9 release_sock +EXPORT_SYMBOL vmlinux 0x90bf7097 dev_addr_init +EXPORT_SYMBOL vmlinux 0x90c4319a matroxfb_read_pins +EXPORT_SYMBOL vmlinux 0x90c970df create_mnt_ns +EXPORT_SYMBOL vmlinux 0x90daccee bio_phys_segments +EXPORT_SYMBOL vmlinux 0x90e146c2 trace_seq_putc +EXPORT_SYMBOL vmlinux 0x90e91d12 skb_insert +EXPORT_SYMBOL vmlinux 0x91201cef _lv1_enable_logical_spe +EXPORT_SYMBOL vmlinux 0x9123db0e mnt_unpin +EXPORT_SYMBOL vmlinux 0x912557ce rtas_busy_delay +EXPORT_SYMBOL vmlinux 0x915e1208 tb_ticks_per_usec +EXPORT_SYMBOL vmlinux 0x9168c033 rtas_get_sensor +EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong +EXPORT_SYMBOL vmlinux 0x91816dfa input_unregister_device +EXPORT_SYMBOL vmlinux 0x919a88e2 __pagevec_release +EXPORT_SYMBOL vmlinux 0x919d1163 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x91c4feca _lv1_unmap_htab +EXPORT_SYMBOL vmlinux 0x91ea7015 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool +EXPORT_SYMBOL vmlinux 0x92392cd9 iov_shorten +EXPORT_SYMBOL vmlinux 0x923c54cf idr_destroy +EXPORT_SYMBOL vmlinux 0x927f12c4 init_buffer +EXPORT_SYMBOL vmlinux 0x92bc343e kill_litter_super +EXPORT_SYMBOL vmlinux 0x92e27020 journal_errno +EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x932c71d7 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x932cd46f check_disk_size_change +EXPORT_SYMBOL vmlinux 0x93341fa0 inet_release +EXPORT_SYMBOL vmlinux 0x9337c5e8 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x93438ce9 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x93507f1c _lv1_gpu_memory_allocate +EXPORT_SYMBOL vmlinux 0x9385e1f2 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x938b2201 cdrom_release +EXPORT_SYMBOL vmlinux 0x938b68ed blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x939e0fa7 neigh_table_init +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93b66139 bio_free +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x941023c0 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x941556d2 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x94198530 fput +EXPORT_SYMBOL vmlinux 0x942d91ef disk_stack_limits +EXPORT_SYMBOL vmlinux 0x943a4030 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x9450755a backlight_force_update +EXPORT_SYMBOL vmlinux 0x94586a29 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x9466ab75 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x9485be3d sk_wait_data +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94a6f799 bio_alloc +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x94e573b8 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x9501e208 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x950f3600 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x9514151a _mcount +EXPORT_SYMBOL vmlinux 0x9524b0ae _outsb +EXPORT_SYMBOL vmlinux 0x952f4573 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x952f68d7 wake_up_process +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x955a5da1 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x956f97bc kernel_sendpage +EXPORT_SYMBOL vmlinux 0x95755eba pci_target_state +EXPORT_SYMBOL vmlinux 0x95bed6e3 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x95c87772 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x95ceb864 key_update +EXPORT_SYMBOL vmlinux 0x95d72c48 mb_cache_create +EXPORT_SYMBOL vmlinux 0x95f1dd9b do_sync_write +EXPORT_SYMBOL vmlinux 0x9600d4ea netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x963fd76b skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x9655f7a1 generic_file_open +EXPORT_SYMBOL vmlinux 0x9690f9f7 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x96c2fe21 __page_symlink +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d7311f pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x96e6590d scsi_prep_return +EXPORT_SYMBOL vmlinux 0x9712ecb0 sock_wmalloc +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 0x9748927f _outsw_ns +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x97582de2 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x9768904a llc_sap_close +EXPORT_SYMBOL vmlinux 0x976ad712 blk_end_request +EXPORT_SYMBOL vmlinux 0x976e014f _lv1_map_device_mmio_region +EXPORT_SYMBOL vmlinux 0x97786c50 skb_make_writable +EXPORT_SYMBOL vmlinux 0x979896e1 skb_store_bits +EXPORT_SYMBOL vmlinux 0x97ab1462 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x97b28f42 generic_show_options +EXPORT_SYMBOL vmlinux 0x97d0d7a9 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x97dcee18 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0x97e6664d seq_lseek +EXPORT_SYMBOL vmlinux 0x9811a9a2 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x98177648 _lv1_set_lpm_interval +EXPORT_SYMBOL vmlinux 0x9835f60d neigh_event_ns +EXPORT_SYMBOL vmlinux 0x9837820a send_sig_info +EXPORT_SYMBOL vmlinux 0x983e09f5 irq_stat +EXPORT_SYMBOL vmlinux 0x984f7ea8 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x985e1d56 alloc_trdev +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init +EXPORT_SYMBOL vmlinux 0x98a48e37 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x98bdf347 vfs_unlink +EXPORT_SYMBOL vmlinux 0x98ff8621 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x99039a7c pci_bus_type +EXPORT_SYMBOL vmlinux 0x991eb0dc ip_defrag +EXPORT_SYMBOL vmlinux 0x9928cc7a blk_plug_device +EXPORT_SYMBOL vmlinux 0x9952cdeb eth_header_cache +EXPORT_SYMBOL vmlinux 0x9955df7a fail_migrate_page +EXPORT_SYMBOL vmlinux 0x995c0213 seq_path +EXPORT_SYMBOL vmlinux 0x99697183 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x998be5b3 find_lock_page +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99afe916 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x99be2977 file_permission +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 0x99d8d187 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x99ede469 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x99f1d8bf end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x9a066b98 security_path_chown +EXPORT_SYMBOL vmlinux 0x9a1554c1 register_console +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1ffb92 _lv1_clear_spe_interrupt_status +EXPORT_SYMBOL vmlinux 0x9a3545ef generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x9a47911e inet_del_protocol +EXPORT_SYMBOL vmlinux 0x9a4b18c6 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x9a56857c i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0x9a58da8c security_sb_clone_mnt_opts +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 0x9a8c2ca0 scsi_device_put +EXPORT_SYMBOL vmlinux 0x9a9e9fb6 pci_find_bus +EXPORT_SYMBOL vmlinux 0x9aabc564 crc16 +EXPORT_SYMBOL vmlinux 0x9ab92f8a d_alloc_name +EXPORT_SYMBOL vmlinux 0x9aba3fc5 lookup_bdev +EXPORT_SYMBOL vmlinux 0x9b02eeb2 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x9b0f5f8f cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b5a31e0 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x9b5b1992 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x9b6603b2 mdiobus_write +EXPORT_SYMBOL vmlinux 0x9b81e5d4 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bd00c7b journal_check_used_features +EXPORT_SYMBOL vmlinux 0x9bd82e85 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x9bde7b7a tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x9bfabb6a tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan +EXPORT_SYMBOL vmlinux 0x9c259d2e filp_open +EXPORT_SYMBOL vmlinux 0x9c47480e dquot_operations +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c4a2c1c tcp_disconnect +EXPORT_SYMBOL vmlinux 0x9c56580b bio_endio +EXPORT_SYMBOL vmlinux 0x9c6b57cf filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x9c899c7f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x9ca95a0e sort +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cc5be2b cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x9ccf1f67 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x9ce5e9c2 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d024467 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x9d0cdd91 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x9d14983a ppc_enable_pmcs +EXPORT_SYMBOL vmlinux 0x9d24ac1d kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x9d303a49 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d66e412 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x9d76246d bdget_disk +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 0x9dac138b mark_info_dirty +EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x9db765bc __dquot_transfer +EXPORT_SYMBOL vmlinux 0x9dbd3208 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x9dd3ff30 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x9dfcf7d9 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x9e209536 bio_unmap_user +EXPORT_SYMBOL vmlinux 0x9e2ef70e d_lookup +EXPORT_SYMBOL vmlinux 0x9e32f200 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x9e5f31d0 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x9e741a59 nf_log_packet +EXPORT_SYMBOL vmlinux 0x9e875c88 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x9e937115 generic_write_sync +EXPORT_SYMBOL vmlinux 0x9e97375d rtas_busy_delay_time +EXPORT_SYMBOL vmlinux 0x9e9d6df2 get_disk +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9eb72b94 writeback_inodes_sb_if_idle +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ec0db60 default_file_splice_read +EXPORT_SYMBOL vmlinux 0x9edbbd6e blk_queue_ordered +EXPORT_SYMBOL vmlinux 0x9edbecae snprintf +EXPORT_SYMBOL vmlinux 0x9ee78669 _lv1_write_virtual_uart +EXPORT_SYMBOL vmlinux 0x9eec7c26 dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9eeca41b pci_pme_capable +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9eed8ed3 dm_register_target +EXPORT_SYMBOL vmlinux 0x9eefcafa ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x9f077c6c tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool +EXPORT_SYMBOL vmlinux 0x9f465893 d_path +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f4f7f1e simple_empty +EXPORT_SYMBOL vmlinux 0x9f5438f8 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x9f6778e8 __breadahead +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fd31d4a tcf_exts_change +EXPORT_SYMBOL vmlinux 0x9fd332b3 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fedd604 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x9ffb9c85 tcp_poll +EXPORT_SYMBOL vmlinux 0xa0197bf5 bio_map_kern +EXPORT_SYMBOL vmlinux 0xa0210160 key_payload_reserve +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 0xa0ae432b proc_dointvec +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b9ea18 sock_setsockopt +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize +EXPORT_SYMBOL vmlinux 0xa0d56ad0 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xa0f4129b kmem_cache_size +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0fe07d3 filp_close +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa119b715 pmac_register_agp_pm +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa1402dfb netif_device_detach +EXPORT_SYMBOL vmlinux 0xa14138af dev_mc_del +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa1446707 rtas +EXPORT_SYMBOL vmlinux 0xa16860b6 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xa18d8200 tcp_child_process +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba4b95 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa1bc38b1 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1d95ff7 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0xa1e842a5 blk_rq_init +EXPORT_SYMBOL vmlinux 0xa1f020e6 input_flush_device +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 0xa22d0ac2 unlock_new_inode +EXPORT_SYMBOL vmlinux 0xa233204d seq_bitmap +EXPORT_SYMBOL vmlinux 0xa235632f inode_set_bytes +EXPORT_SYMBOL vmlinux 0xa23ae852 bdevname +EXPORT_SYMBOL vmlinux 0xa264adad blk_start_request +EXPORT_SYMBOL vmlinux 0xa265fe28 register_qdisc +EXPORT_SYMBOL vmlinux 0xa284e918 of_dev_put +EXPORT_SYMBOL vmlinux 0xa294de37 inet_stream_ops +EXPORT_SYMBOL vmlinux 0xa29be043 scm_fp_dup +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2bbed37 crash_shutdown_register +EXPORT_SYMBOL vmlinux 0xa2e15b0a pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xa2e24d15 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy +EXPORT_SYMBOL vmlinux 0xa3401809 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa384b5fe down_write +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa3a35932 delayed_slow_work_enqueue +EXPORT_SYMBOL vmlinux 0xa3abc422 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xa3b06c2d cdev_alloc +EXPORT_SYMBOL vmlinux 0xa3f72631 serio_interrupt +EXPORT_SYMBOL vmlinux 0xa3fba305 simple_readpage +EXPORT_SYMBOL vmlinux 0xa4086a64 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xa419ba9c sock_common_setsockopt +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 0xa49847d9 sk_release_kernel +EXPORT_SYMBOL vmlinux 0xa4b359d4 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0xa4b3eea4 macio_dev_get +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4bdd447 __cputime_clockt_factor +EXPORT_SYMBOL vmlinux 0xa5378c60 ps2_end_command +EXPORT_SYMBOL vmlinux 0xa545a595 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xa554104d rwsem_wake +EXPORT_SYMBOL vmlinux 0xa5591fdd sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa576c263 generic_find_next_le_bit +EXPORT_SYMBOL vmlinux 0xa577f589 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa5906567 dev_open +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5a8ea9d read_cache_page_async +EXPORT_SYMBOL vmlinux 0xa5af0e19 llc_set_station_handler +EXPORT_SYMBOL vmlinux 0xa5af75e0 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0xa5b00659 ppc_proc_freq +EXPORT_SYMBOL vmlinux 0xa5b17df1 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xa5e93975 put_page +EXPORT_SYMBOL vmlinux 0xa5ec4012 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0xa5f20791 dev_get_by_index +EXPORT_SYMBOL vmlinux 0xa605ba9a tty_kref_put +EXPORT_SYMBOL vmlinux 0xa6241185 ip_route_output_key +EXPORT_SYMBOL vmlinux 0xa65972b8 _memcpy_toio +EXPORT_SYMBOL vmlinux 0xa6689ddb alloc_file +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6b0aeff bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0xa6cd60c2 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa709cc8c sock_recvmsg +EXPORT_SYMBOL vmlinux 0xa7159098 journal_abort +EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes +EXPORT_SYMBOL vmlinux 0xa72a6289 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xa738bcaa simple_set_mnt +EXPORT_SYMBOL vmlinux 0xa7502e21 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0xa753c18c dquot_enable +EXPORT_SYMBOL vmlinux 0xa76107ef rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xa77d22e4 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xa798a1a9 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0xa7a66fe1 __blk_end_request +EXPORT_SYMBOL vmlinux 0xa7b184ff input_register_device +EXPORT_SYMBOL vmlinux 0xa7b85692 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xa7bcf056 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xa7d47d22 nla_append +EXPORT_SYMBOL vmlinux 0xa7f1e9f9 sock_i_uid +EXPORT_SYMBOL vmlinux 0xa8150db0 locks_copy_lock +EXPORT_SYMBOL vmlinux 0xa816c525 schedule_work_on +EXPORT_SYMBOL vmlinux 0xa8466659 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xa866c22e dquot_quota_on_path +EXPORT_SYMBOL vmlinux 0xa875ae59 pci_read_vpd +EXPORT_SYMBOL vmlinux 0xa882692f vfs_link +EXPORT_SYMBOL vmlinux 0xa886a958 krealloc +EXPORT_SYMBOL vmlinux 0xa895b20f ps2_handle_ack +EXPORT_SYMBOL vmlinux 0xa89f5606 d_find_alias +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8c8bf8c xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xa8ced546 _lv1_net_set_interrupt_status_indicator +EXPORT_SYMBOL vmlinux 0xa8dd2433 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0xa8ee8d38 pci_read_irq_line +EXPORT_SYMBOL vmlinux 0xa8f4ac6c tty_devnum +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa91c77b6 _lv1_end_of_interrupt +EXPORT_SYMBOL vmlinux 0xa921141b alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0xa935f2c1 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0xa9373ab7 generic_writepages +EXPORT_SYMBOL vmlinux 0xa9424e96 blk_insert_request +EXPORT_SYMBOL vmlinux 0xa94266f0 down_trylock +EXPORT_SYMBOL vmlinux 0xa9521bc4 drop_super +EXPORT_SYMBOL vmlinux 0xa9b25519 dquot_quota_on +EXPORT_SYMBOL vmlinux 0xa9bd1736 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xa9df036b __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xa9e79b42 dm_table_get_md +EXPORT_SYMBOL vmlinux 0xa9edc8e7 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xaa0edca8 pasemi_dma_alloc_fun +EXPORT_SYMBOL vmlinux 0xaa2ea9b1 d_genocide +EXPORT_SYMBOL vmlinux 0xaa4be7dc remove_arg_zero +EXPORT_SYMBOL vmlinux 0xaa5165bc compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0xaa6e4df5 _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa8cddab neigh_ifdown +EXPORT_SYMBOL vmlinux 0xaa91cf16 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0xaaaa77de input_get_keycode +EXPORT_SYMBOL vmlinux 0xaaadaeef free_netdev +EXPORT_SYMBOL vmlinux 0xaabbfdf9 elevator_exit +EXPORT_SYMBOL vmlinux 0xaaf0ef2d dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab00fa78 xfrm_lookup +EXPORT_SYMBOL vmlinux 0xab093132 fb_find_mode +EXPORT_SYMBOL vmlinux 0xab286deb invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xab44f494 fb_set_var +EXPORT_SYMBOL vmlinux 0xab4fbd01 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xab629e82 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0xab66f611 _lv1_set_lpm_trigger_control +EXPORT_SYMBOL vmlinux 0xab79cb44 elv_add_request +EXPORT_SYMBOL vmlinux 0xab7a4622 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xab83dde7 dev_get_by_name +EXPORT_SYMBOL vmlinux 0xabc19f3a xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL vmlinux 0xabf34913 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0xabf459b7 fb_validate_mode +EXPORT_SYMBOL vmlinux 0xac00b233 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0xac07664f input_inject_event +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac26b820 _raw_write_lock +EXPORT_SYMBOL vmlinux 0xac383451 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac79dbce nf_log_unregister +EXPORT_SYMBOL vmlinux 0xac918f9e __bforget +EXPORT_SYMBOL vmlinux 0xac960cd5 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xacac18fe pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0xacb605d2 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xacc9a7f7 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacd14ab8 _lv1_construct_logical_spe +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad0c4a50 prepare_binprm +EXPORT_SYMBOL vmlinux 0xad18c638 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xad26dcb7 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xad313865 __rta_fill +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad5001c0 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0xad60478d neigh_table_clear +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 0xadbe6654 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xadca0ed3 devm_free_irq +EXPORT_SYMBOL vmlinux 0xadedfcc7 scsi_register +EXPORT_SYMBOL vmlinux 0xadeffe25 _lv1_gpu_context_intr +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 0xae67d19b blk_get_request +EXPORT_SYMBOL vmlinux 0xae8baeaa do_splice_to +EXPORT_SYMBOL vmlinux 0xaeba5c98 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xaed390a2 ps2_command +EXPORT_SYMBOL vmlinux 0xaed40f5a dput +EXPORT_SYMBOL vmlinux 0xaed8b253 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0xaee2cdd4 phy_enable_interrupts +EXPORT_SYMBOL vmlinux 0xaef1a59e thaw_process +EXPORT_SYMBOL vmlinux 0xaf063510 _raw_spin_lock_bh +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 0xaf4fe38e register_exec_domain +EXPORT_SYMBOL vmlinux 0xaf59afef dm_unregister_target +EXPORT_SYMBOL vmlinux 0xaf6f6ac4 __lock_buffer +EXPORT_SYMBOL vmlinux 0xaf96cf9a __blockdev_direct_IO_newtrunc +EXPORT_SYMBOL vmlinux 0xaf9ada98 bioset_free +EXPORT_SYMBOL vmlinux 0xafaf8685 init_special_inode +EXPORT_SYMBOL vmlinux 0xafd11121 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xafd7b062 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xafdf5e92 tcp_v4_send_check +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 0xb03e2881 scsi_get_command +EXPORT_SYMBOL vmlinux 0xb057f2dd tty_port_tty_set +EXPORT_SYMBOL vmlinux 0xb06c56ce filemap_fdatawrite +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 0xb0e1b628 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xb0ec0a76 block_write_begin +EXPORT_SYMBOL vmlinux 0xb10d361e dev_uc_sync +EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat +EXPORT_SYMBOL vmlinux 0xb138b7f0 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xb1458e30 lro_flush_all +EXPORT_SYMBOL vmlinux 0xb155c609 rfkill_alloc +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 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c6e787 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xb1dfc544 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short +EXPORT_SYMBOL vmlinux 0xb227d174 log_start_commit +EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features +EXPORT_SYMBOL vmlinux 0xb2511068 blk_init_tags +EXPORT_SYMBOL vmlinux 0xb264085a input_set_keycode_big +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb274e2d4 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xb28a1f7f dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xb2952516 bio_sector_offset +EXPORT_SYMBOL vmlinux 0xb2972cb8 unload_nls +EXPORT_SYMBOL vmlinux 0xb2d261e1 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0xb2e34c65 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xb2e3a8a2 scsi_register_interface +EXPORT_SYMBOL vmlinux 0xb30ff011 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xb3335e74 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0xb33adc46 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xb33d3db1 security_inode_readlink +EXPORT_SYMBOL vmlinux 0xb33dc99d neigh_compat_output +EXPORT_SYMBOL vmlinux 0xb3594fd5 scsi_print_sense +EXPORT_SYMBOL vmlinux 0xb3633676 eth_validate_addr +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 0xb3acee4e xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xb3bf73df cpu_active_mask +EXPORT_SYMBOL vmlinux 0xb3ff1f69 free_pages_exact +EXPORT_SYMBOL vmlinux 0xb408407e vfs_rename +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb42edf68 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xb45a9eb4 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xb45bbcf3 __page_cache_alloc +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4716211 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0xb474a6c4 unregister_cdrom +EXPORT_SYMBOL vmlinux 0xb47e037f dquot_disable +EXPORT_SYMBOL vmlinux 0xb4913972 tc_classify +EXPORT_SYMBOL vmlinux 0xb4b34782 alloc_disk +EXPORT_SYMBOL vmlinux 0xb4b50733 tty_throttle +EXPORT_SYMBOL vmlinux 0xb4cab589 napi_frags_skb +EXPORT_SYMBOL vmlinux 0xb4d79955 netif_napi_del +EXPORT_SYMBOL vmlinux 0xb503a579 i2c_release_client +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb509dcf8 tcp4_gro_complete +EXPORT_SYMBOL vmlinux 0xb51f74cc gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xb52421ee pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5487525 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0xb56bfd9e smu_spinwait_cmd +EXPORT_SYMBOL vmlinux 0xb56d1619 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xb57c1763 inet_register_protosw +EXPORT_SYMBOL vmlinux 0xb596f7b1 tty_unthrottle +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5bca78f mdiobus_read +EXPORT_SYMBOL vmlinux 0xb5c9c344 paca +EXPORT_SYMBOL vmlinux 0xb5f82907 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xb6006bff elevator_init +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb626a236 __find_get_block +EXPORT_SYMBOL vmlinux 0xb62f0a1f of_node_get +EXPORT_SYMBOL vmlinux 0xb62fc685 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xb6407e3f inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xb646f502 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0xb65f1b2c down_interruptible +EXPORT_SYMBOL vmlinux 0xb663ffa6 nobh_write_end +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 0xb6fe50f7 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xb71b564f kmem_cache_alloc_node_notrace +EXPORT_SYMBOL vmlinux 0xb73926d0 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xb73fa954 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xb7467b58 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xb7578139 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0xb76ee5c0 noop_fsync +EXPORT_SYMBOL vmlinux 0xb792c8cb find_vma +EXPORT_SYMBOL vmlinux 0xb7b65b6f kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xb7becdb3 proc_dostring +EXPORT_SYMBOL vmlinux 0xb7c59087 invalidate_partition +EXPORT_SYMBOL vmlinux 0xb7c8a4a3 user_revoke +EXPORT_SYMBOL vmlinux 0xb7f5a4ff tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xb83ec6a6 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0xb847f644 sock_init_data +EXPORT_SYMBOL vmlinux 0xb84dd68f tcp_check_req +EXPORT_SYMBOL vmlinux 0xb8677e03 __put_cred +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb8791ba5 lock_sock_nested +EXPORT_SYMBOL vmlinux 0xb87eb7e6 free_buffer_head +EXPORT_SYMBOL vmlinux 0xb88b8855 clocksource_unregister +EXPORT_SYMBOL vmlinux 0xb8908e12 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xb89aed80 flush_old_exec +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8a30c7e _lv1_add_lpm_event_bookmark +EXPORT_SYMBOL vmlinux 0xb8ac81d4 kill_pgrp +EXPORT_SYMBOL vmlinux 0xb8baa29c generic_setlease +EXPORT_SYMBOL vmlinux 0xb8bf14c8 __getblk +EXPORT_SYMBOL vmlinux 0xb8bf85f9 dev_gro_receive +EXPORT_SYMBOL vmlinux 0xb8c50c0f journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xb8d51aed of_phy_find_device +EXPORT_SYMBOL vmlinux 0xb8df3f9c bio_copy_kern +EXPORT_SYMBOL vmlinux 0xb8eed84f sync_inode +EXPORT_SYMBOL vmlinux 0xb8f21b5d gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xb90605d2 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xb90b1fab scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xb9174f2c abx500_register_ops +EXPORT_SYMBOL vmlinux 0xb923b961 security_file_permission +EXPORT_SYMBOL vmlinux 0xb95b12f7 pci_match_id +EXPORT_SYMBOL vmlinux 0xb9703e56 scsi_is_host_device +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 0xba048150 fget +EXPORT_SYMBOL vmlinux 0xba122a2c smu_done_complete +EXPORT_SYMBOL vmlinux 0xba399243 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba59150c mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0xba6bcee0 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbad1e2ea destroy_EII_client +EXPORT_SYMBOL vmlinux 0xbaeff5f2 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0xbafb7899 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb192471 security_d_instantiate +EXPORT_SYMBOL vmlinux 0xbb1dca84 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xbb2301d8 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xbb2a32e6 phy_print_status +EXPORT_SYMBOL vmlinux 0xbb2c27e9 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xbb3c46f3 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xbb4743b6 brioctl_set +EXPORT_SYMBOL vmlinux 0xbb5a35d0 dst_alloc +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb639b15 validate_sp +EXPORT_SYMBOL vmlinux 0xbb686ef3 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0xbb801b63 elv_rb_find +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbb9c594e qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xbb9f5fa5 down_write_trylock +EXPORT_SYMBOL vmlinux 0xbba71c08 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbe343b0 sock_no_bind +EXPORT_SYMBOL vmlinux 0xbc1b95ef inet_frag_kill +EXPORT_SYMBOL vmlinux 0xbc232e21 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0xbc316de4 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0xbc33bc04 fsnotify_obtain_group +EXPORT_SYMBOL vmlinux 0xbc380356 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xbc3b2c6c security_path_mkdir +EXPORT_SYMBOL vmlinux 0xbc3f19f1 gen_pool_free +EXPORT_SYMBOL vmlinux 0xbc5d47e8 sock_wake_async +EXPORT_SYMBOL vmlinux 0xbc6c77dc module_refcount +EXPORT_SYMBOL vmlinux 0xbc8a0775 blk_run_queue +EXPORT_SYMBOL vmlinux 0xbc9729e7 inet_stream_connect +EXPORT_SYMBOL vmlinux 0xbcbcffed textsearch_unregister +EXPORT_SYMBOL vmlinux 0xbcd3b47f dev_alloc_name +EXPORT_SYMBOL vmlinux 0xbcd85d6f dm_put_device +EXPORT_SYMBOL vmlinux 0xbceb99f7 pci_request_regions +EXPORT_SYMBOL vmlinux 0xbd0701cd generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xbd0b7fb6 hippi_change_mtu +EXPORT_SYMBOL vmlinux 0xbd25d895 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xbd33c6ad put_io_context +EXPORT_SYMBOL vmlinux 0xbd45c423 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xbd51dc0e proto_register +EXPORT_SYMBOL vmlinux 0xbd7e5d54 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xbd7f8c9b idr_get_next +EXPORT_SYMBOL vmlinux 0xbd8cfa15 pasemi_write_mac_reg +EXPORT_SYMBOL vmlinux 0xbdad545a __serio_register_driver +EXPORT_SYMBOL vmlinux 0xbdeff423 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbe15118e submit_bh +EXPORT_SYMBOL vmlinux 0xbe25348f add_disk +EXPORT_SYMBOL vmlinux 0xbe48798f dst_discard +EXPORT_SYMBOL vmlinux 0xbe66707d skb_find_text +EXPORT_SYMBOL vmlinux 0xbe7f4d26 of_mdiobus_register +EXPORT_SYMBOL vmlinux 0xbe814159 ida_remove +EXPORT_SYMBOL vmlinux 0xbeaa12f9 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xbeaef5ae journal_create +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf2fe79e follow_up +EXPORT_SYMBOL vmlinux 0xbf424b0d d_add_ci +EXPORT_SYMBOL vmlinux 0xbf49f3a3 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0xbf625948 of_match_device +EXPORT_SYMBOL vmlinux 0xbf721d24 compat_tcp_setsockopt +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 0xbfabfe59 __debugger_iabr_match +EXPORT_SYMBOL vmlinux 0xbfb71f22 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xbfb8b0b7 _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xbfbe6f43 lock_rename +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfe08684 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xbff779ab scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xbff8182c plpar_hcall_norets +EXPORT_SYMBOL vmlinux 0xbff83f12 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xc0094e0b dev_addr_flush +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc05db902 gen_pool_create +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc0868233 d_prune_aliases +EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0af5a7c max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xc0c9b7c7 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xc0f848f7 pci_reenable_device +EXPORT_SYMBOL vmlinux 0xc10a8dd1 should_remove_suid +EXPORT_SYMBOL vmlinux 0xc10cf8e6 padata_do_parallel +EXPORT_SYMBOL vmlinux 0xc114e37f do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0xc12bc5c1 pci_domain_nr +EXPORT_SYMBOL vmlinux 0xc13511d7 cpumask_next_and +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 0xc16a6922 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xc1840a36 __netdev_alloc_page +EXPORT_SYMBOL vmlinux 0xc188c13d blk_complete_request +EXPORT_SYMBOL vmlinux 0xc1aab106 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xc1bcd730 tty_register_driver +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1f75524 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0xc1fc8216 bdi_register +EXPORT_SYMBOL vmlinux 0xc2091365 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xc22bcc67 mach_pseries +EXPORT_SYMBOL vmlinux 0xc22e23b7 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xc2487eeb request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc2a579d2 cad_pid +EXPORT_SYMBOL vmlinux 0xc2b1211c blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xc2e19db0 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2fb9ee1 _lv1_shutdown_logical_partition +EXPORT_SYMBOL vmlinux 0xc300ec4b pci_scan_slot +EXPORT_SYMBOL vmlinux 0xc3087f3c inode_setattr +EXPORT_SYMBOL vmlinux 0xc314c3d2 __cputime_jiffies_factor +EXPORT_SYMBOL vmlinux 0xc32d8a8d ide_raw_taskfile +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 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc400f779 __ps2_command +EXPORT_SYMBOL vmlinux 0xc40da31b fsnotify_destroy_mark_by_entry +EXPORT_SYMBOL vmlinux 0xc41b8b9f vfs_readv +EXPORT_SYMBOL vmlinux 0xc41f1696 _lv1_configure_virtual_uart_irq +EXPORT_SYMBOL vmlinux 0xc429c9c2 simple_statfs +EXPORT_SYMBOL vmlinux 0xc45c5adc revalidate_disk +EXPORT_SYMBOL vmlinux 0xc460139b pci_enable_bridges +EXPORT_SYMBOL vmlinux 0xc46d4a89 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0xc47cdf9c _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc49b8b65 pid_task +EXPORT_SYMBOL vmlinux 0xc49c19ba blk_execute_rq +EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic +EXPORT_SYMBOL vmlinux 0xc5089620 _lv1_stop_ppe_periodic_tracer +EXPORT_SYMBOL vmlinux 0xc51ddf2e block_truncate_page +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc5834e90 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xc5d6f798 sock_kmalloc +EXPORT_SYMBOL vmlinux 0xc5ec4df0 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xc5f531bf skb_seq_read +EXPORT_SYMBOL vmlinux 0xc625202b vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0xc6263196 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xc663b075 __ioremap +EXPORT_SYMBOL vmlinux 0xc66a528f remove_from_page_cache +EXPORT_SYMBOL vmlinux 0xc6800ba0 seq_escape +EXPORT_SYMBOL vmlinux 0xc6814224 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0xc6a6992e unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0xc6acea9f bd_release +EXPORT_SYMBOL vmlinux 0xc6b9d1a1 compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xc6c69d4a get_phy_device +EXPORT_SYMBOL vmlinux 0xc6cdc002 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xc6cdc16f sock_no_listen +EXPORT_SYMBOL vmlinux 0xc711d3e0 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xc7253417 kern_path +EXPORT_SYMBOL vmlinux 0xc73df3a8 simple_rename +EXPORT_SYMBOL vmlinux 0xc740c64a memchr +EXPORT_SYMBOL vmlinux 0xc740f629 ip_ct_attach +EXPORT_SYMBOL vmlinux 0xc74e65a2 get_sb_ns +EXPORT_SYMBOL vmlinux 0xc76dc61d simple_link +EXPORT_SYMBOL vmlinux 0xc78db17d netdev_features_change +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a24d76 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7a64669 new_inode +EXPORT_SYMBOL vmlinux 0xc7ec28b0 memcmp +EXPORT_SYMBOL vmlinux 0xc83e920f sync_blockdev +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc853b5ea __nla_reserve +EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0xc87eb5f0 napi_frags_finish +EXPORT_SYMBOL vmlinux 0xc8862ad0 lock_fb_info +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8a4bacf idr_replace +EXPORT_SYMBOL vmlinux 0xc8aa09ff tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xc8ae625e bio_copy_user +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8b838bb journal_extend +EXPORT_SYMBOL vmlinux 0xc8e31d75 _lv1_configure_irq_state_bitmap +EXPORT_SYMBOL vmlinux 0xc90f5e3a dm_table_get_size +EXPORT_SYMBOL vmlinux 0xc985e77d pci_iomap +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9a5a0dc dquot_file_open +EXPORT_SYMBOL vmlinux 0xc9b664ca phy_driver_register +EXPORT_SYMBOL vmlinux 0xc9c9c3f4 lookup_one_len +EXPORT_SYMBOL vmlinux 0xc9f9a9f9 netpoll_setup +EXPORT_SYMBOL vmlinux 0xc9fc598d pasemi_read_dma_reg +EXPORT_SYMBOL vmlinux 0xca06fa14 input_open_device +EXPORT_SYMBOL vmlinux 0xca07bf6a iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xca122e73 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xca12b111 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xca13ccf7 generic_unplug_device +EXPORT_SYMBOL vmlinux 0xca496c64 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xca4ae806 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca825895 pmu_suspend +EXPORT_SYMBOL vmlinux 0xca887ab3 udp_disconnect +EXPORT_SYMBOL vmlinux 0xca8891ef inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xca88d89d framebuffer_release +EXPORT_SYMBOL vmlinux 0xcaabf3f9 pasemi_write_iob_reg +EXPORT_SYMBOL vmlinux 0xcab0f085 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel +EXPORT_SYMBOL vmlinux 0xcac4b1ba elv_rb_del +EXPORT_SYMBOL vmlinux 0xcadac0cb dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb9b95ad swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0xcbb5af35 pci_fixup_cardbus +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 0xcc186603 dget_locked +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc494537 poll_initwait +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc5ae46f blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xcc6910fc compat_mc_setsockopt +EXPORT_SYMBOL vmlinux 0xcc73f314 swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0xcc7b812b scsi_print_command +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 0xcc8da353 scsi_host_get +EXPORT_SYMBOL vmlinux 0xccb71acb cdev_init +EXPORT_SYMBOL vmlinux 0xccc51098 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xccc7b203 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xccc7d428 padata_stop +EXPORT_SYMBOL vmlinux 0xcccf54b5 sock_release +EXPORT_SYMBOL vmlinux 0xcce82d5e blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xccfa4619 bmap +EXPORT_SYMBOL vmlinux 0xcd0529c7 _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xcd1b45ce put_mnt_ns +EXPORT_SYMBOL vmlinux 0xcd3cb485 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xcd3d3f97 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xcd3e67b4 of_platform_bus_type +EXPORT_SYMBOL vmlinux 0xcd461acb generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xcd75ca98 i8042_install_filter +EXPORT_SYMBOL vmlinux 0xcd769f62 _lv1_gpu_device_map +EXPORT_SYMBOL vmlinux 0xcd86c87f __cond_resched_lock +EXPORT_SYMBOL vmlinux 0xcd8b6791 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xcddce492 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xce1974cb pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce3876ab xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xce3b3f09 profile_pc +EXPORT_SYMBOL vmlinux 0xce409cda pmac_set_early_video_resume +EXPORT_SYMBOL vmlinux 0xce4ea36d nla_put +EXPORT_SYMBOL vmlinux 0xce53a201 do_munmap +EXPORT_SYMBOL vmlinux 0xce598a66 journal_force_commit +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce63fc93 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xce77d150 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xce7dfd8b tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xce961577 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0xce9748f4 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xcea6f2d4 write_cache_pages +EXPORT_SYMBOL vmlinux 0xced6bd47 netlink_broadcast +EXPORT_SYMBOL vmlinux 0xcedc43cc pci_enable_device +EXPORT_SYMBOL vmlinux 0xcedfbad9 lock_super +EXPORT_SYMBOL vmlinux 0xcf196a3f journal_lock_updates +EXPORT_SYMBOL vmlinux 0xcf456e78 tcp_syn_ack_timeout +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 0xcfb7d5a0 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfd8c857 ilookup +EXPORT_SYMBOL vmlinux 0xcfe2cf2a tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xcfe98205 icmp_send +EXPORT_SYMBOL vmlinux 0xd00b33d7 giveup_fpu +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd0270585 arp_broken_ops +EXPORT_SYMBOL vmlinux 0xd0385184 dquot_commit +EXPORT_SYMBOL vmlinux 0xd04b7b8f kobject_add +EXPORT_SYMBOL vmlinux 0xd0556b40 add_timer +EXPORT_SYMBOL vmlinux 0xd05931ec _lv1_set_lpm_counter_control +EXPORT_SYMBOL vmlinux 0xd0773c52 skb_copy_expand +EXPORT_SYMBOL vmlinux 0xd0a589e5 of_register_driver +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0c6b758 d_obtain_alias +EXPORT_SYMBOL vmlinux 0xd0cbcc41 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xd0e911ad fb_get_mode +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f9a12c pneigh_lookup +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd10a9b0b end_page_writeback +EXPORT_SYMBOL vmlinux 0xd1262886 rtas_data_buf +EXPORT_SYMBOL vmlinux 0xd149c8a8 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xd14d7372 security_path_rmdir +EXPORT_SYMBOL vmlinux 0xd14da084 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0xd1761506 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0xd1895fe1 DAC1064_global_restore +EXPORT_SYMBOL vmlinux 0xd19d303a pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xd1a2364e open_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xd1c87524 d_move +EXPORT_SYMBOL vmlinux 0xd1fe8ebb _lv1_get_spe_interrupt_status +EXPORT_SYMBOL vmlinux 0xd2209584 key_link +EXPORT_SYMBOL vmlinux 0xd22b5abc iget_failed +EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel +EXPORT_SYMBOL vmlinux 0xd23e97ab audit_log_start +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 0xd2683298 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xd26ebb26 genl_register_ops +EXPORT_SYMBOL vmlinux 0xd286b223 arp_find +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2c105ae xfrm_register_type +EXPORT_SYMBOL vmlinux 0xd2cd5568 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xd2ef2638 smu_cmdbuf_abs +EXPORT_SYMBOL vmlinux 0xd300b520 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xd303cfcb bio_map_user +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd346f4c8 i2c_register_driver +EXPORT_SYMBOL vmlinux 0xd36822e3 flush_signals +EXPORT_SYMBOL vmlinux 0xd3729050 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xd3810313 tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0xd3a94390 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xd3af979c memdup_user +EXPORT_SYMBOL vmlinux 0xd3be16fb dm_table_put +EXPORT_SYMBOL vmlinux 0xd409383c pmu_request +EXPORT_SYMBOL vmlinux 0xd4195def generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xd41af574 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xd4235314 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xd424f6a3 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0xd4467e06 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xd45713f1 sock_create_kern +EXPORT_SYMBOL vmlinux 0xd46d0968 ioremap_flags +EXPORT_SYMBOL vmlinux 0xd4778883 mach_powermac +EXPORT_SYMBOL vmlinux 0xd4e2639c kthread_create +EXPORT_SYMBOL vmlinux 0xd51922c2 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +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 0xd56fe70a blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xd57f8789 iommu_num_pages +EXPORT_SYMBOL vmlinux 0xd587c43d gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xd588de00 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xd5908049 alloc_disk_node +EXPORT_SYMBOL vmlinux 0xd5963b5f pmac_suspend_agp_for_card +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5b45124 __dst_free +EXPORT_SYMBOL vmlinux 0xd5e1d719 _lv1_set_ppe_periodic_tracer_frequency +EXPORT_SYMBOL vmlinux 0xd61490b6 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0xd61b3dd5 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd630546f napi_get_frags +EXPORT_SYMBOL vmlinux 0xd6371fa3 tcf_register_action +EXPORT_SYMBOL vmlinux 0xd6430464 kernel_connect +EXPORT_SYMBOL vmlinux 0xd659bbb0 force_sig +EXPORT_SYMBOL vmlinux 0xd659e329 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0xd67b3145 notify_change +EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xd6c28b7f blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xd6edf811 _lv1_release_memory +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd7057932 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0xd705f077 skb_append +EXPORT_SYMBOL vmlinux 0xd72d05e9 skb_tx_hash +EXPORT_SYMBOL vmlinux 0xd72e1cfc _lv1_set_lpm_spr_trigger +EXPORT_SYMBOL vmlinux 0xd73bf527 dentry_unhash +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd786c0ea plpar_hcall9 +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7ab4ccd skb_free_datagram +EXPORT_SYMBOL vmlinux 0xd7c4c5e2 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0xd7cb8eac pskb_copy +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7fb370a jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0xd839cb86 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user +EXPORT_SYMBOL vmlinux 0xd854b5d6 path_lookup +EXPORT_SYMBOL vmlinux 0xd893228c nf_ct_attach +EXPORT_SYMBOL vmlinux 0xd897899c xfrm_register_km +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8d7c841 remap_pfn_range +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8ed4bd7 blk_fetch_request +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd9383194 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xd9457135 path_put +EXPORT_SYMBOL vmlinux 0xd954babf ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xd95e37cc locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xd96a8539 of_create_pci_dev +EXPORT_SYMBOL vmlinux 0xd97644a5 blk_put_request +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd99daeb2 vio_enable_interrupts +EXPORT_SYMBOL vmlinux 0xd9bac924 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0xd9bbb681 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xd9c925db unlock_rename +EXPORT_SYMBOL vmlinux 0xd9d4d09d _lv1_release_io_segment +EXPORT_SYMBOL vmlinux 0xd9ff6060 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xda039e05 key_negate_and_link +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda396b8e journal_set_features +EXPORT_SYMBOL vmlinux 0xda41fc69 put_disk +EXPORT_SYMBOL vmlinux 0xda4629e4 radix_tree_insert +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 0xdaa097a4 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xdaa6d391 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xdab8ca9a scsi_remove_host +EXPORT_SYMBOL vmlinux 0xdabff284 of_find_node_by_path +EXPORT_SYMBOL vmlinux 0xdacd119e ip_getsockopt +EXPORT_SYMBOL vmlinux 0xdadf0276 seq_write +EXPORT_SYMBOL vmlinux 0xdaf99b64 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0xdb57c257 ide_proc_unregister_driver +EXPORT_SYMBOL vmlinux 0xdb624ff0 pci_get_slot +EXPORT_SYMBOL vmlinux 0xdb7af572 skb_dequeue +EXPORT_SYMBOL vmlinux 0xdbb6c2d6 sys_imageblit +EXPORT_SYMBOL vmlinux 0xdbc9e9fd flush_dcache_page +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbd8c0e2 ip_queue_xmit +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 0xdc0ea2f6 __blk_run_queue +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc727289 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0xdc83b008 install_exec_creds +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 0xdd1e2119 netlink_ack +EXPORT_SYMBOL vmlinux 0xdd49207b security_path_chmod +EXPORT_SYMBOL vmlinux 0xdd851af3 generic_file_fsync +EXPORT_SYMBOL vmlinux 0xdd8cde52 module_put +EXPORT_SYMBOL vmlinux 0xdd955144 __debugger +EXPORT_SYMBOL vmlinux 0xddf8056a unregister_qdisc +EXPORT_SYMBOL vmlinux 0xde11854d matrox_millennium +EXPORT_SYMBOL vmlinux 0xde16832e nonseekable_open +EXPORT_SYMBOL vmlinux 0xde3d0008 generic_setxattr +EXPORT_SYMBOL vmlinux 0xde41c9b9 dm_io_client_create +EXPORT_SYMBOL vmlinux 0xde48e9ca _raw_spin_lock +EXPORT_SYMBOL vmlinux 0xde52d1c5 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0xde5ee72a __f_setown +EXPORT_SYMBOL vmlinux 0xde6f7088 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde869d6b init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0xde8ac737 vfs_symlink +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde97c32b inode_init_owner +EXPORT_SYMBOL vmlinux 0xded2ba74 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0xded97470 dev_get_flags +EXPORT_SYMBOL vmlinux 0xdf0db8a8 put_tty_driver +EXPORT_SYMBOL vmlinux 0xdf442d13 no_llseek +EXPORT_SYMBOL vmlinux 0xdf4c1829 inet_shutdown +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf60fc83 _lv1_net_start_tx_dma +EXPORT_SYMBOL vmlinux 0xdf65d192 have_submounts +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfb10773 raw_local_irq_restore +EXPORT_SYMBOL vmlinux 0xdfd13901 bio_pair_release +EXPORT_SYMBOL vmlinux 0xe01113ad pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0xe017ed45 tty_write_room +EXPORT_SYMBOL vmlinux 0xe031d2fb generic_listxattr +EXPORT_SYMBOL vmlinux 0xe04b1e34 register_key_type +EXPORT_SYMBOL vmlinux 0xe04ec824 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0xe06808dd freeze_super +EXPORT_SYMBOL vmlinux 0xe070e5c2 deactivate_super +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe0aa45af f_setown +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 0xe0fa1e22 cdev_add +EXPORT_SYMBOL vmlinux 0xe1040c33 simple_transaction_set +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe120be2a netif_carrier_off +EXPORT_SYMBOL vmlinux 0xe1247df9 get_write_access +EXPORT_SYMBOL vmlinux 0xe13733c0 devm_ioremap +EXPORT_SYMBOL vmlinux 0xe16857a4 write_inode_now +EXPORT_SYMBOL vmlinux 0xe174688b fifo_set_limit +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe18510e5 scsi_device_resume +EXPORT_SYMBOL vmlinux 0xe1aa7c27 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xe1b66e8d pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xe1d3f57f journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xe20c3ef3 blk_remove_plug +EXPORT_SYMBOL vmlinux 0xe20c63e7 _lv1_unmap_device_mmio_region +EXPORT_SYMBOL vmlinux 0xe21f56da ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xe220ceb8 __debugger_sstep +EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24050c7 scnprintf +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe2a38728 input_unregister_handle +EXPORT_SYMBOL vmlinux 0xe2a8a356 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xe2ae4be3 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0xe2ce6669 of_release_dev +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2db36a6 skb_pull +EXPORT_SYMBOL vmlinux 0xe2dffefc cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xe2e0c7c6 __flush_icache_range +EXPORT_SYMBOL vmlinux 0xe3389e89 seq_open_private +EXPORT_SYMBOL vmlinux 0xe35e3aba __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xe3805c65 datagram_poll +EXPORT_SYMBOL vmlinux 0xe3b0192b vscnprintf +EXPORT_SYMBOL vmlinux 0xe3d94afd phy_device_create +EXPORT_SYMBOL vmlinux 0xe3dd8b70 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xe3e7e76b tcp_prot +EXPORT_SYMBOL vmlinux 0xe3ed8e57 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xe3f1a534 dquot_scan_active +EXPORT_SYMBOL vmlinux 0xe402c791 inode_init_once +EXPORT_SYMBOL vmlinux 0xe40bcade kset_unregister +EXPORT_SYMBOL vmlinux 0xe42dc2bc netif_device_attach +EXPORT_SYMBOL vmlinux 0xe454b81a serio_close +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe493d108 single_open +EXPORT_SYMBOL vmlinux 0xe497ac1e percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0xe49956cc scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0xe4a06c0d skb_queue_tail +EXPORT_SYMBOL vmlinux 0xe4a1cd56 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0xe4b11300 block_write_full_page +EXPORT_SYMBOL vmlinux 0xe4c0917a pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xe4d4a1fe pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0xe4e0693c tty_port_carrier_raised +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 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe528ec9c blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0xe5605636 dw_spi_remove_host +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe58631bd vm_map_ram +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5ccfb7c of_get_pci_address +EXPORT_SYMBOL vmlinux 0xe5ed48e4 macio_enable_devres +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5f54158 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0xe5f79516 blk_requeue_request +EXPORT_SYMBOL vmlinux 0xe60988ac _lv1_query_logical_partition_address_region_info +EXPORT_SYMBOL vmlinux 0xe6208a41 seq_release +EXPORT_SYMBOL vmlinux 0xe656109b ide_do_reset +EXPORT_SYMBOL vmlinux 0xe686e2c9 skb_free_datagram_locked +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 0xe6c3b620 km_policy_notify +EXPORT_SYMBOL vmlinux 0xe6cc9de1 vfs_stat +EXPORT_SYMBOL vmlinux 0xe6d3969f phy_disable_interrupts +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 0xe77e35cc tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xe78f013d inode_change_ok +EXPORT_SYMBOL vmlinux 0xe7aaf344 km_state_notify +EXPORT_SYMBOL vmlinux 0xe7c2d848 kernel_read +EXPORT_SYMBOL vmlinux 0xe7cd99b7 smu_queue_simple +EXPORT_SYMBOL vmlinux 0xe7ce7439 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d2b83c eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7fa2609 dev_mc_flush +EXPORT_SYMBOL vmlinux 0xe8101698 free_task +EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node +EXPORT_SYMBOL vmlinux 0xe8220fc8 __kfree_skb +EXPORT_SYMBOL vmlinux 0xe822a504 dma_iommu_ops +EXPORT_SYMBOL vmlinux 0xe8384f00 user_path_at +EXPORT_SYMBOL vmlinux 0xe83ba6ba cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xe8534634 bdget +EXPORT_SYMBOL vmlinux 0xe8583614 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xe86da923 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xe8779be1 simple_lookup +EXPORT_SYMBOL vmlinux 0xe88ccad8 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xe88e3fd9 simple_dir_operations +EXPORT_SYMBOL vmlinux 0xe88ed422 matroxfb_register_driver +EXPORT_SYMBOL vmlinux 0xe8b2a2c2 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0xe8b68255 __bio_clone +EXPORT_SYMBOL vmlinux 0xe8bb6e55 __scm_destroy +EXPORT_SYMBOL vmlinux 0xe8ead276 dquot_destroy +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe934b466 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xe95f2e98 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xe96e02a5 vlan_gro_receive +EXPORT_SYMBOL vmlinux 0xe99b5456 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xe9a04520 del_timer +EXPORT_SYMBOL vmlinux 0xe9a317b9 save_mount_options +EXPORT_SYMBOL vmlinux 0xe9e54415 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xe9f1cba0 ppc_md +EXPORT_SYMBOL vmlinux 0xe9f51d10 try_to_release_page +EXPORT_SYMBOL vmlinux 0xe9f82cb0 bio_uncopy_user +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 0xea1da3e3 __sk_dst_check +EXPORT_SYMBOL vmlinux 0xea24386e make_EII_client +EXPORT_SYMBOL vmlinux 0xea25e7dc key_validate +EXPORT_SYMBOL vmlinux 0xea3c5703 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xea57dcda abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xea5ba768 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xea654a16 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0xea6a4448 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xeaa97bbe qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0xeabe3ee3 napi_gro_receive +EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump +EXPORT_SYMBOL vmlinux 0xeadaa015 journal_stop +EXPORT_SYMBOL vmlinux 0xeae85c10 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0xeafb92f6 vio_register_driver +EXPORT_SYMBOL vmlinux 0xeafd5a6c ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0xeb0b5476 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0xeb5c5525 ide_dma_off +EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n +EXPORT_SYMBOL vmlinux 0xeb936b94 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0xeba2a1f7 rtas_indicator_present +EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp +EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull +EXPORT_SYMBOL vmlinux 0xebd70f8c max8925_reg_write +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec30765a _lv1_allocate_io_segment +EXPORT_SYMBOL vmlinux 0xec42f713 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xec538d51 thaw_super +EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq +EXPORT_SYMBOL vmlinux 0xecacaedf xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xecd2f771 start_tty +EXPORT_SYMBOL vmlinux 0xed449a40 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xed52a10a __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xed56c398 ide_wait_stat +EXPORT_SYMBOL vmlinux 0xed5a6ee4 tcp_v4_do_rcv +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 0xed806f53 generic_getxattr +EXPORT_SYMBOL vmlinux 0xed86b3b7 ___ratelimit +EXPORT_SYMBOL vmlinux 0xed8adb70 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active +EXPORT_SYMBOL vmlinux 0xeda1ab25 vfs_writev +EXPORT_SYMBOL vmlinux 0xedb1653c qdisc_list_del +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc410d0 udplite_table +EXPORT_SYMBOL vmlinux 0xedc47ca2 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xedf0b48c _lv1_storage_get_async_status +EXPORT_SYMBOL vmlinux 0xedf0d504 pci_release_regions +EXPORT_SYMBOL vmlinux 0xee1858be tcf_em_register +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee2fbb2e generic_write_checks +EXPORT_SYMBOL vmlinux 0xee4e33ef vio_register_device_node +EXPORT_SYMBOL vmlinux 0xee566188 setup_arg_pages +EXPORT_SYMBOL vmlinux 0xee58610a dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xee5bb20b _lv1_panic +EXPORT_SYMBOL vmlinux 0xee66d85e igrab +EXPORT_SYMBOL vmlinux 0xee9174c5 _lv1_storage_read +EXPORT_SYMBOL vmlinux 0xee97ae75 may_umount +EXPORT_SYMBOL vmlinux 0xee9ff28d page_symlink +EXPORT_SYMBOL vmlinux 0xeea385fa fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeee5e0b2 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xef109449 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xef1eb3af proc_net_netfilter +EXPORT_SYMBOL vmlinux 0xef31056a tcf_hash_release +EXPORT_SYMBOL vmlinux 0xef5ae9dc cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0xef6870aa tcp_splice_read +EXPORT_SYMBOL vmlinux 0xef6decb0 skb_checksum_help +EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool +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 0xefe69ea0 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf006dd12 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xf026e934 register_framebuffer +EXPORT_SYMBOL vmlinux 0xf034ea40 set_bh_page +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf0676695 is_bad_inode +EXPORT_SYMBOL vmlinux 0xf0985b03 ide_proc_register_driver +EXPORT_SYMBOL vmlinux 0xf0b2eb06 eth_change_mtu +EXPORT_SYMBOL vmlinux 0xf0c7888e inetdev_by_index +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 0xf110b118 zero_fill_bio +EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32 +EXPORT_SYMBOL vmlinux 0xf12ef187 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xf13dd024 tcp_connect +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf177f71d ide_complete_rq +EXPORT_SYMBOL vmlinux 0xf183189b __ioremap_at +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1af9046 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0xf1c89242 note_scsi_host +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 0xf21e3b72 pci_release_region +EXPORT_SYMBOL vmlinux 0xf22b14d8 idr_get_new +EXPORT_SYMBOL vmlinux 0xf232293b bh_submit_read +EXPORT_SYMBOL vmlinux 0xf271622b d_instantiate +EXPORT_SYMBOL vmlinux 0xf284fba6 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0xf28f7fe6 scsi_scan_target +EXPORT_SYMBOL vmlinux 0xf2b0a39b pci_clear_master +EXPORT_SYMBOL vmlinux 0xf2b9c969 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0xf2d4125c bioset_create +EXPORT_SYMBOL vmlinux 0xf2d66376 unregister_8022_client +EXPORT_SYMBOL vmlinux 0xf2e4f016 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0xf300ec42 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xf301eaa7 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xf309e9ee cur_cpu_spec +EXPORT_SYMBOL vmlinux 0xf30d1036 _lv1_start_ppe_periodic_tracer +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf322a206 bit_waitqueue +EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name +EXPORT_SYMBOL vmlinux 0xf32b05e5 mutex_lock_killable +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 0xf350f7ca thaw_bdev +EXPORT_SYMBOL vmlinux 0xf357db8d pasemi_dma_set_flag +EXPORT_SYMBOL vmlinux 0xf36223e3 pci_select_bars +EXPORT_SYMBOL vmlinux 0xf37109a7 scsi_dma_map +EXPORT_SYMBOL vmlinux 0xf3716f77 kset_register +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +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 0xf3febbc1 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xf40e4051 of_translate_address +EXPORT_SYMBOL vmlinux 0xf41253aa pci_scan_bridge +EXPORT_SYMBOL vmlinux 0xf4185a61 mntput_no_expire +EXPORT_SYMBOL vmlinux 0xf429a52e tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xf4301fea sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xf4391c58 inode_init_always +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf44535a2 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xf4528073 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0xf478fca9 of_get_address +EXPORT_SYMBOL vmlinux 0xf49699d4 ide_set_handler +EXPORT_SYMBOL vmlinux 0xf4abf2f2 dquot_commit_info +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf509c601 __napi_complete +EXPORT_SYMBOL vmlinux 0xf5109afa vfs_fsync +EXPORT_SYMBOL vmlinux 0xf51a6b01 mdiobus_scan +EXPORT_SYMBOL vmlinux 0xf51e6fda pipe_to_file +EXPORT_SYMBOL vmlinux 0xf5222143 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n +EXPORT_SYMBOL vmlinux 0xf551c00a tcp_sendpage +EXPORT_SYMBOL vmlinux 0xf55a9e72 up_read +EXPORT_SYMBOL vmlinux 0xf572ee7c blk_make_request +EXPORT_SYMBOL vmlinux 0xf594f80d ida_get_new +EXPORT_SYMBOL vmlinux 0xf59b86ff d_splice_alias +EXPORT_SYMBOL vmlinux 0xf59b9cd2 console_stop +EXPORT_SYMBOL vmlinux 0xf5a62ecc _memset_io +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 0xf6192526 phy_connect +EXPORT_SYMBOL vmlinux 0xf6213e12 pasemi_dma_clear_flag +EXPORT_SYMBOL vmlinux 0xf6409c29 sys_fillrect +EXPORT_SYMBOL vmlinux 0xf64893b6 softnet_data +EXPORT_SYMBOL vmlinux 0xf6619aa4 of_device_register +EXPORT_SYMBOL vmlinux 0xf66952d1 generic_setattr +EXPORT_SYMBOL vmlinux 0xf6a317d2 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6bdd347 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0xf6d1b96d blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0xf6ddd3c2 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6ecb763 _lv1_send_event_locally +EXPORT_SYMBOL vmlinux 0xf7302c25 blk_free_tags +EXPORT_SYMBOL vmlinux 0xf751faf4 console_start +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf75a202b napi_skb_finish +EXPORT_SYMBOL vmlinux 0xf7734ced pci_disable_msi +EXPORT_SYMBOL vmlinux 0xf77c0c38 compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf797b5b7 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xf7bac0ec _lv1_set_lpm_counter +EXPORT_SYMBOL vmlinux 0xf7c53374 schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0xf7c6d133 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0xf7da6641 set_user_nice +EXPORT_SYMBOL vmlinux 0xf7e5fb32 audit_log_format +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 0xf8069f13 skb_clone +EXPORT_SYMBOL vmlinux 0xf807568a dev_mc_sync +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf820fac4 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xf825316c mpage_writepage +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf85a8e00 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xf865f617 sockfd_lookup +EXPORT_SYMBOL vmlinux 0xf866489f generic_ro_fops +EXPORT_SYMBOL vmlinux 0xf87bbb76 kernel_bind +EXPORT_SYMBOL vmlinux 0xf8870346 dma_pool_create +EXPORT_SYMBOL vmlinux 0xf8906870 vio_cmo_entitlement_update +EXPORT_SYMBOL vmlinux 0xf89395c9 insert_inode_locked +EXPORT_SYMBOL vmlinux 0xf89843f9 schedule_work +EXPORT_SYMBOL vmlinux 0xf8a3f3ad pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xf8dabae6 i2c_clients_command +EXPORT_SYMBOL vmlinux 0xf8ea19db jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0xf8ee19a7 phy_connect_direct +EXPORT_SYMBOL vmlinux 0xf90d3b27 ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0xf90fd6c0 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0xf95b2d02 DAC1064_global_init +EXPORT_SYMBOL vmlinux 0xf985b3e8 unregister_con_driver +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9abdfb2 __dquot_free_space +EXPORT_SYMBOL vmlinux 0xf9cc3bcf matrox_cfbX_init +EXPORT_SYMBOL vmlinux 0xf9dcef4b km_query +EXPORT_SYMBOL vmlinux 0xf9e347ba inet_accept +EXPORT_SYMBOL vmlinux 0xfa33301c unlock_buffer +EXPORT_SYMBOL vmlinux 0xfa7af0ab netlink_dump_start +EXPORT_SYMBOL vmlinux 0xfa86c72e tty_shutdown +EXPORT_SYMBOL vmlinux 0xfa9e3d7d security_path_mknod +EXPORT_SYMBOL vmlinux 0xfabfc1c4 nlmsg_notify +EXPORT_SYMBOL vmlinux 0xfadb5750 pmu_unlock +EXPORT_SYMBOL vmlinux 0xfadd9047 sys_copyarea +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb545362 sock_create +EXPORT_SYMBOL vmlinux 0xfb624942 __lru_cache_add +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb896770 set_page_dirty +EXPORT_SYMBOL vmlinux 0xfb8e3b3b setup_new_exec +EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xfbca6fe5 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xfbe27a1c rb_first +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc2373d9 __scm_send +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc4c36ec vio_get_attribute +EXPORT_SYMBOL vmlinux 0xfc52aeb5 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xfc8ce106 netlink_set_err +EXPORT_SYMBOL vmlinux 0xfc8dce3d shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xfc9c8e51 dev_disable_lro +EXPORT_SYMBOL vmlinux 0xfc9d73a7 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0xfca9db2c nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcbe1ac1 d_alloc_root +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfcfee617 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0xfd09070b jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0xfd6ea097 of_device_alloc +EXPORT_SYMBOL vmlinux 0xfd832275 sock_sendmsg +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 0xfde5f47d I_BDEV +EXPORT_SYMBOL vmlinux 0xfded48ed enable_kernel_fp +EXPORT_SYMBOL vmlinux 0xfdfa5a09 bio_flush_dcache_pages +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 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c34e6 sk_dst_check +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +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 0xff060d0f scsi_remove_target +EXPORT_SYMBOL vmlinux 0xff1765c7 rtas_call +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +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 0xff975815 open_exec +EXPORT_SYMBOL vmlinux 0xff9b4df0 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffa21ae1 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xffb6ddce pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xffca7ffc proc_create_data +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffdaace1 xfrm_spd_getinfo +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 0x74aa08fa async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xa89ef540 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x37bdc434 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x68fff059 async_raid6_datap_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 0x14e51821 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2106b9cc ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x222d1f57 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x23494b7d ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x44ba59ad ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4c0762f8 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4ee494d9 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6643a4c8 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x721d26cf ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7a9f1694 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7aa9f6ff ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8604ffd4 ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xadab042b ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe21eb479 ahci_sdev_attrs +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 0x60da7437 __pata_platform_remove +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x6c51b38c __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0x68954604 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 0x1423f188 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x64761f8c btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x6d2b3b5c btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x81bd3f82 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x878094f3 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xae3c50bd btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc352cabd btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xde19e822 btmrvl_send_module_cfg_cmd +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 0x0783c7b7 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xf0c654c1 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x0b628b14 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x0b7b6397 dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x2a3a0782 dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x40a57b41 dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4cadb988 dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x529128fb dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x53895118 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x6d454b7c dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7100065a dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x85c389da dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x88b4ef14 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x8b21daed dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x94397a30 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb838177c dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc4c34b1e dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xcf816d4a dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xdf6545e0 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xdff1929b dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xe992f2c7 dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xe9f02f52 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xed925e6d dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x4f6ae288 md_new_event +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x6321df3c sync_page_io +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x9856ccfe md_allow_write +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xc044d1c0 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 0x1bc198d5 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x32287f5b sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x5a1a8eb4 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x85ff54e7 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x876c3fba sm501_set_clock +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 0x3477f96e sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x49cc3307 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x82592b6c sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x9ddefd9a sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xa151b374 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xeaff2249 sdhci_suspend_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 0x01bcd7e0 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x2c785911 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x3743d730 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x5dd19e81 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 0x0286665f macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x0c333b44 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x5c0c52c9 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x9f12c370 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xc51d5e5c 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 0xb830c3a9 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 0x1596aec4 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1a18ab60 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1ab0f660 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x249cce24 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x256b5598 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x27d01c1f rt2800_init_rfcsr +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x32577296 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x379eb2a4 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3bf533a8 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3defe40f rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3f536838 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x40decbef rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x470f9ab1 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5ccba570 rt2800_mac80211_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x62789ce1 rt2800_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x69f2dc04 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x768d58bb rt2800_init_bbp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x791a06f9 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8867fba4 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa3e2157f rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xceb1c7e2 rt2800_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd2e096e6 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xda02089f rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xed237ab6 rt2800_validate_eeprom +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 0x289edbfe rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2e7b4ffd rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x34bc82ba rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x35273041 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x42835bd7 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4a0ea50d rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7732551e rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x77d5d497 rt2x00queue_get_queue +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 0x9709ad5f rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaa727150 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb30e594e rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc6e8117c rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd0163bbb rt2x00queue_get_entry +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/rt2x00lib 0xed443840 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf54205ed rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x07e6f829 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x1e5537ca rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x3051e73b rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x3f78f1e1 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x7522c88c rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x773adfac rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x7a52d1a1 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x984f9ffa rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xdab13c28 rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x07060658 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0a32d509 rt2x00usb_kill_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x105dd996 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x331da4ce rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x445f0766 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x469742e6 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x68e68e5f rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7f6fd5ab rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x92be54c1 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa66e39e0 rt2x00usb_vendor_request_large_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb67a2f04 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xbdc1b09e rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd01b3de4 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe13a70f9 rt2x00usb_kick_tx_queue +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 0x1a5267dd scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x6cc2948e scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x76a2baa9 scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xa555acb7 scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xd6d67f1e scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xe8c28747 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x907a1e44 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0296b668 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x10f29a22 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b4adbb iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1cec3170 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1d587b35 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1eb70343 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1ed0994f iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1eedf6ad iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x203ab057 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x22b59c61 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x309ad5a6 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x356ab1bc iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x364f671d __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3a69453f iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5a465221 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5ce4d942 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x62053380 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6d55e752 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x79113ef5 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7e150b04 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x81e3e7dd iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x86bf5cde iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x876cae63 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x88d08d20 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8b3a948b iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x90afd117 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x99f193d7 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa5d28552 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa9be6798 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaa9f8ec1 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb3c1d15f iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbbeb9d6c iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc88a7c4c iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcdd2f5ef iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcf241e53 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe2523893 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe4665b35 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xefe1878a iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf1e1db39 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfa6cd614 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfc333154 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xff23cce8 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0a4d3de9 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x52442e1e iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x54d342ce iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x63050b08 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x74f552d5 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7f2c1dbb iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x82feb696 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x94a76eb1 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9c79d4f2 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb87b68af iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbca4224e iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc8f316ce iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xcafc7ae2 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe8680b7c iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xee858400 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xef939fa1 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00b0b025 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0c7b125c sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x34b3275b sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3da66952 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3f58f9c4 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4918e24c sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5470bc19 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5d7ba147 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x75942e77 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7a2eadca sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7b9025bd sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x88d0220d sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8c16d07e sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb4235dc8 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb690d9b5 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xce00b143 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcf4e7b12 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd6148efd sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdfab05ba sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe23e68c8 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe462567f __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe9b4b824 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf80d25a9 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x77412c99 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x910271dd srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xe0f7f7c6 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xf1ba8619 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xfb401d9e srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xfff95bff srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x18c11642 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x2e15c6d8 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x404dda0d scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x57c77866 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x7bc07b3b scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb15689dc scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe0a247b5 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf06e3bfe scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xfb0162f7 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x02be37d3 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x08c6b04f iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x13066517 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1769adc0 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1a8b9c21 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1c1f9cfc iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x39f1e8fe iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4017f535 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4cdc2d5d iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6ab49bfb iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6b721125 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x94f3afd0 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb66a5832 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc00f047b iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc0b954e4 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc9f0bb0b iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcec86588 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd73dcaee iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdcda0fae iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe48e78a1 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xed6acb3b iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf397edf6 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x3d60b55c sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x72abb859 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x7830e4c2 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xd018de5e 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 0x30361e46 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x728d6f96 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x89c397bb srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc2addd1c srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xea4d344e srp_rport_del +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x0d92d61e pciserial_resume_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x8655b2f1 pciserial_init_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xac1c7dac pciserial_remove_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xc9a1fb87 pciserial_suspend_ports +EXPORT_SYMBOL_GPL drivers/serial/serial_core 0x1b6d598b uart_set_options +EXPORT_SYMBOL_GPL drivers/serial/serial_core 0xb79725f3 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 0x4027113b 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 0x63f43034 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xb31a171d usbatm_usb_probe +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 0x0e201daa ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x10f0b1f5 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x257e9b26 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x28ab8de5 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2a3742fd usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x42b604ba usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5d89c0cc usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6eab90b1 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7163a2a6 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x78f1c7dd usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7d007680 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x90be7bca usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc93d9177 usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xcea02947 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd68d2757 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdf7cafa2 ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe56962fc usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe8363bc2 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xed843fac usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0782544d usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0b4cfa5d 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 0x0ead12e9 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1aa6434a 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 0x258a83f7 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2adc0bc6 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2dd996d0 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2fad1db5 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x30764563 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x34b95668 usb_usual_ignore_device +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3922766a usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3f6fc48a usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x527841d7 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x76ac7a9e usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x786b15c4 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8240c487 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8db343ad usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8e66944f usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x919a2676 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x920e4cde usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x92abecbc usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe8d72c0c usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfc6290b5 usb_stor_Bulk_reset +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 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 0x9881fb09 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x9e1c2a30 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0xa180f25f fat_setattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xa1df882c fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xc02c9bc2 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xccf80db8 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0xde65bc0d 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 0x6a4fdcc5 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6e6c926f nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x85e3f8f4 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x9d5b70a8 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xbb6f5a32 nlmsvc_unlock_all_by_sb +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 0x0cb3f1a2 o2nm_node_put +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 0x304fa0c8 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 0x521e0726 o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5f1a4606 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x63a3b97f o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x6f4023eb o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x6f8152d6 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x74a7bd6b o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 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 0xf56c2017 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3515db8e dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x5af9f54c 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 0x81c0767e dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xa8ce39c5 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 0xe2078797 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xea168ae2 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 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 0x9129f896 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 0xa6f402a4 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1025f6c2 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1335a7a9 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1eeed158 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x20332752 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x217f77dc dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x22ddd547 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2d6afcdf dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4d031947 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x512d7a0f dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x51aa67c4 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x573e8076 dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5da16f8f dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x801aa6fd dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x81c26b99 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x83e2eee8 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b0cd794 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8bc01370 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x99a9aeb1 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9f194b5f dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9fb3f2f4 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa3091d96 compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa50bcc50 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb6ed4ba6 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc5197d52 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc6b294c7 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc810ff9c dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcd377324 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd6e3b58d dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd8fcf017 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdbe6546c dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe3904eb9 compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xedfd82dc dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xee9681be dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf821ed8e dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf8d1f97e dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xffb65122 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x06d1b987 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x08cd8ee6 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x09d80bef dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x27e103c7 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xcefb5646 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xfc5ee73e dccp_invalid_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x1796c971 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x3919bce6 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 0xdbc54e45 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 0x04a47a14 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x1bf71688 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x7420940e 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 0xa0c32697 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xbf28611a nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xd66fcd41 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xe5225991 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xebdd0274 nf_nat_proto_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x14f404a1 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x5dba9d6c tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x5de8fa82 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x6cc25b83 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xb11f3bdf tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x0820d26e inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x217ad50f inet6_destroy_sock +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x53ba6004 ip6_dst_blackhole +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x54037191 ip6_local_out +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x669b0def inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x75585546 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa377caee fl6_sock_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xad463c42 ip6_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xb5c27013 inet6_csk_xmit +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xc2e44ec2 ipv6_opt_accepted +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xc64933c7 inet6_csk_search_req +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xcbaa5031 ipv6_dup_options +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xd97865d7 ipv6_find_tlv +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xefd7032e ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xfea4e0b3 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xcd7e23c2 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x31263867 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3dca9444 l2tp_tunnel_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4c1bbcb9 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x598b9023 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5bdd268e l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5e1f8919 l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x686dfe02 l2tp_xmit_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6c179d8a l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8aea40cc l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x98d25868 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa083f531 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb8aebabb l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbb90c2fb l2tp_udp_recv_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc22d60e7 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc9fa8f6b l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xcab9ffcc l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe041f724 l2tp_tunnel_closeall +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 0x1119e235 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x11c4fbe9 nf_conntrack_l4proto_udp4 +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 0x2051fd34 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x232f80b7 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x23f2996b nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25694243 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2ad23ebf __nf_conntrack_confirm +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 0x6e0aa32f nf_conntrack_l3proto_generic +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 0x83c399c7 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x4c862796 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x55ee6573 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x81abb9ad nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa1b586d3 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xafc38f35 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb385f33d set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xbdaa5306 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc9f46dfe set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd583a2fc set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe5bf7f1f nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xedc72a67 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x66073a17 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x53e9c80a nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x8e16c7d9 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xa354cd6b nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xf2f47663 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 0x1dbeb705 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x26b915e3 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3ba393c7 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7863131b nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7adcfa25 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7b60843d nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x815553f2 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9beed4ac ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xca109eb5 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd20e423c ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd240f74a nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xdd42f7d4 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe9dedf76 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x9ef6c74f nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x8d2d493d nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xabfb21f6 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x07a54652 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 0x41226c24 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x78791c86 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7aa7f536 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xc6397818 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd2ed3cd2 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x57913517 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x09b08732 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2150967c xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2f7a7203 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3002a973 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x31335b05 xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x598ecbf2 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7 xt_compat_flush_offsets +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x66aa75ed xt_find_table_lock +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 0x82232fec xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x83bfa8d2 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8a9932cd xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9267e59b xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x95973ffd xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9b6a3436 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa33a4a48 xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd2478812 xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd38e71ce xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdf6b92de xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe3d19ab5 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe710f48f xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf2921c72 xt_request_find_target +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x6ac45dd3 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xbfee8a3a 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 0x18d57cc6 gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x1ca6854e gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x2e83c703 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3bdc560d gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x43726873 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x63d4d0c8 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa327051d gss_service_to_auth_domain_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb81531f6 gss_mech_register +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 0xe51bafa9 gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0020f223 xprt_complete_rqst +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 0x01289809 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01d553f8 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x027f9f56 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03d11f33 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x040049dc xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e0f59b svc_sock_update_bufs +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 0x0673537e xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x07abfde4 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x07f9de3a rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x09d57b8c xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x09f064ea rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b7b882b rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0cb30e73 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ce14546 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0efcda21 rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f5cbfbd xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10c2cd2b xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x140b5ebb svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1965ef31 cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f0ecf4c xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x229228c4 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x22d90bb4 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x22e33822 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24216bdc xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24f214bd rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2626c9ff rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x263e234d rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2676aaae svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27fa2b34 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d09c5da svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31253321 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +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 0x39d2306e sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39f6b09f rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b5c29e3 rpc_exit_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3bc322d9 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e86b780 rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ebe1a68 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ff10643 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x45387f23 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x45ecafac svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x476dbb9b cache_purge +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 0x4dd61413 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50001e30 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51d65333 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5aba6d97 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c955934 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e22eb49 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fce2c70 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fff0adc auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62192734 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65ad30bf svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x664129e8 xprt_disconnect_done +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 0x6e128f44 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7059946c xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7219390f put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7231219c rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x738052ae xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73d1c73b svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75b0cdaf xdr_write_pages +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 0x7a08820b xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7cef4a24 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ea3bc0c svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fbfb45d xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8434f7de svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85572ac6 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86504049 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8aa39f41 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e183d00 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ea7f83b svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8eea16b6 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x901e265f rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9258d075 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x925a33c7 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x936f9654 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95f4388d xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9623738f svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9718b20f rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98955a03 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9bb9e7ca rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ed29abe svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3009965 auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3fbf407 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6dec430 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa74892a8 auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa68e8fb xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae787aa8 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb077c929 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb54d1abf xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb921b934 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb9d82b97 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb4f8fae svc_sock_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbf8361d xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf04db17 rpc_bind_new_program +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 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc1d64896 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc35fbfcb xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5785358 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc7754435 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc92f1d39 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc995758b xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca918159 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcafb4a63 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xced15d58 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2d037fc xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5be3dae rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5f58d92 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd69b7301 auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd9d0d98c rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda2a2a6a svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda5b008a rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdbd6563e rpc_call_sync +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 0xdef0f6de svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe398ae65 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe63c4def rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6511fbd xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe65919f1 cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe89efe5a svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeafcd9e5 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb3a3415 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee89e61e svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1108b3b rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3c00e89 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf50f7c5e rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf67188e2 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf68018ca svc_sock_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf90db351 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9a25925 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc343f9a rpc_proc_register +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/wimax/wimax 0x06e9c940 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x27d12879 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x3b02422e wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x4690ef18 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x46cfa4b2 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x69691d28 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6fbb89c2 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x7e16c654 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x88c50d46 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0xba79473e wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0xdb482529 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf02c0cb7 wimax_msg_send +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 0x535041fa ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xbdc5ce79 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xcecb6751 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xe1e98c33 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 0x00084142 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x003f8671 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x008dac87 do_add_mount +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 0x0129b771 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x01338ea8 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x01431337 pmac_i2c_match_adapter +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 0x01c3f369 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +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 0x0319a94c ata_dev_next +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 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x03ee67f1 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x03f78630 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x03fb484e tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x03fe2cca flush_work +EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread +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 0x051603a0 ata_qc_complete +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 0x0573b839 kobject_uevent +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 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 0x064efea5 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x067f9bfb __module_text_address +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 0x0766935b ring_buffer_reset_cpu +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 0x0870a4fb set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x08857f5c pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x08c38ca4 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x08f0481e ring_buffer_normalize_time_stamp +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 0x093e988e sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x094595c4 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x095a9f8a mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x099c80d2 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x09bdab28 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x09c04f21 rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0x09d2818c posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x09e47a09 disk_part_iter_next +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 0x0a6c1454 cpu_add_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x0aac80b8 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x0ab7eaff register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b38b44f shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x0b4e27a8 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x0b51be73 perf_event_release_kernel +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 0x0bee61d0 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x0c05687a i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c4b10af inet6_lookup +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 0x0c97a456 wm8350_reg_write +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 0x0d3bc3bd ide_dma_sff_timer_expiry +EXPORT_SYMBOL_GPL vmlinux 0x0d43e5df fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x0d477159 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x0d5b063c atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x0db16216 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x0e10ac75 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x0e386705 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x0e5927ca regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x0e62b58d bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x0e67c69b __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x0ebcefaf part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x0ed01705 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x0eddcf63 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x0efe4b1c usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x0f01b2cb blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x0f6724b2 ide_create_request_sense_cmd +EXPORT_SYMBOL_GPL vmlinux 0x0fdd0154 blk_rq_prep_clone +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 0x1123332b crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x113deec5 ata_sff_hsm_move +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 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x12a9df69 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x12acfcd8 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x12d78ff0 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x12f92da7 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x12fc25a6 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x1311e73a inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x13245e9e __add_pages +EXPORT_SYMBOL_GPL vmlinux 0x13297e2a ata_host_start +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 0x13574bbf nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13bc2d9c queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x13ddbb2f usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x13e5ea13 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x14079ac9 hvc_instantiate +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 0x14adfb45 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x14b7edd0 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x14d0d736 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x14e6467e register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x150cf2fd ide_check_ireason +EXPORT_SYMBOL_GPL vmlinux 0x1519e49e pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1523aba7 fib_rules_cleanup_ops +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 0x16846af8 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x16f89adf ide_pci_remove +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 0x175f0d4e dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x1768626c blk_rq_err_bytes +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 0x17ef849b fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x17fa67d9 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x180a5d60 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x1826ff68 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x1881811b transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x189f5243 ide_dma_end +EXPORT_SYMBOL_GPL vmlinux 0x18bd1154 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x190695f1 ref_module +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 0x19b0bc71 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x19cb6e63 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x1a0940a1 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x1a304eb1 ide_release_dma_engine +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 0x1b554afd sata_scr_write_flush +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 0x1c4a4c18 ide_pci_init_two +EXPORT_SYMBOL_GPL vmlinux 0x1c4e0906 driver_add_kobj +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 0x1cd78523 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x1d288f86 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x1d2c24ea rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x1d46e8e7 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x1d83bccb wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x1d86638b rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1dce4364 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x1de2c197 ab8500_write +EXPORT_SYMBOL_GPL vmlinux 0x1e2205d2 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e96f9fe rtnl_kill_links +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ed2f4c3 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x1ed8fbe6 sff_dma_ops +EXPORT_SYMBOL_GPL vmlinux 0x1f299f0d led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x1f35f059 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x1f709229 account_system_vtime +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 0x2088c8c5 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x20a58266 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20bcc508 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x20fa7f04 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x211850f5 htab_hash_mask +EXPORT_SYMBOL_GPL vmlinux 0x216ec600 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x21ab4589 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x21aeb3d5 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x2200c56b console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x22535b02 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x225e5d09 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x2285200f usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22b4f59c ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x22d82f62 ide_end_rq +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 0x235a2bbe ide_read_status +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 0x23d39525 ide_input_data +EXPORT_SYMBOL_GPL vmlinux 0x23fc87d0 ide_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x24185cb1 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x247680d7 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x24827ee2 pcibios_finish_adding_to_bus +EXPORT_SYMBOL_GPL vmlinux 0x248a0cab ide_host_register +EXPORT_SYMBOL_GPL vmlinux 0x24a5390a ide_setting_ioctl +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 0x255aeda0 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x25bb293d blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x260c71d5 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x2645c0b8 spu_set_profile_private_kref +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x277a03ea __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x27a64bbf ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x27aa88c5 each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x27b266f2 hrtimer_forward +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 0x281f046f __module_address +EXPORT_SYMBOL_GPL vmlinux 0x2823e836 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x289f005e irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0x28ad87ab __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x28d2253c ide_pci_dma_base +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28d70d45 dev_attr_em_message_type +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 0x290be255 ide_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x291b8e77 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x295c4d7b da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x29cb1c31 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x2a1538ca lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x2a409a3c blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a7a8db1 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x2af5c0e4 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x2afbe2a5 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2b4c2ff1 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2b92290c irq_find_host +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 0x2c0e3b42 find_vpid +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 0x2c4b061c devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2cb3db22 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0x2ce8138e adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d30ff4c ide_no_data_taskfile +EXPORT_SYMBOL_GPL vmlinux 0x2d37facf hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2dae0e6d ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x2db1f657 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x2ddee4bb usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x2df19e36 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x2e057b23 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x2e1d43cf lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x2e25e033 ide_dma_host_set +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 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 0x2f89d0ea __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x2fc30869 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x300f690a sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x302d146d input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x30301151 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x3036f73d ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x3060c0ae find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset +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 0x315484eb inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x31e6007d wm8350_reg_unlock +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 0x3309ea64 ps3av_audio_mute +EXPORT_SYMBOL_GPL vmlinux 0x33141f2c flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x33314768 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x33353415 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x33adef3d debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x33bdf135 inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0x33d29243 of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x34059cd2 spu_get_profile_private_kref +EXPORT_SYMBOL_GPL vmlinux 0x3423a383 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x34b0bc00 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x34d128ed ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x34eb553f __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x354d0ab5 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x35b7d7a8 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x35bd041a trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x35ce0762 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +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 0x36814cbc regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x368c0a02 regulator_count_voltages +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 0x37fb5a71 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x381c38d1 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x383c562e led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x387e8048 vfs_setlease +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 0x393ef1d1 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x396bfcde devres_get +EXPORT_SYMBOL_GPL vmlinux 0x39902da2 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x39d7bb0a usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x3a05b09e d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x3a26cb1e __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a2fb7d0 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x3a57b75b ide_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x3a7ba596 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x3a8150a5 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x3aea9154 ide_retry_pc +EXPORT_SYMBOL_GPL vmlinux 0x3b1c5afc ps3_vuart_irq_setup +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 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 0x3c9e9b56 inode_add_to_lists +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cd559c6 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x3cf7ea67 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d27623e nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d4e4c6b cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x3d69ccb8 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x3dba5d69 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x3e102af5 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x3e21421f device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x3e8f36e1 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x3e93a6c2 tty_ldisc_ref_wait +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 0x3ee698d8 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f2a2089 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x3f333cab usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x3f469369 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x3f7fa164 find_module +EXPORT_SYMBOL_GPL vmlinux 0x3f8ec7f7 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3faa0bac inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x3fb77d25 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x3fbbea1e ide_set_pio +EXPORT_SYMBOL_GPL vmlinux 0x403ccd43 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x40450c4e debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x405d5a4a __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40c54fcd enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x41389212 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x415414dd ata_sas_queuecmd +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 0x41c75322 ide_unregister_region +EXPORT_SYMBOL_GPL vmlinux 0x42030077 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x4217f493 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x42358e1c tc35892_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42a3bd8b class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x42b0e1ff alloc_page_buffers +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 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 0x437e8d34 xfrm_audit_state_replay_overflow +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 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x448766c7 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x450ca3bc scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x4650116d perf_event_read_value +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 0x47599b24 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x478981f0 ring_buffer_free +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 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 0x495fed58 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x498d5ad5 ide_read_error +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49989733 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4a1d9437 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x4a744db4 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x4a9b732a __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x4b436a57 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4b48b294 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x4b6d8296 tty_encode_baud_rate +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 0x4bd3ac60 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x4be5e0c8 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x4bebb04b inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4bec1c3f rtnl_link_register +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 0x4c141663 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x4c18f773 ps3_os_area_set_rtc_diff +EXPORT_SYMBOL_GPL vmlinux 0x4c1be670 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4c319f89 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x4c3509fc blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4cc5daa2 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x4d078999 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x4d3bfab3 ide_pci_set_master +EXPORT_SYMBOL_GPL vmlinux 0x4d762488 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x4e0f14e5 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x4e235e42 ata_sff_data_xfer_noirq +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 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 0x4f0d1299 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x4f3e3383 ide_pci_suspend +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 0x504b4af8 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x507de8c6 add_memory +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x50b7bc77 ide_bus_type +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 0x516b04e5 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x517acb5c ide_output_data +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 0x521e9cfb sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x522b309b scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x52513006 ide_queue_sense_rq +EXPORT_SYMBOL_GPL vmlinux 0x52d501f2 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x5324d04f bstr_printf +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 0x5380e669 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53a810a2 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x541fac40 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x545f1489 cgroup_add_file +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x546229e9 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x5481fa79 sdev_evt_send_simple +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 0x54b6aaa1 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x54c448f8 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x54e8abb8 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x54ecc746 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x54f86e5b power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x553cbb30 ide_pio_cycle_time +EXPORT_SYMBOL_GPL vmlinux 0x5566260c ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x557575b0 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x55adcc3f ide_get_lba_addr +EXPORT_SYMBOL_GPL vmlinux 0x55bfa331 device_register +EXPORT_SYMBOL_GPL vmlinux 0x55f2580b __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x55f4459b ide_timing_compute +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 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 0x572139c6 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57ac9e65 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x57d2a2f5 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x57d7af6f xfrm_output +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 0x588f57f0 ide_set_dma_mode +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 0x5910972d pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x591205d2 ide_host_remove +EXPORT_SYMBOL_GPL vmlinux 0x59867199 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x59b6f545 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x59f30f59 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x5a21bf5b usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x5a300b10 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x5a571bb1 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a93d6a3 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x5b0367f3 ata_sff_exec_command +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 0x5beaacfd inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c151067 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x5c769277 tc35892_block_read +EXPORT_SYMBOL_GPL vmlinux 0x5c838d4b driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5c8dd8a8 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x5c9c10e9 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x5c9f94f8 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x5cdaded4 sysfs_remove_link +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 0x5dab235c blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e47260f regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x5e491d3b usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x5e769986 ps3_os_area_get_av_multi_out +EXPORT_SYMBOL_GPL vmlinux 0x5e7c5e53 inet_csk_search_req +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 0x5ef1c130 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x5f2e4842 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x5f438e90 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x5fef69eb usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x6021dc43 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x604a4972 pmf_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x6064c317 ps3_close_hv_device +EXPORT_SYMBOL_GPL vmlinux 0x6082e79a ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x608a9b22 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x6092479e ata_pci_device_do_suspend +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 0x60ebc588 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x61140e78 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x611e0c0c disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x6131e0c2 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x615ed697 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x61a90c54 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x61dd0f4b inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x6248ed3d wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep +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 0x632576a6 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x63359f56 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x636115a9 br_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x6377d40c register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x63d49056 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x63d9042f ide_issue_pc +EXPORT_SYMBOL_GPL vmlinux 0x63f4dc09 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap +EXPORT_SYMBOL_GPL vmlinux 0x643f9bac rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x644d30fc __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x6462d31d usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x6484efe3 pmac_i2c_get_dev_addr +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 0x657c572d get_device +EXPORT_SYMBOL_GPL vmlinux 0x659a7b50 xfrm_audit_state_add +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 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x661c510b rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x661e8a72 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x6623b99e get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x664ff25e zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x667a812c ps3av_set_video_mode +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66a1fcfb blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66dba025 macio_find +EXPORT_SYMBOL_GPL vmlinux 0x66e5c46f unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x66f3bf3c ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x67219d93 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67ba19fd pmac_i2c_adapter_to_bus +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 0x6821a961 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x68276e2b usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x684511ea ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6892baa8 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x6896d633 ide_queue_pc_tail +EXPORT_SYMBOL_GPL vmlinux 0x689859fe ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x68ea52f3 pmf_find_function +EXPORT_SYMBOL_GPL vmlinux 0x692674b8 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x69790ef6 __init_new_context +EXPORT_SYMBOL_GPL vmlinux 0x69901858 ide_dma_lost_irq +EXPORT_SYMBOL_GPL vmlinux 0x69aee38b blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x6a006d1f inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x6a3796f3 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a73a810 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x6a80d28d ring_buffer_iter_reset +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 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 0x6b4ac2dc bd_claim_by_disk +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 0x6baa0015 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x6bd970d1 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x6be62dfd probe_kernel_read +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 0x6c4fe80e sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x6c6097f9 ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x6ca68468 ide_dma_start +EXPORT_SYMBOL_GPL vmlinux 0x6cbd6152 spu_init_channels +EXPORT_SYMBOL_GPL vmlinux 0x6cd7f0c1 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d5b964e __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x6d5d64b5 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x6d85228d aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x6d8bdf03 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x6da55322 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x6e3ce47f find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid +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 0x6f8c36a5 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x6f9f1f86 wm8350_device_init +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 0x7007dac1 xfrm_output_resume +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 0x70772230 ring_buffer_iter_peek +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 0x70cf7d8e scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x70e1c171 generic_detach_inode +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 0x7133c240 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x714710f4 blk_trace_setup +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 0x71fb11cc ide_pci_setup_ports +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 0x72662a13 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x72c50c85 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x72f9eb3a destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x731457a7 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x734e7b85 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +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 0x742724c5 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x744665ed register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x746929c2 tty_ldisc_flush +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 0x74c5bc6f crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x74c8c1a3 spu_associate_mm +EXPORT_SYMBOL_GPL vmlinux 0x74cf28c1 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x74cf6437 scsi_mode_select +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 0x754310d1 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x754abd10 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x75e124da skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x75e6e037 hash_page +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x75f055a7 xfrm_inner_extract_output +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 0x767509e8 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x768dc164 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x769fd8c7 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x76d106d6 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x76d914f7 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x76ef5f6a cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x7728ccbe crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x775c4ef7 ata_ehi_push_desc +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 0x7845835c hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x784bfff3 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x78581eb6 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x78d0f862 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +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 0x79c629fb adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7a15b5f9 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x7a562ed5 spu_invalidate_slbs +EXPORT_SYMBOL_GPL vmlinux 0x7a7bed8d crypto_unregister_shash +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 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b4ee503 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x7b5e4f2d dm_kill_unmapped_request +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 0x7cf7b76b device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x7d2ab169 inet_csk_bind_conflict +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 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7df83082 xfrm_audit_policy_delete +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 0x7ede74c4 ata_port_freeze +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 0x7f39a260 ide_init_pc +EXPORT_SYMBOL_GPL vmlinux 0x7f491eeb raw_seq_open +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 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 0x80c107e8 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc +EXPORT_SYMBOL_GPL vmlinux 0x80f3ba2e debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x811bd068 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x814de867 ide_map_sg +EXPORT_SYMBOL_GPL vmlinux 0x81609860 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0x81f52d0b drop_file_write_access +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 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82a32257 tcp_cong_avoid_ai +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 0x8301d0cf ide_dma_unmap_sg +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 0x83691390 ide_cd_expiry +EXPORT_SYMBOL_GPL vmlinux 0x838e70b2 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x8394eb4b class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x83b07bc4 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x83bd99fa ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x83e8fb04 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x8457a2ad usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x84a457f3 ide_allocate_dma_engine +EXPORT_SYMBOL_GPL vmlinux 0x84ae3d34 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x84c0fe15 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x84e08993 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x850046f0 __sock_recv_timestamp +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 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86a24e0a cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x871b581b vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x872c2c07 inet_twsk_purge +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 0x87a71261 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x87c63e9b cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x87cf6cff ide_dma_setup +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 0x884741a6 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x88606408 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88f0db24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x88f32568 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x89096ec9 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x8913c37a raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x8952994c bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x89793abb sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x898926b9 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x8996cd51 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x89a588d4 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x89da1d62 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x89db189c ide_host_free +EXPORT_SYMBOL_GPL vmlinux 0x8a070966 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0x8a31b110 cvt_fd +EXPORT_SYMBOL_GPL vmlinux 0x8a590c4c bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x8a881591 ide_pci_check_simplex +EXPORT_SYMBOL_GPL vmlinux 0x8aad42e1 ab8500_read +EXPORT_SYMBOL_GPL vmlinux 0x8ab1717d fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x8b2712b8 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x8b38b05b scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x8b70e8ea __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b7775cb rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x8b910d97 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x8b9b8b66 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x8bb8e7f5 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x8c98ef8d ide_cd_get_xferlen +EXPORT_SYMBOL_GPL vmlinux 0x8cb0bc8c ata_do_eh +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 0x8d810e67 ide_host_alloc +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 0x8e0c5206 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x8e2cdd7b inet_hashinfo_init +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 0x8ebd565a ide_dma_test_irq +EXPORT_SYMBOL_GPL vmlinux 0x8ede1ebd fb_sys_write +EXPORT_SYMBOL_GPL vmlinux 0x8ee62b43 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x8eeab639 locks_release_private +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 0x8fb25199 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x8ff25f9c ps3_vuart_clear_rx_bytes +EXPORT_SYMBOL_GPL vmlinux 0x90004bfb tcp_reno_cong_avoid +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 0x91360bd6 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x91433d1e sysdev_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x918ec05f ide_host_add +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 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 0x930f7f7b blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x9363866b ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x9383ded0 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x9400355a ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x941dc495 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x94833f03 usb_driver_claim_interface +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 0x94ae3ab5 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x94eabe58 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x95256234 ata_host_activate +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 0x95560db0 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x95ff85a0 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x9606cd04 ide_write_devctl +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 0x962bbdf0 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x964225f8 pcibios_unmap_io_space +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 0x96e4fdb7 add_to_page_cache_lru +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 0x978f24b1 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x97b61cd9 skcipher_geniv_init +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 0x99203f65 unregister_spu_syscalls +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x992bf553 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x99418880 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x999d213b platform_device_register_data +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 0x9a58a867 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x9a7385d6 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x9a9b9f0b show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x9aad6540 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x9ade8bc3 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x9b3517e4 pmac_i2c_get_adapter +EXPORT_SYMBOL_GPL vmlinux 0x9b3b737f register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x9b7bd6ba blk_abort_queue +EXPORT_SYMBOL_GPL vmlinux 0x9b9294fe pmac_i2c_get_channel +EXPORT_SYMBOL_GPL vmlinux 0x9b9d0ec2 ide_pci_init_one +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +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 0x9ca8f203 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cb9e96e dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x9d011623 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9d19ea88 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x9d3d9849 ide_port_unregister_devices +EXPORT_SYMBOL_GPL vmlinux 0x9dc1944a dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x9dcd8f04 ide_do_test_unit_ready +EXPORT_SYMBOL_GPL vmlinux 0x9df8caa4 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x9e532c5a register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x9e5c0216 irq_of_parse_and_map +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 0x9f58e794 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x9f7a3732 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x9fb271b2 ide_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x9fc3c673 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fd2595c sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9fe4fb6e blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xa017fdc3 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xa02ce299 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xa044b9b4 __remove_pages +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 0xa0f779e2 tcp_death_row +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 0xa324888a rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xa33bc641 inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xa34ff7b6 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0xa36d2c9b scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0xa39aafef pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa3a2d9af walk_system_ram_range +EXPORT_SYMBOL_GPL vmlinux 0xa3b860bf blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xa3c04b86 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa3f82ee7 fuse_sync_release +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 0xa4a0ecc6 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xa4a42813 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0xa4bbfe23 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0xa4f34388 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xa4f9109a crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0xa5096911 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa5463454 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0xa54cad3e usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xa55d6977 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0xa564c609 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0xa57d83b8 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa5e7ee27 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa62e977e tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xa67a0cdd crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0xa69d6d1a ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0xa6addb99 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xa6f71954 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xa709fd48 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0xa726482c crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xa7369bab blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0xa7723ce7 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0xa77b80d6 user_read +EXPORT_SYMBOL_GPL vmlinux 0xa7aeb5c9 ps3_system_bus_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xa81f2434 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xa84df395 class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa86a2b47 sysdev_store_int +EXPORT_SYMBOL_GPL vmlinux 0xa8d0fc68 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xa8e6e24a ide_read_bcount_and_ireason +EXPORT_SYMBOL_GPL vmlinux 0xa8ee5e70 ps3_vuart_port_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +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 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9c8dfa4 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xa9ed0524 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0xa9eda768 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path +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 0xaaa2443e rtnl_link_unregister +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 0xab42fc70 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab8872ad hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0xab8b4fb8 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0xaba85b6c vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xabaec659 pcibios_map_io_space +EXPORT_SYMBOL_GPL vmlinux 0xabbc01ca devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xabbf4791 of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0xabe85dff eeh_dn_check_failure +EXPORT_SYMBOL_GPL vmlinux 0xac5213c3 inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0xac73bc2c ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xaca7b3f3 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xacc2633c spu_switch_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacfe997e powerpc_firmware_features +EXPORT_SYMBOL_GPL vmlinux 0xad063024 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xad2b7c52 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xad40c063 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xad60f622 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xadb11fdc probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0xadb4ed8d ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xade80901 sata_scr_read +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 0xae46d792 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0xae6869aa bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xae76de9e ata_common_sdev_attrs +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 0xaf616ff0 ide_prep_sense +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 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 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 0xb2481ea7 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0xb26cdb63 spu_management_ops +EXPORT_SYMBOL_GPL vmlinux 0xb26d2ce6 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb26d3cb1 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xb2883f30 register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xb299f314 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xb2bca59f pci_assign_unassigned_bridge_resources +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 0xb3b914d5 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xb3c27631 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xb3f46ee2 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xb42b7f07 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0xb46aa874 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xb4db42ba wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +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 0xb5622fd4 ring_buffer_read_prepare +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 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb60379d7 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xb612444d snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0xb64ba8a3 blkdev_ioctl +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 0xb744fa43 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xb7a9e966 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0xb7b4cd7f ring_buffer_write +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 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 0xb898fd4d tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xb8bb945f register_spu_syscalls +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 0xb9a3449e crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xba2a9e7f ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0xba49cfcb i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0xba58375a register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0xba7e61ee ide_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xbaa34401 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xbad26090 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport +EXPORT_SYMBOL_GPL vmlinux 0xbb000330 ide_setup_pci_noise +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 0xbb7c9486 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0xbb93d2e3 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0xbc2a181a crypto_ahash_digest +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 0xbcc2bdf1 do_rw_taskfile +EXPORT_SYMBOL_GPL vmlinux 0xbd2263c2 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xbd3c3862 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xbd4623c2 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xbd54df47 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xbd6722c7 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0xbd6eb73c unregister_ftrace_event +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 0xbe0a3b5e ata_sas_slave_configure +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 0xbea85a32 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xbec15b5a irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xbf1cc04b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xbf1f7719 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xbf396e0c led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbf505aa0 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0xbfb0ba75 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0xbfb19d4b screen_glyph +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 0xc0bee701 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0c42a9d ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc12a458f ata_link_next +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 0xc1ca87d3 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0xc1cbc240 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xc1de8449 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0xc1fa4dfb unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xc1fcf7c9 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0xc1ff7e41 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0xc2014d06 ide_capacity_proc_fops +EXPORT_SYMBOL_GPL vmlinux 0xc21337c5 dm_device_name +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 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 0xc36ad8f4 ide_check_atapi_device +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 0xc3c52b65 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xc3cf14a9 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc3fc7c71 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0xc40b2a12 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xc4109156 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xc422bb67 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc4338b55 ide_init_disk +EXPORT_SYMBOL_GPL vmlinux 0xc46d8dfa generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0xc47c2b85 ps3_system_bus_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4982c54 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xc4c64884 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xc5152e16 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0xc53650f3 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xc584ac4e filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0xc592a211 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xc5c79f99 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xc5cf67f9 user_update +EXPORT_SYMBOL_GPL vmlinux 0xc5f8c9bb pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0xc609f71c pm_request_resume +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc6164fe9 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xc66c2311 ps3_vuart_irq_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc67fc55e fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xc6a3ee71 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc6b06d59 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc6bfb787 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xc6f8bd17 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0xc6fb02af ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xc76e0417 put_pid +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 0xc8891779 securityfs_remove +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 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9afa25f tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xc9bbef44 irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9fccc6c dm_disk +EXPORT_SYMBOL_GPL vmlinux 0xca2f0ed1 pmf_get_function +EXPORT_SYMBOL_GPL vmlinux 0xca32a2aa ide_timing_merge +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 0xcacc9886 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0xcb21d41b do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xcb321c5f set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xcb89794f sata_link_hardreset +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 0xcc0d2a02 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc337676 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0xccab55c6 irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0xccbfb6de ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccd3054e proc_net_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xccff1fc3 tty_prepare_flip_string_flags +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 0xcdb0652d pmac_i2c_open +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xce0750b9 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xce081bbc sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xce0c3fad ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0xce3d2aef crypto_larval_alloc +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 0xcedecb76 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xceee854c ide_do_start_stop +EXPORT_SYMBOL_GPL vmlinux 0xcf1c9dd4 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xcf23a823 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0xcf5659a0 regulator_get_mode +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 0xd0756854 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0c3ad6c ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0xd0d2d207 tc35892_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd10e4da1 ide_pci_resume +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 0xd19dad55 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1dc182b tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xd1eb2ac7 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd29c1a57 nf_unregister_queue_handlers +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 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd3307ab0 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xd333a43b anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xd3940f9c pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0xd3a8671c xfrm_audit_state_delete +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 0xd4328d35 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xd471748f pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xd49189a5 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0xd4aa1c78 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0xd56a584a save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0xd57bfe15 ide_register_region +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 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 0xd66db12a ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd6d3435f ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xd6d876f9 sysdev_register +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 0xd755049a crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77198e2 ide_set_media_lock +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 0xd7beb6ee shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7db542a regulator_unregister_notifier +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 0xd83e58b7 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0xd8498f4d ps3av_mode_cs_info +EXPORT_SYMBOL_GPL vmlinux 0xd85dc2b2 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0xd897d376 inotify_init +EXPORT_SYMBOL_GPL vmlinux 0xd8b95c88 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0xd8c1b249 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xd8ffdc92 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xd9482588 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xd97b3007 tty_buffer_request_room +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 0xda89f9b2 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0xdadfb733 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xdadfd441 sata_scr_write +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 0xdb1e0b92 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0xdb391553 cpu_remove_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0xdb4d0b96 find_pid_ns +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 0xdc095456 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xdc13bca3 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0xdc388ffd ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xdc9131a7 ide_device_get +EXPORT_SYMBOL_GPL vmlinux 0xdcad56d8 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0xdccddded sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0xdce24846 ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd043eea ps3av_get_auto_mode +EXPORT_SYMBOL_GPL vmlinux 0xdd67467c rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xddd867f7 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0xddf25fa7 vfs_listxattr +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 0xde46f4f6 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xdecdd170 ide_build_dmatable +EXPORT_SYMBOL_GPL vmlinux 0xdeebafad device_add +EXPORT_SYMBOL_GPL vmlinux 0xdef5ce88 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0xdf4b622b scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe011f817 ps3flash_bounce_buffer +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 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe0e33f20 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xe11bab94 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xe15b097e scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xe1745417 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe18a1c8a ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xe19fc092 ps3fb_videomemory +EXPORT_SYMBOL_GPL vmlinux 0xe1b500f8 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xe1d7bc25 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xe21c7012 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xe2ce007d pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xe2ce0385 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0xe31c45cf sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0xe345738c get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xe35d26d4 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xe35e7720 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xe368383f ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0xe3e2feb0 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xe3e6c19d swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0xe410a78c blk_abort_request +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 0xe523b755 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xe535cc15 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xe54c77a6 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xe5a31ae2 ide_pad_transfer +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 0xe7c081b2 ide_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xe7ca2171 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe8042553 dev_attr_em_message +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 0xe86fa584 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xe882026e file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xe8860522 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0xe89988ce ide_read_altstatus +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 0xe9147b10 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xe918ebcf inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xe92e1760 __inet_hash_nolisten +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 0xe975c472 ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xe9a9fee5 ps3_mmio_region_create +EXPORT_SYMBOL_GPL vmlinux 0xe9d44fe7 generic_subsys_pm_ops +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 0xea82551b ide_error +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 0xeb8ae736 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xeb9df4cb ps3_sys_manager_register_ops +EXPORT_SYMBOL_GPL vmlinux 0xebb976bd spi_setup +EXPORT_SYMBOL_GPL vmlinux 0xebc854b1 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0xec02c7bc skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec8ae053 scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0xec90a54e ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0xec94c942 ide_port_scan +EXPORT_SYMBOL_GPL vmlinux 0xec9f7f60 pmac_low_i2c_lock +EXPORT_SYMBOL_GPL vmlinux 0xecb21d27 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0xecc99a71 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xed34547c ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0xed617cdc skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xed99e4e8 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0xee114035 init_phb_dynamic +EXPORT_SYMBOL_GPL vmlinux 0xee39bbac pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0xee39e444 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xeeabe03b udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xeec8525b skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xef2ceaf4 of_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef9aff50 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xf098dd15 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0xf0bdd960 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xf0cdee8a sata_link_resume +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 0xf11b4d3b __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0xf158f170 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xf1601b2d __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0xf168af31 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xf16a2d66 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf16c557c kick_process +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1bb1aa8 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0xf1c02b6d pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xf1ca7b23 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xf1dade81 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xf25eb414 ide_init_sg_cmd +EXPORT_SYMBOL_GPL vmlinux 0xf29b785e ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0xf2f1369f kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xf310ed35 __sock_recv_ts_and_drops +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 0xf4411a36 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xf469c705 ps3_io_irq_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf46acfa5 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0xf46c2727 ring_buffer_read_start +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 0xf4e1dc7c ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xf5234ffa crypto_alloc_instance2 +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 0xf576a81e ide_undecoded_slave +EXPORT_SYMBOL_GPL vmlinux 0xf5a06e1a macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5b32da9 spu_add_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0xf6cd89d2 __ide_pci_register_driver +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 0xf808f7d2 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0xf81c5d8c spi_async +EXPORT_SYMBOL_GPL vmlinux 0xf81d29d4 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf83e8437 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xf841d36f ata_std_qc_defer +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 0xf8f01243 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf94b6af5 tty_wakeup +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 0xfa45a887 ide_dma_sff_read_status +EXPORT_SYMBOL_GPL vmlinux 0xfaa10b16 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0xfaa61329 ata_port_desc +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 0xfb30ecff tcp_is_cwnd_limited +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 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 0xfcbec5e7 ide_device_put +EXPORT_SYMBOL_GPL vmlinux 0xfcfc5ff9 platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xfd80b1d9 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xfda8a323 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfe4f7598 mmput +EXPORT_SYMBOL_GPL vmlinux 0xfe4f8647 ring_buffer_commit_overrun_cpu +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 0xfeeae4cd input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xfefa2adb input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0xfefd50a4 ide_pio_bytes +EXPORT_SYMBOL_GPL vmlinux 0xff0dacff ps3av_video_mute +EXPORT_SYMBOL_GPL vmlinux 0xff3094a8 pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xff78fe71 ring_buffer_record_disable +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 0xffd4dfc0 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xffe4f26d put_device --- linux-2.6.35.orig/debian.master/abi/2.6.35-28.49/powerpc/powerpc64-smp.modules +++ linux-2.6.35/debian.master/abi/2.6.35-28.49/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-28.49/powerpc/powerpc.modules +++ linux-2.6.35/debian.master/abi/2.6.35-28.49/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-28.49/powerpc/powerpc +++ linux-2.6.35/debian.master/abi/2.6.35-28.49/powerpc/powerpc @@ -0,0 +1,10215 @@ +EXPORT_SYMBOL arch/powerpc/kvm/kvm 0x890540c1 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 0x9c23cd0d suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x19b4c1e4 uPD98402_init +EXPORT_SYMBOL drivers/block/loop 0x6db6eb0d 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 0x0588506d drm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x066c9756 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0733012d drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x086f282e drm_get_resource_len +EXPORT_SYMBOL drivers/gpu/drm/drm 0x09323a5a drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x09636d46 drm_get_resource_start +EXPORT_SYMBOL drivers/gpu/drm/drm 0x09f6830a drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0cf947cc drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0eb197d4 drm_lock_take +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 0x14abd799 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x157ec924 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x15d2cc85 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x15e820b7 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x16d7141a drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x17297d29 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0x18167d69 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c053049 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c15f202 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d011296 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d6f6e7d drm_irq_install +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 0x1f2db00d drm_mode_detachmode_crtc +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 0x21a89db6 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x23e59a00 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25069b7e drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2844351d drm_connector_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup +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 0x31342a9b drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31467706 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31a09833 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x328bab0f drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x338a9be0 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34a79cac drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34dc5edd drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3679dbad drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3847607c drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39ae198c drm_connector_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a11e6d6 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a25418e drm_rmmap_locked +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 0x3d7f6321 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f2600c2 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x462d0f16 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47413755 drm_mm_search_free_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47ceda46 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4838bd87 drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x486b8c5b drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x491eb562 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b1d4d7e drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b5ea7fd drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d98414f drm_vblank_cleanup +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 0x4f4a8748 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x554d2b32 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a9c7491 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f0821a3 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f472829 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5fe46335 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6020db9a drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x607a5586 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6319565a drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x634ad489 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6475eaa9 drm_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67d29d05 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x68f4fc0b drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ff8a789 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x70805a99 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74abf566 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x790cedc1 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x795a7d5c drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d7024cd drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d79bc88 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7db6f7ac drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e0edb67 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8093fe21 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x84aaac7a drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x864c383d drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b0c9666 drm_sg_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8bb0076d drm_get_drawable_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8bd9d442 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c4e0ced drm_i2c_encoder_init +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 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ecfc56c drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x913da103 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92b81ce6 drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c8f3a21 drm_i_have_hw_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9e376675 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9e72db87 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa2065f89 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4eabdfa drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8e39b32 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaabc4174 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xabd68938 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaccf0ad2 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xadd8f56d drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb11b3476 drm_addmap +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 0xb840eda8 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb94a336e drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbb13a564 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbb8c5f89 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbdd252e7 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5455cb3 drm_get_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6794f16 drm_core_get_map_ofs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc742ce5d drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc9018ec1 drm_connector_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc9df1c79 drm_agp_chipset_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca1fea20 drm_mode_probed_add +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 0xd1a6f28c drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2918e82 drm_mode_attachmode_crtc +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 0xd72adb6e drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd83e75db drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd88c3d86 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8d25f7b drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdffbf6c9 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0eaf2c8 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe189a7f4 drm_lock_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe36c6d9d drm_framebuffer_init +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 0xe67a8291 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8d24086 drm_ati_pcigart_init +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 0xed9390ba drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xef5cb0eb drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf170693d drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4673534 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4ed9196 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf89097f3 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf972ce04 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe04759d drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x15fbec3d drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x178c0ce4 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x25b152cc drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x31207af3 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x346901ea drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x39e03fb8 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3d510423 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x417ed4da drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x425537be drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4e461d99 drm_fb_helper_single_fb_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x500fe5e4 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x65580613 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x66bc489a drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7f0d253f drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8ffc0a99 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x977228d9 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9ccbe782 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa8ebcadc drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaa5dd22e drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xad14123d drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb4b743f5 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbc03290a drm_fb_helper_fini +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 0xcf115b4a drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe834226a i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xee435465 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf59afbc9 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfeed308b drm_helper_disable_unused_functions +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 0x26e366fc rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x4ca337eb rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xea9ed28a rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xee034f38 rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 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 0x048e793b rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0bc23b98 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0daea1a4 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1730dddc rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1ba05eb0 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x280fe23b rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3cd42808 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3dcca213 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x57e74d85 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6392ca30 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7efb011c rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x97aaab3f rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc099b099 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd31a2da4 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd9e59276 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe3488f56 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe903d592 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf82f0856 rdma_init_qp_attr +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 0x34f562c9 dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0x5318d693 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0x5f4027c8 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0x90ae3f4d dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x00fadd03 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x22cec691 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0xb1c3294c dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0xb584a2f5 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0xe8f43be1 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0xfaf6741a dm_snap_cow +EXPORT_SYMBOL drivers/md/md-mod 0x02657832 md_unregister_thread +EXPORT_SYMBOL drivers/md/md-mod 0x0c71135b bitmap_unplug +EXPORT_SYMBOL drivers/md/md-mod 0x0ed7a0a8 md_done_sync +EXPORT_SYMBOL drivers/md/md-mod 0x215f5644 bitmap_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0x2234ce56 bitmap_close_sync +EXPORT_SYMBOL drivers/md/md-mod 0x2600e427 md_check_no_bitmap +EXPORT_SYMBOL drivers/md/md-mod 0x40213c05 mddev_congested +EXPORT_SYMBOL drivers/md/md-mod 0x4fcdff56 md_integrity_register +EXPORT_SYMBOL drivers/md/md-mod 0x698558e0 bitmap_startwrite +EXPORT_SYMBOL drivers/md/md-mod 0x75bf7be9 md_integrity_add_rdev +EXPORT_SYMBOL drivers/md/md-mod 0x8783d579 md_wait_for_blocked_rdev +EXPORT_SYMBOL drivers/md/md-mod 0x87a4a16f md_set_array_sectors +EXPORT_SYMBOL drivers/md/md-mod 0x96330344 md_wakeup_thread +EXPORT_SYMBOL drivers/md/md-mod 0xac065060 bitmap_cond_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0xb880ce5b md_write_end +EXPORT_SYMBOL drivers/md/md-mod 0xb9977029 bitmap_endwrite +EXPORT_SYMBOL drivers/md/md-mod 0xbd25ad13 unregister_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0xbd9687aa md_register_thread +EXPORT_SYMBOL drivers/md/md-mod 0xc6ff7c53 md_barrier_request +EXPORT_SYMBOL drivers/md/md-mod 0xd02b9b49 register_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0xd1c76f9d bitmap_start_sync +EXPORT_SYMBOL drivers/md/md-mod 0xd3b519f8 md_error +EXPORT_SYMBOL drivers/md/md-mod 0xde7953fe md_write_start +EXPORT_SYMBOL drivers/md/md-mod 0xf6dda04f md_check_recovery +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 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 0xa619895e dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xba87f3d5 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd30cffda dib7000p_pid_filter_ctrl +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 0x02e13b40 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x09c652fc mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0c6f6d5f mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1366a6a8 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x21ecf192 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x28423704 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x303d2954 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3ff0eca1 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x40cd93ad mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x48133943 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5a52fd46 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6bd0fd8f mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x70bd2315 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7b3bbfec mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x85e3b5cc mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8c8e3ed2 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa61a3811 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb9ed94fe mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbedbc9dc mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbff768c9 mpt_set_taskmgmt_in_progress_flag +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 0xc97b413f mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcdacc58f mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcee7d709 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xea956711 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xeb69b829 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xebe905e3 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf5463dac mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf8f7ddca mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfa40bab6 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x015ad79d mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1956f810 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2451713a mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2e6316ee mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3069e7da mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3f58b7ac mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x46e5cbde mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x69104bc7 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x78f7bfd4 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x931470cd mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x981f454d mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa355124c mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa4334166 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa4a6da61 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa954ec4e mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb62058ae mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb82b7a14 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcc4a97d2 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcebf1942 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xded3044f mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe45fc4f7 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf13083b2 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf233140e mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf412b619 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfa57fc8d mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xff84b37c mptscsih_ioc_reset +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 0x0288db60 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 0xc66db9e4 bnx2_cnic_probe +EXPORT_SYMBOL drivers/net/bnx2x 0x9136e170 bnx2x_cnic_probe +EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/cnic 0xdc346550 cnic_register_driver +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x0dc504a2 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x216a116a dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3bbf8b13 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4e1073a5 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x575d78ab cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x57d72493 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5bdf7a17 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x82b26abb cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x9b607d69 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc1808916 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc312c373 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc3eb312d t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc88acfc3 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xeac29e07 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf7ffd98a t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xfc21f27b cxgb3_register_client +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 0x57023138 cxgb4_pktgl_to_skb +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 0xb2929ec1 cxgb4_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb578590d cxgb4_ofld_send +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 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 0x00961c61 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1e3fd906 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2efd3c40 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x37cdace6 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9ab03a0e sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xac704ddd sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xafc23dcd sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xbdd613b4 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd49937b9 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xed3f3064 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 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 0x034cce78 ppp_register_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x0d1154a7 ppp_dev_name +EXPORT_SYMBOL drivers/net/ppp_generic 0x1556ac91 ppp_unregister_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x37a1b078 ppp_channel_index +EXPORT_SYMBOL drivers/net/ppp_generic 0x4e110913 ppp_register_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0x6de3cabf ppp_input_error +EXPORT_SYMBOL drivers/net/ppp_generic 0x725fe723 ppp_output_wakeup +EXPORT_SYMBOL drivers/net/ppp_generic 0xa62000a9 ppp_unregister_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0xb8768a62 ppp_register_net_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0xd48a82b7 ppp_input +EXPORT_SYMBOL drivers/net/ppp_generic 0xf26dbf12 ppp_unit_number +EXPORT_SYMBOL drivers/net/pppox 0x7691c62e register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0x791cf4e3 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0xbe967622 pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/slhc 0x2278e94b slhc_remember +EXPORT_SYMBOL drivers/net/slhc 0x26b760c4 slhc_init +EXPORT_SYMBOL drivers/net/slhc 0x3fe0d1c0 slhc_free +EXPORT_SYMBOL drivers/net/slhc 0x62538167 slhc_toss +EXPORT_SYMBOL drivers/net/slhc 0x7e87227e slhc_compress +EXPORT_SYMBOL drivers/net/slhc 0xa78d9eb7 slhc_uncompress +EXPORT_SYMBOL drivers/net/sungem_phy 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 0x0ca796e1 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1b2f8f8b libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x22af02b2 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3177997e libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5923e163 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x63630699 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x665008c2 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7dd75b31 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x815ec33c libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8256f250 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x92e9820f libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9b4bfb29 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9fa9e7c0 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa79bc72c libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xabd6bb61 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xae6e901d libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc14b4f5d libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd6e42eae free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdf106ffc libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe8c49c10 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xea95fe02 libipw_txb_free +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 0x26f90277 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x31c99894 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x6f857281 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x80debca9 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc345c094 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc99a1838 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc9dc9a12 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x06bed8f9 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0ad3fbad fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x117a08c4 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1223bf74 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x12529275 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x149c90d8 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x170e1298 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1920cc41 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1a22d139 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x212a5fc6 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2a47efbc fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2b4e6cb0 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2d97d12f fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x31dd1b13 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x476770ae fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4817d9f7 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4c24c338 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x64b02cb6 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6c21e28f fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x741137e8 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7a43aeeb fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x997c1348 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9f63ce77 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9fc4d045 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa393d53b fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa99af798 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xabb3c737 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xac0c410c fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb17b4eec fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb60d027d fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbb4fab26 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc34906f6 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc7baccbc fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcd37f01c fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd04763d8 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe3445e9c fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe63e9cdf fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe76372ce fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf1d438aa fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf4e991fe fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf58969f1 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xff7777e9 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 0xfa6b1d95 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x01248993 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0e9dfc4f osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x18b4b056 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1b26f2fb osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2ebdf500 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x32881054 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x478905fe osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4ecdf21c osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x604db00f osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6308f58f osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x64ef6281 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x67fc67ba osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x74b48588 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7b20989c osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x811a9cdd osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8249ed3a osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8dad9166 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9892e544 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xafbfc4e3 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb07043a1 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb211c852 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb2edde03 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb509f2ff osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb62510c6 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb8f7fda3 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbddb2afe osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc5f73b08 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe09c2794 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe45d824c osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf3cf23ac osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf5425b65 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xffffe97a osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/osd 0x06f62f91 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x089b06c6 osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x1675a9ab osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x7387fb27 osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x752019ec osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xa731d1f7 osduld_device_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x03f504fe qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3ea4029c qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5b28b3ec qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x6e7e892d qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x871895e0 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x8d42ac7f 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/raid_class 0xe013840c raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xf3d374ec raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xffd410c0 raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x022dbb74 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1121cc0c fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x11c627e9 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1d3b06ca fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x35d0ee9f fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x61b74241 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6af53d37 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6b3dd09d fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6da0a8a4 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x897047d9 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9f113003 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb83ea8f9 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd80ce7a4 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0d2568e7 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x20738432 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2d7e31e1 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x37c9faec sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3f5c1589 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x42176ea2 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x42ab7f9b sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4902c4b0 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4c37fbf1 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x53d55a22 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x545ff3c3 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6d7f9df3 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7404a1f1 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x75f959e5 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x774197e4 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x84345ee3 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8e6ae958 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9ca0031a sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaad94faf sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb14a6c24 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb7f11872 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb8311453 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe1217c27 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf308fe12 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf8a71239 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xff0a3137 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x28afc97b spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x94e30ca2 spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xc63140bd spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xc968f0ee spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xde6b2fff spi_dv_device +EXPORT_SYMBOL drivers/serial/8250 0x66268888 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 0x09381a87 uart_remove_one_port +EXPORT_SYMBOL drivers/serial/serial_core 0x245d6b4f uart_match_port +EXPORT_SYMBOL drivers/serial/serial_core 0x36745d76 uart_resume_port +EXPORT_SYMBOL drivers/serial/serial_core 0x429b26c2 uart_get_baud_rate +EXPORT_SYMBOL drivers/serial/serial_core 0x743022d1 uart_write_wakeup +EXPORT_SYMBOL drivers/serial/serial_core 0xa95cb189 uart_suspend_port +EXPORT_SYMBOL drivers/serial/serial_core 0xb6e9697f uart_add_one_port +EXPORT_SYMBOL drivers/serial/serial_core 0xc6218e00 uart_get_divisor +EXPORT_SYMBOL drivers/serial/serial_core 0xdbf8b8e7 uart_unregister_driver +EXPORT_SYMBOL drivers/serial/serial_core 0xf1154259 uart_update_timeout +EXPORT_SYMBOL drivers/serial/serial_core 0xfd308412 uart_register_driver +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 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 0x36f0cae7 ieee80211_rx_mgt_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 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 0x8f03638f ieee80211_rx_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 0xc034578f ieee80211_txb_free_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 0x0113099c usb_wwan_startup +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x03a0088a usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x10e00d5b usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x42bdb2c8 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4df900ed usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5f9d9d1e usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x64a96eb6 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8484be8a usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc6d2dfd5 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd0cee7fa usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd244d5d3 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd420c532 usb_wwan_disconnect +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd79511e5 usb_wwan_release +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xddf23c01 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x780bc18f usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xfd976939 usb_serial_suspend +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 0x29c1c62f w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x496e1b92 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0x4ad8fcfd w1_register_family +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 0x418aeff7 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0xbf15b740 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xc4accc66 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xe9b84e86 atalk_find_dev_addr +EXPORT_SYMBOL net/atm/atm 0x0983679c atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x0dbd4c94 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x35b4112b vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x69a5f4c1 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x6f35b5f9 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x776eed2e atm_charge +EXPORT_SYMBOL net/atm/atm 0x8ae99af6 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x94b3b061 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xb9dd2671 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xbf87c439 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0xf476965c atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xf5eab1ab vcc_sklist_lock +EXPORT_SYMBOL net/ax25/ax25 0x05754fc5 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x0e7bd022 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x38a3f152 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 0x6468c0d9 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x7624a2e9 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x893272fb ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x9ca916c6 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0xb5b8fadc ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xe9292b70 ax25_rebuild_header +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0eb74325 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x12ec676f bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1667c76c hci_conn_check_link_mode +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1daf5b1c hci_conn_put_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3102b9bb hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x310dc009 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3b67f2a7 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x42f0ed8e bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x46f57533 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b1f95fd bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5ce12ce5 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5ec02c6b hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x691c6015 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x74ede6ff hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x806b0b9e hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8dd69a22 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9462c8df hci_conn_hold_device +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9f11590a hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9f4b0c3c hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa55bb036 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb43e36d1 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb58a5372 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc3ab9647 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc672e806 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc701928c hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xce9bff34 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcfd49e1d hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd389c98a hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xddf3a9b7 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe4079c64 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xea5085db hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf79dd675 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x1f97cd06 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x1b01c1f7 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x3e39f7d4 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd88c0d5e 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 0x83e2264f can_send +EXPORT_SYMBOL net/can/can 0x94e9742a can_proto_unregister +EXPORT_SYMBOL net/can/can 0xa6f20d47 can_proto_register +EXPORT_SYMBOL net/can/can 0xc07b18d6 can_rx_register +EXPORT_SYMBOL net/can/can 0xd4925665 can_rx_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x1a126a69 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2cb17cb7 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3a035c1a ieee802154_nl_start_confirm +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 0x911d03ee ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb4947727 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xbf3d8a4f ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc5409f22 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xceed07d2 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xfe7e7f3e ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x16b031ef arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x9711d39c arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xadc462a8 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x1b39922b ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x3f39cdce ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x4960005d ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x6c484784 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7378ee9a nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x891ebf89 nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x8a69a931 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x9074c920 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x921bceb6 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa38e3111 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/tunnel4 0x0e899eda xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xefdcbcf6 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/ipv6 0x0023c4f5 inet6_ioctl +EXPORT_SYMBOL net/ipv6/ipv6 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL net/ipv6/ipv6 0x0c9cd2c7 in6_dev_finish_destroy +EXPORT_SYMBOL net/ipv6/ipv6 0x10ffd6af xfrm6_input_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x13521a37 inet6_add_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x19e7e642 ndisc_build_skb +EXPORT_SYMBOL net/ipv6/ipv6 0x22f83989 ipv6_chk_prefix +EXPORT_SYMBOL net/ipv6/ipv6 0x289187f6 ip6_frag_init +EXPORT_SYMBOL net/ipv6/ipv6 0x48496d01 ip6_route_me_harder +EXPORT_SYMBOL net/ipv6/ipv6 0x4c68fca9 ipv6_push_nfrag_opts +EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0x5f8a62a4 inet6_del_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x600ae233 xfrm6_prepare_output +EXPORT_SYMBOL net/ipv6/ipv6 0x64743702 icmpv6_send +EXPORT_SYMBOL net/ipv6/ipv6 0x6483c92e ip6_frag_match +EXPORT_SYMBOL net/ipv6/ipv6 0x64c2604a nf_ip6_checksum +EXPORT_SYMBOL net/ipv6/ipv6 0x8503c2fb ip6_xmit +EXPORT_SYMBOL net/ipv6/ipv6 0x95348704 ipv6_dev_get_saddr +EXPORT_SYMBOL net/ipv6/ipv6 0xa233c4fa ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0xb42c388b inet6_unregister_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0xb5f74671 xfrm6_rcv +EXPORT_SYMBOL net/ipv6/ipv6 0xbe922efe ip6_route_output +EXPORT_SYMBOL net/ipv6/ipv6 0xc193a9fa rt6_lookup +EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0xd4815744 xfrm6_find_1stfragopt +EXPORT_SYMBOL net/ipv6/ipv6 0xd554f725 ndisc_send_skb +EXPORT_SYMBOL net/ipv6/ipv6 0xd5d3cf2b ndisc_mc_map +EXPORT_SYMBOL net/ipv6/ipv6 0xd7be4bf4 ipv6_chk_addr +EXPORT_SYMBOL net/ipv6/ipv6 0xe523a537 inet6_release +EXPORT_SYMBOL net/ipv6/ipv6 0xe690b8fd __ipv6_isatap_ifid +EXPORT_SYMBOL net/ipv6/ipv6 0xe8857906 inet6_getname +EXPORT_SYMBOL net/ipv6/ipv6 0xe8df0a10 ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0xf08d861e xfrm6_rcv_spi +EXPORT_SYMBOL net/ipv6/ipv6 0xf19044db inet6_register_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0xf9e75d7d inet6_bind +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x12d29d67 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x57661ea5 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x8794476d ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xcab6ad19 ip6t_do_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x906c4395 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xb38c3f3d xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x826fef34 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9a5610af xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xeb83f3e6 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 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 0x26815a66 irlap_open +EXPORT_SYMBOL net/irda/irda 0x2b2dba21 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x2b3cb77a irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x2c561bef irlap_close +EXPORT_SYMBOL net/irda/irda 0x2d3765bc hashbin_find +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 0x77a9d9db irda_notify_init +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 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9c551f84 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x9c9464fe irda_device_set_media_busy +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 0xc3a512dd hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xca549c6d irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0xd7bd18f1 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0xdb394b63 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe0cfd3e4 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0xe2d35639 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0xea48bf1f proc_irda +EXPORT_SYMBOL net/irda/irda 0xece9d922 irttp_dup +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xedf805a9 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0xef16660b hashbin_new +EXPORT_SYMBOL net/irda/irda 0xf2c7c16d async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0xf39b7fe0 irda_setup_dma +EXPORT_SYMBOL net/l2tp/l2tp_core 0x7fe6e671 l2tp_recv_common +EXPORT_SYMBOL net/l2tp/l2tp_core 0xc1a3e178 l2tp_tunnel_destruct +EXPORT_SYMBOL net/lapb/lapb 0x081ce098 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x2f8460cf lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x3f1e8be3 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x56126de6 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x8fc18c7c lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x9b1ca356 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x9c81cec9 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0xebc67c57 lapb_getparms +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 0x00ce0b1c ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0787d9eb register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x200efe5e unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3e5b8444 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x40fd00f1 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x446684c5 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x55c3e856 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa59c5f41 ip_vs_skb_replace +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd223d0f5 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf69d6c13 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xfb7fbab6 ip_vs_conn_new +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 0x1bf3baad xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x42a0adc5 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x4a57ffbe xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x5f047aba xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x833e5623 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x99e72c76 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xd80c7e34 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xdad7960b xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xde0df83d xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0xef51c7bc xt_find_match +EXPORT_SYMBOL net/phonet/phonet 0x35bc1110 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x7d4ae20c phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x8cfcc5c2 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x923661d4 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x993e6e34 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0xaa67fcbc pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0xbc18115d pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0xd22f5c90 pn_skb_send +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x32fc30fa rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x37d6c92f rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3af4de89 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5b7e9203 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5c6484a3 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x701a836a rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x72b3b471 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x79b0b3c0 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7c664647 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7d97fcd3 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x86315a57 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x94b09ec6 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb0dbf38a rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb3657c56 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf7535261 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/sunrpc/sunrpc 0x325c7d52 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 0xaee0c391 wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0xb543876a wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x0457799f freq_reg_info +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 0x144637f4 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x2076267f ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x24cacb1f cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x3699a2f1 ieee80211_data_from_8023 +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 0x691e10b9 ieee80211_get_hdrlen_from_skb +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 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 0x9d1ff8de __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x9f12a3b2 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xa5b8b0ae cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xa9ae8fca 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 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 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 0x000076d2 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x000b4627 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x000f738c scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x00356f64 registered_fb +EXPORT_SYMBOL vmlinux 0x006d6d97 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00d1d26f proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x00d893d0 vfs_readv +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x0103d139 dm_io_client_resize +EXPORT_SYMBOL vmlinux 0x0105d22b blk_remove_plug +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x013ae263 bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0x013c2b76 dma_pool_free +EXPORT_SYMBOL vmlinux 0x01530e20 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x01585c49 dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x015dd71b vlan_gro_frags +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01aeb69c d_prune_aliases +EXPORT_SYMBOL vmlinux 0x01b6aff8 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x01ea7773 slow_work_sleep_till_thread_needed +EXPORT_SYMBOL vmlinux 0x0200fc45 netif_napi_del +EXPORT_SYMBOL vmlinux 0x021f1cd3 xrlim_allow +EXPORT_SYMBOL vmlinux 0x02384e8d ioremap_flags +EXPORT_SYMBOL vmlinux 0x024fe8d5 udp_table +EXPORT_SYMBOL vmlinux 0x02582614 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x025dae94 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x02626c20 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x026b752e find_lock_page +EXPORT_SYMBOL vmlinux 0x026f782e keyring_clear +EXPORT_SYMBOL vmlinux 0x027d1aa8 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +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 0x031a6b1f nf_unregister_queue_handler +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 0x03672c3b udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x03745a57 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03b30449 of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0x03c02c54 file_fsync +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03e482ae iunique +EXPORT_SYMBOL vmlinux 0x03f2ae09 llc_add_pack +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x0400429e set_irq_chip +EXPORT_SYMBOL vmlinux 0x04087919 neigh_destroy +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x0433c8ef hippi_change_mtu +EXPORT_SYMBOL vmlinux 0x04653b3f nf_reinject +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x0490d5c0 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x049b4a87 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x049d5be8 dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x04a22ea4 unlock_rename +EXPORT_SYMBOL vmlinux 0x04a7a742 netpoll_send_skb +EXPORT_SYMBOL vmlinux 0x04ceb260 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x04cfe1a0 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups +EXPORT_SYMBOL vmlinux 0x052ca381 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x05333c61 inet_accept +EXPORT_SYMBOL vmlinux 0x053f80b6 end_page_writeback +EXPORT_SYMBOL vmlinux 0x05599bc0 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x0572bc5e ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x05775d04 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x0587e7de tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x05a514a1 _insl_ns +EXPORT_SYMBOL vmlinux 0x05baaba0 wait_for_completion +EXPORT_SYMBOL vmlinux 0x05bf19e7 dqget +EXPORT_SYMBOL vmlinux 0x05ef1263 pipe_lock +EXPORT_SYMBOL vmlinux 0x05fdf0e4 kernel_connect +EXPORT_SYMBOL vmlinux 0x0601a9b3 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x0608af59 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x065555df pskb_copy +EXPORT_SYMBOL vmlinux 0x0670de2e ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x0675c7eb atomic64_cmpxchg +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06de1c18 prepare_binprm +EXPORT_SYMBOL vmlinux 0x06e3522a con_copy_unimap +EXPORT_SYMBOL vmlinux 0x06ede9d3 alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x071a2d43 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x07430dfc security_d_instantiate +EXPORT_SYMBOL vmlinux 0x07489d01 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x07502bf1 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x07533b82 dm_table_unplug_all +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg +EXPORT_SYMBOL vmlinux 0x0805be45 flush_tlb_page +EXPORT_SYMBOL vmlinux 0x081f6679 dev_open +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x085b38b3 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x089e42a3 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x08adf171 get_gendisk +EXPORT_SYMBOL vmlinux 0x08c480bc d_instantiate +EXPORT_SYMBOL vmlinux 0x08ded414 ida_get_new_above +EXPORT_SYMBOL vmlinux 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL vmlinux 0x091de924 find_get_page +EXPORT_SYMBOL vmlinux 0x09388937 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x09554141 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x095a0e7d tty_shutdown +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09b6ae05 revalidate_disk +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09c961d8 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x09ceb84b tty_set_operations +EXPORT_SYMBOL vmlinux 0x09fd6e9b blk_free_tags +EXPORT_SYMBOL vmlinux 0x09fdfa4a i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x0a0243ce inet_shutdown +EXPORT_SYMBOL vmlinux 0x0a1b7de1 softnet_data +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +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 0x0aed407e skb_queue_purge +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b20a3a0 eth_header_cache +EXPORT_SYMBOL vmlinux 0x0b351ada mempool_resize +EXPORT_SYMBOL vmlinux 0x0b41bc9a pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x0b525e39 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL vmlinux 0x0b5d734f udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0ba87211 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x0bb9288b neigh_seq_start +EXPORT_SYMBOL vmlinux 0x0bd42771 blk_queue_invalidate_tags +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 0x0c633597 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c661542 flush_icache_user_range +EXPORT_SYMBOL vmlinux 0x0c6b6704 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x0c7989eb dquot_destroy +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 0x0c9cb53e dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0d38bb14 skb_split +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d62d9af cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x0d92fa87 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x0d9bd495 sg_miter_start +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dbf38b8 mol_trampoline +EXPORT_SYMBOL vmlinux 0x0ded4f6d register_netdev +EXPORT_SYMBOL vmlinux 0x0dfbec60 file_remove_suid +EXPORT_SYMBOL vmlinux 0x0e097aab abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x0e11c88f xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x0e388b33 pci_dev_get +EXPORT_SYMBOL vmlinux 0x0e394e54 sock_i_uid +EXPORT_SYMBOL vmlinux 0x0e52592a panic +EXPORT_SYMBOL vmlinux 0x0e6eea15 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x0e795da7 dev_load +EXPORT_SYMBOL vmlinux 0x0e95f461 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0x0ead57dc security_inode_init_security +EXPORT_SYMBOL vmlinux 0x0ec98808 ida_init +EXPORT_SYMBOL vmlinux 0x0ed4ffdf swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x0ee80476 generic_write_end +EXPORT_SYMBOL vmlinux 0x0ef20db1 kernstart_addr +EXPORT_SYMBOL vmlinux 0x0ef5a008 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL vmlinux 0x0f299a28 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x0f367e20 napi_complete +EXPORT_SYMBOL vmlinux 0x0f636dc8 security_path_rename +EXPORT_SYMBOL vmlinux 0x0f6dfa95 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x0f90959a __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x0f9490a8 generic_make_request +EXPORT_SYMBOL vmlinux 0x0fa5df0f audit_log_format +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fc6d23c generic_removexattr +EXPORT_SYMBOL vmlinux 0x0ffa8302 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x1054143b dm_register_target +EXPORT_SYMBOL vmlinux 0x10588e0f inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x10603d83 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x10804aea kobject_init +EXPORT_SYMBOL vmlinux 0x108128f7 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x10843b19 ps2_drain +EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint +EXPORT_SYMBOL vmlinux 0x10a38f3a security_path_mknod +EXPORT_SYMBOL vmlinux 0x10a8668c of_find_property +EXPORT_SYMBOL vmlinux 0x10ad475f vfs_fsync +EXPORT_SYMBOL vmlinux 0x10aec165 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x10e10b1b __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10fc5507 cpufreq_global_kobject +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 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11a22c7c proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x11c4187a matroxfb_g450_connect +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x12080cec dma_direct_ops +EXPORT_SYMBOL vmlinux 0x12329e09 simple_release_fs +EXPORT_SYMBOL vmlinux 0x126f6011 inet_listen +EXPORT_SYMBOL vmlinux 0x12a477d8 __brelse +EXPORT_SYMBOL vmlinux 0x12b93a55 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x12d2fa82 security_path_unlink +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 0x131f2e1a dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x1326c1b2 phy_device_create +EXPORT_SYMBOL vmlinux 0x138e815d generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x13935caa proto_unregister +EXPORT_SYMBOL vmlinux 0x13d863a3 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x13ff09cf netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x1407c6e7 kmap_prot +EXPORT_SYMBOL vmlinux 0x14abeb98 __bforget +EXPORT_SYMBOL vmlinux 0x14caa695 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x151588ff inet_add_protocol +EXPORT_SYMBOL vmlinux 0x151aac17 cdrom_open +EXPORT_SYMBOL vmlinux 0x1525d4fc blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x15692e19 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x1585c25a security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x1589c546 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x160bd45c rtas_token +EXPORT_SYMBOL vmlinux 0x160e607d bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x162b50ea posix_lock_file +EXPORT_SYMBOL vmlinux 0x164b01a5 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x165d8114 bdi_unregister +EXPORT_SYMBOL vmlinux 0x168e9206 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x169cd174 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x16bc657a phy_find_first +EXPORT_SYMBOL vmlinux 0x16cc2914 sync_inode +EXPORT_SYMBOL vmlinux 0x16d74d2c generic_setlease +EXPORT_SYMBOL vmlinux 0x170aee64 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x170ec140 seq_printf +EXPORT_SYMBOL vmlinux 0x1727ee8a scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x17556def scsi_print_command +EXPORT_SYMBOL vmlinux 0x176f2bf4 dev_driver_string +EXPORT_SYMBOL vmlinux 0x179a08d6 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x17aa156a __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x17be1b0e fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17eb4059 install_exec_creds +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x17fefa18 journal_init_inode +EXPORT_SYMBOL vmlinux 0x17ffeade vfs_writev +EXPORT_SYMBOL vmlinux 0x180f5e8b xfrm_register_km +EXPORT_SYMBOL vmlinux 0x181b96d0 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x18523d93 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x185b7755 __page_symlink +EXPORT_SYMBOL vmlinux 0x185e3d9f ppc_md +EXPORT_SYMBOL vmlinux 0x1875b8c6 dm_put_device +EXPORT_SYMBOL vmlinux 0x18b960a7 matroxfb_register_driver +EXPORT_SYMBOL vmlinux 0x18ce61f6 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x18d28e52 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x192da105 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x195fa66f xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x1968e7a0 __scsi_put_command +EXPORT_SYMBOL vmlinux 0x196a2ce4 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x196aff3e dev_base_lock +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19b156c8 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x19b5e449 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x19f428cb register_shrinker +EXPORT_SYMBOL vmlinux 0x19f80f66 write_cache_pages +EXPORT_SYMBOL vmlinux 0x1a06d43d scsi_execute_req +EXPORT_SYMBOL vmlinux 0x1a111a41 ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x1a511723 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x1a552bcf splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x1a678a98 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x1a6daddf down_read +EXPORT_SYMBOL vmlinux 0x1a7bd16c vc_resize +EXPORT_SYMBOL vmlinux 0x1a7f150c inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x1a882364 down_killable +EXPORT_SYMBOL vmlinux 0x1a8f13bd ide_proc_register_driver +EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in +EXPORT_SYMBOL vmlinux 0x1aa30cc0 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x1aacbbd9 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x1ab2812f xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x1abcc815 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b223b19 __f_setown +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 0x1b62ba1e lro_flush_all +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b67cf22 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x1b6ece29 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bb1b44c blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x1bc4ff03 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x1bccfcc9 bdget_disk +EXPORT_SYMBOL vmlinux 0x1bdc7575 generic_write_checks +EXPORT_SYMBOL vmlinux 0x1bef602e i2c_use_client +EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x1c200867 napi_reuse_skb +EXPORT_SYMBOL vmlinux 0x1c3166f7 sock_init_data +EXPORT_SYMBOL vmlinux 0x1c5b2c15 pmu_wait_complete +EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check +EXPORT_SYMBOL vmlinux 0x1cb4abaf dev_uc_init +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cd0f6c0 mempool_alloc +EXPORT_SYMBOL vmlinux 0x1cdef882 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x1d22967c call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x1d297c78 tty_register_device +EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x1d39c49b alloc_fcdev +EXPORT_SYMBOL vmlinux 0x1d5b3bb0 sget +EXPORT_SYMBOL vmlinux 0x1d767f07 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x1d8e69d5 phy_disconnect +EXPORT_SYMBOL vmlinux 0x1db3ddae blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1ddfcf94 invalidate_partition +EXPORT_SYMBOL vmlinux 0x1df50fd8 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x1e62f851 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e783746 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x1e86addc jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x1e89d59c dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ea67f93 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x1eb44e11 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x1eb8ac77 vfs_statfs +EXPORT_SYMBOL vmlinux 0x1ec88244 matroxfb_read_pins +EXPORT_SYMBOL vmlinux 0x1ef5f20c iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set +EXPORT_SYMBOL vmlinux 0x1f06648c prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x1f272e9e add_disk +EXPORT_SYMBOL vmlinux 0x1f338a3f register_quota_format +EXPORT_SYMBOL vmlinux 0x1f6976a1 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x1f7325ab blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x1f7a7ee3 DAC1064_global_restore +EXPORT_SYMBOL vmlinux 0x1f8c4692 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x1f8d3bc6 giveup_altivec +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fe23a14 brioctl_set +EXPORT_SYMBOL vmlinux 0x1ff69dd8 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x20030ecd ioremap +EXPORT_SYMBOL vmlinux 0x2009f94c scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x20198c57 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x202076ab do_sync_write +EXPORT_SYMBOL vmlinux 0x20276f4c matroxfb_DAC_out +EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x204a36eb slow_work_register_user +EXPORT_SYMBOL vmlinux 0x20623202 arp_create +EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x20aa0445 bio_integrity_split +EXPORT_SYMBOL vmlinux 0x20af3c3b pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x20b38975 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x20e62ba1 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x210a72b7 sock_map_fd +EXPORT_SYMBOL vmlinux 0x212c9657 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x2141b556 netif_device_attach +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x21705ec6 blk_init_queue +EXPORT_SYMBOL vmlinux 0x218bee07 dst_alloc +EXPORT_SYMBOL vmlinux 0x218d738e pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x21aca86e journal_start_commit +EXPORT_SYMBOL vmlinux 0x21e9ba70 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x21ed595e block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x22131974 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x221dfde0 idr_pre_get +EXPORT_SYMBOL vmlinux 0x22245c95 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x224d0eda block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x22547639 unregister_exec_domain +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 0x229662b0 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22c9d183 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x22daf56a dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x22dafc38 dev_alloc_skb +EXPORT_SYMBOL vmlinux 0x22dd133b dquot_transfer +EXPORT_SYMBOL vmlinux 0x22dff9b5 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x22e6d5f4 audit_log_start +EXPORT_SYMBOL vmlinux 0x2305aad5 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x231ec2e7 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x2321f371 seq_write +EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul +EXPORT_SYMBOL vmlinux 0x233a5b4a sock_no_mmap +EXPORT_SYMBOL vmlinux 0x23502a1f inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x2373accd sock_no_poll +EXPORT_SYMBOL vmlinux 0x238b06ae swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x2395fbb1 iget5_locked +EXPORT_SYMBOL vmlinux 0x23a4d330 of_scan_pci_bridge +EXPORT_SYMBOL vmlinux 0x23bc4d77 path_lookup +EXPORT_SYMBOL vmlinux 0x23ca7734 vfs_link +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 0x23ef19bf kernel_accept +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x242ac0dc journal_stop +EXPORT_SYMBOL vmlinux 0x24340dc8 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x2447d49c dev_mc_del +EXPORT_SYMBOL vmlinux 0x245973f4 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x245aa74b dev_remove_pack +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 0x247b3b4f sock_setsockopt +EXPORT_SYMBOL vmlinux 0x24affea8 gen_pool_create +EXPORT_SYMBOL vmlinux 0x24baa0f3 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x24c4bc36 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x24f6e8be ide_dma_off +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 0x25608701 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x256a3be2 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x25783410 override_creds +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x259207f0 journal_restart +EXPORT_SYMBOL vmlinux 0x25a7e530 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL vmlinux 0x25f3bd2e atomic64_xchg +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x26589e20 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x2673db61 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x267c4bb0 pci_fixup_device +EXPORT_SYMBOL vmlinux 0x26911e4d gen_new_estimator +EXPORT_SYMBOL vmlinux 0x26a6ecf6 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x26b6b941 poll_initwait +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26e84b57 abort_creds +EXPORT_SYMBOL vmlinux 0x26f7de9b __inet6_hash +EXPORT_SYMBOL vmlinux 0x2700b38a mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x27079657 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x270f7223 register_8022_client +EXPORT_SYMBOL vmlinux 0x2724070a __scsi_add_device +EXPORT_SYMBOL vmlinux 0x272c9acd pmu_battery_count +EXPORT_SYMBOL vmlinux 0x272df557 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x277af174 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x27b63fc2 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x27cdf339 pci_find_bus +EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic +EXPORT_SYMBOL vmlinux 0x27f74f18 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x281510fb sock_register +EXPORT_SYMBOL vmlinux 0x2830fee2 idr_get_next +EXPORT_SYMBOL vmlinux 0x2848b422 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll +EXPORT_SYMBOL vmlinux 0x2866f21a pfifo_qdisc_ops +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 0x28d7b8ab swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0x28ed2d81 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x28f14922 set_page_dirty +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 0x29984460 skb_clone +EXPORT_SYMBOL vmlinux 0x29a2772d tty_unregister_device +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 0x29dde92c rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x2a2e2ecc elv_rb_add +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a49d39b posix_test_lock +EXPORT_SYMBOL vmlinux 0x2a7c0877 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x2a8f2241 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aa7e293 call_usermodehelper_setfns +EXPORT_SYMBOL vmlinux 0x2ae04d5e adb_client_list +EXPORT_SYMBOL vmlinux 0x2b070420 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b1643e4 commit_creds +EXPORT_SYMBOL vmlinux 0x2b170703 path_put +EXPORT_SYMBOL vmlinux 0x2b382e38 sb_set_blocksize +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 0x2bb882ea xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x2bc61da1 program_check_exception +EXPORT_SYMBOL vmlinux 0x2bcb10a1 mach_powermac +EXPORT_SYMBOL vmlinux 0x2bebc003 bio_sector_offset +EXPORT_SYMBOL vmlinux 0x2bf3b45b tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x2bf96c4b jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x2c0405ae pagecache_write_end +EXPORT_SYMBOL vmlinux 0x2c217805 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x2c2bd010 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x2c32a56d tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x2c7a2126 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x2c9d469e matroxfb_vgaHWinit +EXPORT_SYMBOL vmlinux 0x2ca9ad4c pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x2ce32379 cdev_alloc +EXPORT_SYMBOL vmlinux 0x2cf14034 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d1b40ed fsnotify_find_mark_entry +EXPORT_SYMBOL vmlinux 0x2d1ce147 tc_classify +EXPORT_SYMBOL vmlinux 0x2d2e3c3e nf_afinfo +EXPORT_SYMBOL vmlinux 0x2d34a1b4 dq_data_lock +EXPORT_SYMBOL vmlinux 0x2d4010c3 rtc_dev_update_irq_enable_emul +EXPORT_SYMBOL vmlinux 0x2d4eb86c neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d92a920 aio_put_req +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 0x2e0143d6 generic_fillattr +EXPORT_SYMBOL vmlinux 0x2e09567a of_get_gpio_flags +EXPORT_SYMBOL vmlinux 0x2e0b64c7 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x2e2239c9 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x2e2a80c1 kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x2e5a6f29 d_find_alias +EXPORT_SYMBOL vmlinux 0x2ea2e2e2 of_node_put +EXPORT_SYMBOL vmlinux 0x2ea7cec5 bdi_destroy +EXPORT_SYMBOL vmlinux 0x2ecd1fab tcp_prot +EXPORT_SYMBOL vmlinux 0x2ed2d381 dev_uc_del +EXPORT_SYMBOL vmlinux 0x2ed4e5c9 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x2efb6249 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x2f28e433 nobh_write_end +EXPORT_SYMBOL vmlinux 0x2f2dbad9 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x2f4922a3 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x2f5fa13f put_mnt_ns +EXPORT_SYMBOL vmlinux 0x2f7c6029 ip_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x2fbed054 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x2fdb9c8f nf_unregister_hooks +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 0x303e400f security_task_getsecid +EXPORT_SYMBOL vmlinux 0x303f1255 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x30457f17 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x30459ab4 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x3059399c tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x3077e881 locks_init_lock +EXPORT_SYMBOL vmlinux 0x3081ea02 of_create_pci_dev +EXPORT_SYMBOL vmlinux 0x30a55d14 inet_dgram_ops +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 0x314b4d8e mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x316cb9c9 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x316dd1cd __wait_on_bit +EXPORT_SYMBOL vmlinux 0x318127f4 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +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 0x3202c652 vfs_follow_link +EXPORT_SYMBOL vmlinux 0x326df9e1 vfs_stat +EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc +EXPORT_SYMBOL vmlinux 0x327b9c1b pmu_poll_adb +EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint +EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy +EXPORT_SYMBOL vmlinux 0x3292f3e2 gen_pool_add +EXPORT_SYMBOL vmlinux 0x32d74a1a tcp4_gro_complete +EXPORT_SYMBOL vmlinux 0x32fed0d0 elv_queue_empty +EXPORT_SYMBOL vmlinux 0x33157b19 bmap +EXPORT_SYMBOL vmlinux 0x334ffa36 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x336256c2 module_refcount +EXPORT_SYMBOL vmlinux 0x33683126 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x3376ece2 pci_enable_device +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33bd2de3 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x33d1c305 phy_print_status +EXPORT_SYMBOL vmlinux 0x33e5f357 __pci_register_driver +EXPORT_SYMBOL vmlinux 0x34365fd0 set_blocksize +EXPORT_SYMBOL vmlinux 0x343797e8 key_task_permission +EXPORT_SYMBOL vmlinux 0x344adbd5 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long +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 0x34c1c02b skb_gro_reset_offset +EXPORT_SYMBOL vmlinux 0x34c6b70b rfkill_unregister +EXPORT_SYMBOL vmlinux 0x34d81a56 inode_change_ok +EXPORT_SYMBOL vmlinux 0x34dbd0a5 matroxfb_g450_shutdown +EXPORT_SYMBOL vmlinux 0x34e64bdc jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x351ba679 blk_put_request +EXPORT_SYMBOL vmlinux 0x352a49e4 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x35787fe7 sock_create +EXPORT_SYMBOL vmlinux 0x35bcc6e5 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x35bce17b pci_get_subsys +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35da2e61 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x35ec45d3 __rta_fill +EXPORT_SYMBOL vmlinux 0x35f97080 macio_request_resources +EXPORT_SYMBOL vmlinux 0x35ffcbb4 matroxfb_g450_setpll_cond +EXPORT_SYMBOL vmlinux 0x3600f1c0 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x36013495 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x3610f787 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x363b3e23 tcp_ioctl +EXPORT_SYMBOL vmlinux 0x364d6820 __lru_cache_add +EXPORT_SYMBOL vmlinux 0x366bb06b note_scsi_host +EXPORT_SYMBOL vmlinux 0x3679bd61 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x3690de0e __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x36a94829 bio_init +EXPORT_SYMBOL vmlinux 0x36bdfa49 vfs_readdir +EXPORT_SYMBOL vmlinux 0x36c25aba inode_set_bytes +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36ed7e81 find_or_create_page +EXPORT_SYMBOL vmlinux 0x370403a4 ide_do_reset +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 0x373cc94c udp_sendmsg +EXPORT_SYMBOL vmlinux 0x373cf184 elv_rb_find +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf +EXPORT_SYMBOL vmlinux 0x375166a6 soft_cursor +EXPORT_SYMBOL vmlinux 0x3751d9c2 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x3775c67d __bio_clone +EXPORT_SYMBOL vmlinux 0x377a02e5 dm_io_client_create +EXPORT_SYMBOL vmlinux 0x3782e98b clocksource_change_rating +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 0x38133c8b dqstats +EXPORT_SYMBOL vmlinux 0x3851a131 get_write_access +EXPORT_SYMBOL vmlinux 0x387145f7 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x388600c2 dev_get_stats +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x389ffa5a noop_qdisc +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x38fb9933 tty_std_termios +EXPORT_SYMBOL vmlinux 0x3916fc49 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x391c7421 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x3940dd69 netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x39435559 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x394805df scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x395f0aa8 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x398a1347 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x398bf1eb tcf_em_register +EXPORT_SYMBOL vmlinux 0x398e3537 pci_dev_put +EXPORT_SYMBOL vmlinux 0x39b3a9bb input_flush_device +EXPORT_SYMBOL vmlinux 0x39bfbf90 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x39d96f4f input_event +EXPORT_SYMBOL vmlinux 0x39dcfb46 i2c_master_send +EXPORT_SYMBOL vmlinux 0x39f7310c __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x39fc3a94 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x3a1d58f4 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a306d54 generic_readlink +EXPORT_SYMBOL vmlinux 0x3a699609 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3ab9ef86 __find_get_block +EXPORT_SYMBOL vmlinux 0x3ac83a37 bio_clone +EXPORT_SYMBOL vmlinux 0x3ad5338e __register_chrdev +EXPORT_SYMBOL vmlinux 0x3aecd564 ab3100_event_register +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b31f43a tcf_exts_change +EXPORT_SYMBOL vmlinux 0x3b33bd95 set_create_files_as +EXPORT_SYMBOL vmlinux 0x3b6d1ec8 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x3b6ea7b9 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x3b7ed4cf register_key_type +EXPORT_SYMBOL vmlinux 0x3bc195e9 dm_table_get +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bde5e88 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x3bf63ff1 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x3c0ecb2f netdev_set_master +EXPORT_SYMBOL vmlinux 0x3c1a087d scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x3c213318 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf +EXPORT_SYMBOL vmlinux 0x3c3b7a24 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x3c834b68 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3c9d3c1f scsi_target_resume +EXPORT_SYMBOL vmlinux 0x3cb79591 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x3cd5c629 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cf3e8bf rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0x3cfe3baf devm_ioremap +EXPORT_SYMBOL vmlinux 0x3d5347d8 do_splice_from +EXPORT_SYMBOL vmlinux 0x3d6dec05 key_type_keyring +EXPORT_SYMBOL vmlinux 0x3d77937b I_BDEV +EXPORT_SYMBOL vmlinux 0x3d78fd48 set_security_override +EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x3d9fe0ff block_read_full_page +EXPORT_SYMBOL vmlinux 0x3daa69da vfs_lstat +EXPORT_SYMBOL vmlinux 0x3db338d0 pci_choose_state +EXPORT_SYMBOL vmlinux 0x3df82a67 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e0c7c26 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e8407f5 dquot_operations +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3eb2eb26 drop_super +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ee72fac phy_connect_direct +EXPORT_SYMBOL vmlinux 0x3eedb99f neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f0c3cac bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x3f127339 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x3f1f87d8 try_to_release_page +EXPORT_SYMBOL vmlinux 0x3f35ead9 scsi_device_put +EXPORT_SYMBOL vmlinux 0x3f406a3b enable_kernel_altivec +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f489616 alloc_file +EXPORT_SYMBOL vmlinux 0x3f509834 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x3f804fd7 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x3f99c803 ip_dev_find +EXPORT_SYMBOL vmlinux 0x3fb0372c dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x3fcc6e2e xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x3fd2f07c pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ff6f017 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x4005808d sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x400a1cbf dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x403e4e2d writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x4066f963 simple_setsize +EXPORT_SYMBOL vmlinux 0x407f4ea5 bd_set_size +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a9ba48 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x40c779dc of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0x40f0d864 da903x_query_status +EXPORT_SYMBOL vmlinux 0x40f1ad10 tb_ticks_per_jiffy +EXPORT_SYMBOL vmlinux 0x40f412d2 udp_poll +EXPORT_SYMBOL vmlinux 0x4101a975 ide_fixstring +EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x410f6e37 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x411b7411 register_nls +EXPORT_SYMBOL vmlinux 0x4133ddbc dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp +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 0x4189376e deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x41a891bf d_rehash +EXPORT_SYMBOL vmlinux 0x41abe789 put_page +EXPORT_SYMBOL vmlinux 0x41caa870 nf_log_packet +EXPORT_SYMBOL vmlinux 0x41cbff1a security_inode_readlink +EXPORT_SYMBOL vmlinux 0x41d9bd1c tcp_v4_md5_hash_skb +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 0x4241b3a1 blk_unplug +EXPORT_SYMBOL vmlinux 0x425776cb misc_deregister +EXPORT_SYMBOL vmlinux 0x425f0d73 vfs_write +EXPORT_SYMBOL vmlinux 0x426d891c kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0x428a5938 tr_type_trans +EXPORT_SYMBOL vmlinux 0x428aa294 pipe_to_file +EXPORT_SYMBOL vmlinux 0x428d77e6 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x429eeaab tty_hangup +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 0x42cf9ddb jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x42f173c9 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43181f34 new_inode +EXPORT_SYMBOL vmlinux 0x4331ebc9 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x43324ca2 dquot_quota_on_path +EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short +EXPORT_SYMBOL vmlinux 0x4335146d i2c_bit_add_bus +EXPORT_SYMBOL vmlinux 0x43432b74 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x4347b971 idr_init +EXPORT_SYMBOL vmlinux 0x434e6cf3 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x438c199e km_state_notify +EXPORT_SYMBOL vmlinux 0x439e5eb8 framebuffer_release +EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get +EXPORT_SYMBOL vmlinux 0x43b9d5f9 copy_io_context +EXPORT_SYMBOL vmlinux 0x43d2cb70 inode_get_bytes +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 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x44482372 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x444fde23 phy_attach +EXPORT_SYMBOL vmlinux 0x4470c53b deactivate_super +EXPORT_SYMBOL vmlinux 0x447b97ae filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x448212fa down_trylock +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44d41913 genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x44e58cca elevator_init +EXPORT_SYMBOL vmlinux 0x44e969ad inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44f7dbf9 ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x450f0b06 tty_free_termios +EXPORT_SYMBOL vmlinux 0x452981bd tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x45947727 param_array_set +EXPORT_SYMBOL vmlinux 0x4596db6a sys_sigreturn +EXPORT_SYMBOL vmlinux 0x45b458a8 register_filesystem +EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x45e203df blk_stack_limits +EXPORT_SYMBOL vmlinux 0x45e70e75 netdev_bonding_change +EXPORT_SYMBOL vmlinux 0x45f85f9b pci_disable_link_state +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 0x463295c4 lock_may_write +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x468996d0 pci_get_slot +EXPORT_SYMBOL vmlinux 0x468c49ad neigh_table_init +EXPORT_SYMBOL vmlinux 0x469c83f3 kernel_bind +EXPORT_SYMBOL vmlinux 0x46a94fc3 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x46c4b962 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x46eb73d1 proc_mkdir +EXPORT_SYMBOL vmlinux 0x47190669 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x4722a6c6 tcp_check_req +EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475ba4f3 of_find_device_by_node +EXPORT_SYMBOL vmlinux 0x4768210f matroxfb_unregister_driver +EXPORT_SYMBOL vmlinux 0x4791de0e skb_insert +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x4795dfc3 alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47caebe0 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x47eb6c3b tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x47ed611a tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x48051490 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x480525bd unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x48230db8 arp_send +EXPORT_SYMBOL vmlinux 0x483ec199 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x4881efab pmac_get_partition +EXPORT_SYMBOL vmlinux 0x48b13d1b freeze_super +EXPORT_SYMBOL vmlinux 0x48ba5cd4 blk_start_queue +EXPORT_SYMBOL vmlinux 0x48c1d080 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x48cc5f75 sock_i_ino +EXPORT_SYMBOL vmlinux 0x48e2f17e pskb_expand_head +EXPORT_SYMBOL vmlinux 0x48f3c830 remove_from_page_cache +EXPORT_SYMBOL vmlinux 0x490062f7 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x490cee8b rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0x4918e11c kill_fasync +EXPORT_SYMBOL vmlinux 0x4935b4da pci_dev_driver +EXPORT_SYMBOL vmlinux 0x4939af11 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x4973e633 kill_litter_super +EXPORT_SYMBOL vmlinux 0x49772334 blk_end_request +EXPORT_SYMBOL vmlinux 0x499880e5 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49c831cb swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x49dbe666 serio_open +EXPORT_SYMBOL vmlinux 0x49debc9d shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string +EXPORT_SYMBOL vmlinux 0x49e1e9e7 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x4a01835b __scm_send +EXPORT_SYMBOL vmlinux 0x4a152d8d slow_work_cancel +EXPORT_SYMBOL vmlinux 0x4a290d4d cur_cpu_spec +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a4da2a5 blk_register_region +EXPORT_SYMBOL vmlinux 0x4a7f69c2 block_write_end +EXPORT_SYMBOL vmlinux 0x4a88403f tcp_parse_options +EXPORT_SYMBOL vmlinux 0x4a895fd2 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x4a971ec7 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x4a9d19b3 of_get_address +EXPORT_SYMBOL vmlinux 0x4aa74b58 take_over_console +EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc +EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x4ab97d9a scsi_dma_map +EXPORT_SYMBOL vmlinux 0x4add5f2c dget_locked +EXPORT_SYMBOL vmlinux 0x4ae21366 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x4af4c490 send_sig_info +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b1133a0 of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x4b1a4637 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x4b1e361d inet_stream_connect +EXPORT_SYMBOL vmlinux 0x4b20cbd2 ida_remove +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b66003a ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x4b686514 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x4b9c62ba of_phy_find_device +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bc43be3 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x4bc69c16 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x4bce4120 send_sig +EXPORT_SYMBOL vmlinux 0x4c087d4a journal_ack_err +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c1b6ae6 complete_request_key +EXPORT_SYMBOL vmlinux 0x4c1bdca6 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c64d88f vm_event_states +EXPORT_SYMBOL vmlinux 0x4c7ae6a0 km_new_mapping +EXPORT_SYMBOL vmlinux 0x4c89d4c8 kdb_current_task +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cc7b89f register_snap_client +EXPORT_SYMBOL vmlinux 0x4ce8cd76 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x4cf4ca03 generic_permission +EXPORT_SYMBOL vmlinux 0x4d125958 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x4d267a8e migrate_page +EXPORT_SYMBOL vmlinux 0x4d2c9db9 pci_find_capability +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d41a1bf devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x4d485823 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x4d634d8c generic_write_sync +EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x4dc7f9fb tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x4dcbe552 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x4de26edc vm_insert_pfn +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 0x4e685a47 ide_raw_taskfile +EXPORT_SYMBOL vmlinux 0x4e6c8b35 get_unmapped_area_prot +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 0x4ec4abd8 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x4ef34330 freeze_bdev +EXPORT_SYMBOL vmlinux 0x4efba81b inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x4f185ba6 revert_creds +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f286bef mb_cache_create +EXPORT_SYMBOL vmlinux 0x4f302092 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x4f6da54f search_binary_handler +EXPORT_SYMBOL vmlinux 0x4f93ee12 vfs_mknod +EXPORT_SYMBOL vmlinux 0x4f947cde macio_dev_put +EXPORT_SYMBOL vmlinux 0x4f971b99 clear_user_page +EXPORT_SYMBOL vmlinux 0x4f9a80da default_file_splice_read +EXPORT_SYMBOL vmlinux 0x4f9eb5ac mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x4fcea9ee fsync_bdev +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fe99583 atomic64_dec_if_positive +EXPORT_SYMBOL vmlinux 0x4ff1c9bc populate_rootfs_wait +EXPORT_SYMBOL vmlinux 0x500c6849 dquot_alloc +EXPORT_SYMBOL vmlinux 0x500fc459 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x501d8cb8 of_match_device +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x50554da4 thaw_super +EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x507b63d7 i8042_install_filter +EXPORT_SYMBOL vmlinux 0x50861471 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x50c71330 idr_get_new +EXPORT_SYMBOL vmlinux 0x50f92b45 tty_throttle +EXPORT_SYMBOL vmlinux 0x5112a29f scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x51151bee tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x513060e1 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x51327e5a kill_pid +EXPORT_SYMBOL vmlinux 0x513fed63 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x515e24a7 flush_instruction_cache +EXPORT_SYMBOL vmlinux 0x518dbd19 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x51b48c41 unlock_super +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 0x51fd9a9c sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x5251f3f0 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday +EXPORT_SYMBOL vmlinux 0x527830ff pmac_xpram_read +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x529870cb dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52df9c31 get_pci_dma_ops +EXPORT_SYMBOL vmlinux 0x52eb4ee2 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x53600f9c kill_pgrp +EXPORT_SYMBOL vmlinux 0x5380dfec sock_no_bind +EXPORT_SYMBOL vmlinux 0x53962506 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x53b3d049 sk_run_filter +EXPORT_SYMBOL vmlinux 0x53b86634 pcim_enable_device +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53c6f2d8 __napi_schedule +EXPORT_SYMBOL vmlinux 0x53cc0bbd journal_set_features +EXPORT_SYMBOL vmlinux 0x53d06bbd mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x53ea4cd8 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x53ebab1b _outsl_ns +EXPORT_SYMBOL vmlinux 0x53f3e332 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x5402718a dev_alloc_name +EXPORT_SYMBOL vmlinux 0x54170c56 scsi_print_result +EXPORT_SYMBOL vmlinux 0x541866b2 skb_pad +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x5436239f scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x546dee4c flush_signals +EXPORT_SYMBOL vmlinux 0x5477a4c7 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x548b9537 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x54c8b461 ide_proc_unregister_driver +EXPORT_SYMBOL vmlinux 0x54d4f421 pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x5504bd02 do_SAK +EXPORT_SYMBOL vmlinux 0x552e4034 vfs_getattr +EXPORT_SYMBOL vmlinux 0x554d6f7b pipe_unlock +EXPORT_SYMBOL vmlinux 0x55630617 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x557e8a22 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x558b16e7 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x55ba5d14 splice_direct_to_actor +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 0x5620901e tty_port_put +EXPORT_SYMBOL vmlinux 0x562ad513 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x562e3c33 mod_timer_pending +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x56380bab tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0x565098fb pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x566c0dfb skb_copy +EXPORT_SYMBOL vmlinux 0x5688db09 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x56a10763 csum_tcpudp_magic +EXPORT_SYMBOL vmlinux 0x56c2b95b rtas_progress +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56f8f83c dev_uc_add +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x57518000 request_key_async +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x57836b7b pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x5794ee13 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf +EXPORT_SYMBOL vmlinux 0x57b106f5 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x57c098f0 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x57d65a5e pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path +EXPORT_SYMBOL vmlinux 0x581fd669 simple_statfs +EXPORT_SYMBOL vmlinux 0x5820b35b tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x5826ee04 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x582a4747 cacheable_memcpy +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x5859755b scsi_free_command +EXPORT_SYMBOL vmlinux 0x586818d2 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x58a6b770 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x58bbe0b0 of_get_next_child +EXPORT_SYMBOL vmlinux 0x58f23c24 notify_change +EXPORT_SYMBOL vmlinux 0x591b49a2 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x594e50e7 handle_sysrq +EXPORT_SYMBOL vmlinux 0x594e9c2e bio_free +EXPORT_SYMBOL vmlinux 0x595d0946 empty_zero_page +EXPORT_SYMBOL vmlinux 0x5973532c pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x59816f45 get_sb_single +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 0x5a2ecdda netif_rx +EXPORT_SYMBOL vmlinux 0x5a3b115a kstat +EXPORT_SYMBOL vmlinux 0x5a41460a mac_find_mode +EXPORT_SYMBOL vmlinux 0x5a43b9a7 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x5a657636 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a87912a d_move +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 0x5b04ff80 get_disk +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 0x5b43f1f1 rtas_service_present +EXPORT_SYMBOL vmlinux 0x5b48b47a i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x5b5804a9 tty_check_change +EXPORT_SYMBOL vmlinux 0x5b5f192e inet_register_protosw +EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x5b6d353d pci_iomap +EXPORT_SYMBOL vmlinux 0x5b82ce85 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x5b94c134 i2c_transfer +EXPORT_SYMBOL vmlinux 0x5bab1488 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x5bad9ac5 security_file_permission +EXPORT_SYMBOL vmlinux 0x5bb326e3 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x5bce0669 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x5c13e3e3 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x5c23eae0 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x5c265cba sg_init_one +EXPORT_SYMBOL vmlinux 0x5c43128a pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x5c5b9dab genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x5c6dff21 dev_mc_add +EXPORT_SYMBOL vmlinux 0x5c744660 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x5c7d3504 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x5cbdea3a __devm_request_region +EXPORT_SYMBOL vmlinux 0x5cc39e3a tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x5ce3fc07 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x5cebfb16 ether_setup +EXPORT_SYMBOL vmlinux 0x5cf7bc11 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x5d788067 block_commit_write +EXPORT_SYMBOL vmlinux 0x5d8f5e1a ps2_begin_command +EXPORT_SYMBOL vmlinux 0x5d9055d1 security_path_mkdir +EXPORT_SYMBOL vmlinux 0x5d94ba03 free_netdev +EXPORT_SYMBOL vmlinux 0x5dbd0248 block_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0x5dca7458 iget_locked +EXPORT_SYMBOL vmlinux 0x5ddaaacf fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x5ddb1d36 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x5de50ccb arp_tbl +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 0x5e582384 ide_dump_status +EXPORT_SYMBOL vmlinux 0x5e8a86ab __skb_bond_should_drop +EXPORT_SYMBOL vmlinux 0x5e935e5c check_disk_size_change +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eb304f0 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x5ebb32e6 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x5ec8f0a1 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd +EXPORT_SYMBOL vmlinux 0x5ef04452 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x5efa6740 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x5f01f8ae sk_wait_data +EXPORT_SYMBOL vmlinux 0x5f0446d7 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x5f1c8572 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x5f1fbced mark_info_dirty +EXPORT_SYMBOL vmlinux 0x5f2d6524 neigh_for_each +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5f8a2728 isa_io_base +EXPORT_SYMBOL vmlinux 0x5fa17c73 sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0x5fdd6a20 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0x5ff20368 set_user_nice +EXPORT_SYMBOL vmlinux 0x5fff9c80 netlink_dump_start +EXPORT_SYMBOL vmlinux 0x6004fae2 skb_append +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601ad26e blkdev_put +EXPORT_SYMBOL vmlinux 0x60388d15 seq_bitmap +EXPORT_SYMBOL vmlinux 0x608f472e dw_spi_remove_host +EXPORT_SYMBOL vmlinux 0x609c5186 register_gifconf +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a1ec20 dput +EXPORT_SYMBOL vmlinux 0x60a96145 inode_setattr +EXPORT_SYMBOL vmlinux 0x60cbf6cf should_remove_suid +EXPORT_SYMBOL vmlinux 0x60ce77fc destroy_EII_client +EXPORT_SYMBOL vmlinux 0x60f71cfa complete +EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n +EXPORT_SYMBOL vmlinux 0x610d5805 netlink_unicast +EXPORT_SYMBOL vmlinux 0x611e2748 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x61258e20 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x6162102f ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free +EXPORT_SYMBOL vmlinux 0x619532c5 iterate_mounts +EXPORT_SYMBOL vmlinux 0x61a792cf generic_file_llseek_unlocked +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61eef2c9 _insb +EXPORT_SYMBOL vmlinux 0x6215f3f4 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x6218a792 of_dev_get +EXPORT_SYMBOL vmlinux 0x623d7182 _chrp_type +EXPORT_SYMBOL vmlinux 0x62530c5d scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x626a4fcd neigh_update +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x6275c875 nf_unregister_hook +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 0x62d7703c tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x6345c383 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x63661c67 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x637f46f7 skb_gso_segment +EXPORT_SYMBOL vmlinux 0x63a880c0 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x63d0bc1b ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x63e06fd6 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63efc536 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0x63f11c87 serio_close +EXPORT_SYMBOL vmlinux 0x63f943cf ip_route_me_harder +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 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64bb1db0 simple_write_end +EXPORT_SYMBOL vmlinux 0x64c6c5d4 inode_init_owner +EXPORT_SYMBOL vmlinux 0x64eb70da qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x65046b09 bio_pair_release +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x653315a9 ip_fragment +EXPORT_SYMBOL vmlinux 0x6533bd26 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x65400222 __irq_offset_value +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x65a7556e xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x65ca72a6 netif_napi_add +EXPORT_SYMBOL vmlinux 0x65eb7ca9 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x65f074e7 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x66294f90 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x662dca64 blk_get_request +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x668e3f02 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x66c7d8dc set_anon_super +EXPORT_SYMBOL vmlinux 0x66cbf14b pmac_xpram_write +EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time +EXPORT_SYMBOL vmlinux 0x67595d96 journal_clear_err +EXPORT_SYMBOL vmlinux 0x678c1422 scsi_remove_target +EXPORT_SYMBOL vmlinux 0x679f3e26 bdi_init +EXPORT_SYMBOL vmlinux 0x67a47417 bio_endio +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67be1d3d cpu_active_mask +EXPORT_SYMBOL vmlinux 0x67da20ef of_get_property +EXPORT_SYMBOL vmlinux 0x67ecdd93 nf_log_register +EXPORT_SYMBOL vmlinux 0x67eeb87e phy_sanitize_settings +EXPORT_SYMBOL vmlinux 0x67f3508d get_io_context +EXPORT_SYMBOL vmlinux 0x68087e2f xfrm_state_update +EXPORT_SYMBOL vmlinux 0x680c953a phy_start +EXPORT_SYMBOL vmlinux 0x683a03c4 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x68e45109 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x68eba485 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x68f0de66 put_tty_driver +EXPORT_SYMBOL vmlinux 0x6916d20d tty_devnum +EXPORT_SYMBOL vmlinux 0x692fd923 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x693fc71e skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x694089ec tcf_exts_dump +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 0x69998cbc tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x699fbb62 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a270cb register_framebuffer +EXPORT_SYMBOL vmlinux 0x69bc0fa1 skb_copy_expand +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 0x69df7ae9 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69eb5380 __lock_page +EXPORT_SYMBOL vmlinux 0x69f6d585 skb_checksum +EXPORT_SYMBOL vmlinux 0x69f7eefe swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x69ffe2d8 vm_insert_page +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a15498d end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x6a2824d9 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x6a3c8e05 napi_frags_finish +EXPORT_SYMBOL vmlinux 0x6a3d24fd register_console +EXPORT_SYMBOL vmlinux 0x6a61f874 to_tm +EXPORT_SYMBOL vmlinux 0x6a6352a9 dev_close +EXPORT_SYMBOL vmlinux 0x6a6581e6 make_bad_inode +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6ac377a4 vga_put +EXPORT_SYMBOL vmlinux 0x6ac8d99a generic_block_bmap +EXPORT_SYMBOL vmlinux 0x6ac90237 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp +EXPORT_SYMBOL vmlinux 0x6ad5549a pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x6ade887e block_prepare_write +EXPORT_SYMBOL vmlinux 0x6af8eaed dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x6b114070 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b5a7057 ida_destroy +EXPORT_SYMBOL vmlinux 0x6b5d2f8d inet_recvmsg +EXPORT_SYMBOL vmlinux 0x6b674452 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x6b728692 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x6b91ff30 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x6b9a5f9d vmap +EXPORT_SYMBOL vmlinux 0x6b9a745e kobject_del +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 0x6becded8 __ide_dma_bad_drive +EXPORT_SYMBOL vmlinux 0x6bf11097 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x6c04f14c eth_header_parse +EXPORT_SYMBOL vmlinux 0x6c06518d __serio_register_port +EXPORT_SYMBOL vmlinux 0x6c0d2b31 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c246caa textsearch_prepare +EXPORT_SYMBOL vmlinux 0x6c329bc9 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x6c32dcf6 dm_table_event +EXPORT_SYMBOL vmlinux 0x6c4a65c5 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x6c50a775 dquot_file_open +EXPORT_SYMBOL vmlinux 0x6c5abc5b mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c623a7e scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x6c65f91f tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x6c6f54c8 __netif_schedule +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c9928ce find_vma +EXPORT_SYMBOL vmlinux 0x6ca1d1a4 atomic64_read +EXPORT_SYMBOL vmlinux 0x6cad5cbe pci_set_master +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6d1cb39a nonseekable_open +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 0x6d464175 __sg_free_table +EXPORT_SYMBOL vmlinux 0x6d6cbadc rb_last +EXPORT_SYMBOL vmlinux 0x6d85d4f1 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x6da72150 bio_alloc +EXPORT_SYMBOL vmlinux 0x6da928f4 _insw_ns +EXPORT_SYMBOL vmlinux 0x6dafe5a2 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x6dbc6a81 cap_file_mmap +EXPORT_SYMBOL vmlinux 0x6dc10305 open_exec +EXPORT_SYMBOL vmlinux 0x6dd6d66d sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e42271c xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x6e5bfea6 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ed35fe9 ll_rw_block +EXPORT_SYMBOL vmlinux 0x6ed6659f unlock_page +EXPORT_SYMBOL vmlinux 0x6ed97cbd pci_claim_resource +EXPORT_SYMBOL vmlinux 0x6f11b2d7 of_device_uevent +EXPORT_SYMBOL vmlinux 0x6f3ceff8 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x6f41acda udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x6f43446f grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x6f4d9035 security_path_symlink +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 0x6fa31916 of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0x6fc2a4fa gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x6fc47cf4 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fce1c69 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x6fda82c8 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x6ffae505 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free +EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm +EXPORT_SYMBOL vmlinux 0x7011c3ed kernel_read +EXPORT_SYMBOL vmlinux 0x701a58ec sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf +EXPORT_SYMBOL vmlinux 0x701e462b nla_put +EXPORT_SYMBOL vmlinux 0x7039e22e sk_stop_timer +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x70700637 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x708085c0 dcache_readdir +EXPORT_SYMBOL vmlinux 0x709cc168 seq_puts +EXPORT_SYMBOL vmlinux 0x70b10e29 __invalidate_device +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70c0d9e0 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x70c0e31f follow_pfn +EXPORT_SYMBOL vmlinux 0x70d888b7 __debugger_fault_handler +EXPORT_SYMBOL vmlinux 0x70dee88f dev_addr_init +EXPORT_SYMBOL vmlinux 0x70e31942 udp_prot +EXPORT_SYMBOL vmlinux 0x70f86c70 pmu_queue_request +EXPORT_SYMBOL vmlinux 0x7112478e thaw_bdev +EXPORT_SYMBOL vmlinux 0x711862f1 tcp_child_process +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x714cf9e5 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71ae20e7 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x71c0863a vfs_llseek +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x71cb0ed8 of_find_device_by_phandle +EXPORT_SYMBOL vmlinux 0x71d27823 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x71e8a5d1 cdev_index +EXPORT_SYMBOL vmlinux 0x71f6cb4c gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x7214e942 pci_pme_active +EXPORT_SYMBOL vmlinux 0x721f3f1c matroxfb_enable_irq +EXPORT_SYMBOL vmlinux 0x72276b5e elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x725e64c1 del_gendisk +EXPORT_SYMBOL vmlinux 0x726bd3e2 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x7274898a register_cdrom +EXPORT_SYMBOL vmlinux 0x729d0bb8 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72b8f397 create_mnt_ns +EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte +EXPORT_SYMBOL vmlinux 0x72e6cb2f arp_broken_ops +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x7307662e remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x7347ed3c stop_tty +EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat +EXPORT_SYMBOL vmlinux 0x73666bf1 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x73737c32 task_nice +EXPORT_SYMBOL vmlinux 0x7378aa31 journal_create +EXPORT_SYMBOL vmlinux 0x73b09fb1 cdev_del +EXPORT_SYMBOL vmlinux 0x73b1168a lro_receive_frags +EXPORT_SYMBOL vmlinux 0x73c2e273 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x73dfde78 scsi_init_io +EXPORT_SYMBOL vmlinux 0x73e0260c module_put +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73f0c88f __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x73f43ead inode_permission +EXPORT_SYMBOL vmlinux 0x74403d2e xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte +EXPORT_SYMBOL vmlinux 0x74558f0f unregister_cdrom +EXPORT_SYMBOL vmlinux 0x7465f11c skb_seq_read +EXPORT_SYMBOL vmlinux 0x746772ac pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74a0799f sk_filter +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74fe8730 sys_ctrler +EXPORT_SYMBOL vmlinux 0x7506231e scsi_scan_target +EXPORT_SYMBOL vmlinux 0x752f4c4a swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x75572584 start_tty +EXPORT_SYMBOL vmlinux 0x75635974 release_firmware +EXPORT_SYMBOL vmlinux 0x756dd160 start_thread +EXPORT_SYMBOL vmlinux 0x756f10f5 audit_log_end +EXPORT_SYMBOL vmlinux 0x75914ddf tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x75918f34 make_EII_client +EXPORT_SYMBOL vmlinux 0x75a17bed prepare_to_wait +EXPORT_SYMBOL vmlinux 0x75a71feb tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x75ab4cd3 macio_dev_get +EXPORT_SYMBOL vmlinux 0x75acec1d blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x75b54ba1 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75c6e90c hippi_type_trans +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 0x76776999 textsearch_register +EXPORT_SYMBOL vmlinux 0x76888f83 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x76a63ff1 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x76b3db4f __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x76bc92f7 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d980cd tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x76da5ed6 get_sb_ns +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 0x7726bc52 netlink_ack +EXPORT_SYMBOL vmlinux 0x7732ee06 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x777f3f43 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x77a4a5c9 inet_put_port +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 0x77fa5d1f ns_to_timespec +EXPORT_SYMBOL vmlinux 0x780d7588 vfs_read +EXPORT_SYMBOL vmlinux 0x7838570c bdi_register_dev +EXPORT_SYMBOL vmlinux 0x783b67f3 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x78409778 journal_forget +EXPORT_SYMBOL vmlinux 0x786c9094 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x7870db76 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource +EXPORT_SYMBOL vmlinux 0x7890c5b0 input_inject_event +EXPORT_SYMBOL vmlinux 0x78942c1f jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x789656e4 journal_check_used_features +EXPORT_SYMBOL vmlinux 0x78bfebaa register_sysctl_table +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 0x79357aa6 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x7976f585 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0x798e2603 dm_table_get_size +EXPORT_SYMBOL vmlinux 0x79a5734b i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79b584cf blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x79eceb5e cdev_init +EXPORT_SYMBOL vmlinux 0x79edb5f4 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x7a077c63 skb_trim +EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a54f0fc register_exec_domain +EXPORT_SYMBOL vmlinux 0x7a6fc46d copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x7a7b23ee d_alloc_root +EXPORT_SYMBOL vmlinux 0x7a91e127 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x7a96a6c8 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x7a9da2fb vfs_create +EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip +EXPORT_SYMBOL vmlinux 0x7ad3c6ea mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x7b03883b lock_rename +EXPORT_SYMBOL vmlinux 0x7b285bbb blk_execute_rq +EXPORT_SYMBOL vmlinux 0x7b3e767d tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x7b465f1c seq_release +EXPORT_SYMBOL vmlinux 0x7b505cf3 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x7b55d148 block_truncate_page +EXPORT_SYMBOL vmlinux 0x7b5f42b9 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x7b639e7e tty_port_close +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7b8349da directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x7b931a49 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x7bc464a9 dev_add_pack +EXPORT_SYMBOL vmlinux 0x7bcfd027 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name +EXPORT_SYMBOL vmlinux 0x7bdd84ac flush_tlb_mm +EXPORT_SYMBOL vmlinux 0x7be4827c pci_dram_offset +EXPORT_SYMBOL vmlinux 0x7c01c294 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x7c1448f5 current_fs_time +EXPORT_SYMBOL vmlinux 0x7c167fa6 have_submounts +EXPORT_SYMBOL vmlinux 0x7c3f77f2 hippi_neigh_setup_dev +EXPORT_SYMBOL vmlinux 0x7c44db88 tty_register_driver +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +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 0x7c84fcfa tcp_mtup_init +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 0x7cbd93ee fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x7cbeadc7 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x7cd232bd replace_mount_options +EXPORT_SYMBOL vmlinux 0x7ce3f2a7 force_sig +EXPORT_SYMBOL vmlinux 0x7ceb5a9b pci_release_region +EXPORT_SYMBOL vmlinux 0x7d06383f of_find_compatible_node +EXPORT_SYMBOL vmlinux 0x7d0fea0d blk_make_request +EXPORT_SYMBOL vmlinux 0x7d10588f bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d27888a scsi_unregister +EXPORT_SYMBOL vmlinux 0x7d4fe481 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x7d6bf7cf bio_split +EXPORT_SYMBOL vmlinux 0x7d86675a request_key +EXPORT_SYMBOL vmlinux 0x7dc97879 rtas_get_error_log_max +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7e056204 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x7e297242 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x7e2cdde7 save_mount_options +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e561325 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x7eba291f pci_bus_type +EXPORT_SYMBOL vmlinux 0x7ec33b2a ide_geometry_proc_fops +EXPORT_SYMBOL vmlinux 0x7ec41c16 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f28fb21 do_sync_read +EXPORT_SYMBOL vmlinux 0x7f3d876e pci_read_vpd +EXPORT_SYMBOL vmlinux 0x7f43682a key_unlink +EXPORT_SYMBOL vmlinux 0x7f478c84 security_inode_setsecctx +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 0x7fa29156 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x7fc4c51a xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x7fcd3215 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x7fe2a42e ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x7ff08989 slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free +EXPORT_SYMBOL vmlinux 0x801f5a3f __strncpy_from_user +EXPORT_SYMBOL vmlinux 0x804b30d0 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x8062b926 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x807822df max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x8096b507 sock_rfree +EXPORT_SYMBOL vmlinux 0x809cf0ea tcp_close +EXPORT_SYMBOL vmlinux 0x80a65a4c register_netdevice +EXPORT_SYMBOL vmlinux 0x80b2bc4e jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x80b3dd00 irq_stat +EXPORT_SYMBOL vmlinux 0x80d817ab wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x80de231a idr_remove +EXPORT_SYMBOL vmlinux 0x80f2df0d of_platform_device_create +EXPORT_SYMBOL vmlinux 0x8133bbc7 tcf_exts_dump_stats +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 0x81751497 jbd2_journal_update_format +EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf +EXPORT_SYMBOL vmlinux 0x818130a2 register_con_driver +EXPORT_SYMBOL vmlinux 0x818aa203 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x819303fc nobh_write_begin +EXPORT_SYMBOL vmlinux 0x81a5c42d dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x81b04bfc completion_done +EXPORT_SYMBOL vmlinux 0x81b262ca blkdev_get +EXPORT_SYMBOL vmlinux 0x81b3fbea tcp_make_synack +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 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x8262f64b tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x827d422f delayed_slow_work_enqueue +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82b1c3f8 __napi_complete +EXPORT_SYMBOL vmlinux 0x82b61b4d single_release +EXPORT_SYMBOL vmlinux 0x82de8b26 alloc_disk_node +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x82f96038 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x830a0be5 filp_open +EXPORT_SYMBOL vmlinux 0x83207e55 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x834a6fcd pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x83595e93 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x83783953 kill_anon_super +EXPORT_SYMBOL vmlinux 0x837f66f8 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x83835238 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8 +EXPORT_SYMBOL vmlinux 0x839d81b6 qdisc_list_del +EXPORT_SYMBOL vmlinux 0x83a12572 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83bff482 input_release_device +EXPORT_SYMBOL vmlinux 0x83d0ded2 ps2_init +EXPORT_SYMBOL vmlinux 0x83d25c38 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x8417baa7 giveup_fpu +EXPORT_SYMBOL vmlinux 0x8429d375 of_translate_address +EXPORT_SYMBOL vmlinux 0x84383b46 put_disk +EXPORT_SYMBOL vmlinux 0x844404cf ISA_DMA_THRESHOLD +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 0x84d51ef0 filemap_fault +EXPORT_SYMBOL vmlinux 0x84d78075 skb_abort_seq_read +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 0x8543a353 block_write_begin +EXPORT_SYMBOL vmlinux 0x8549055e secpath_dup +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x857bddb7 tcf_register_action +EXPORT_SYMBOL vmlinux 0x858f2853 mnt_pin +EXPORT_SYMBOL vmlinux 0x859765ac __init_rwsem +EXPORT_SYMBOL vmlinux 0x859d332e unregister_console +EXPORT_SYMBOL vmlinux 0x85b573e4 neigh_parms_release +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 0x85f9adb7 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x861f8cfd bio_integrity_free +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 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 0x87071b25 dentry_open +EXPORT_SYMBOL vmlinux 0x87113f7f setup_new_exec +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x8727c58e ilookup5 +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x879c5106 bioset_free +EXPORT_SYMBOL vmlinux 0x87b2f147 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x87dbba14 ida_get_new +EXPORT_SYMBOL vmlinux 0x8801d86f inet_stream_ops +EXPORT_SYMBOL vmlinux 0x88074362 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x8847e4c3 get_fs_type +EXPORT_SYMBOL vmlinux 0x88646259 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x8877d51a max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x888647e5 elv_rb_del +EXPORT_SYMBOL vmlinux 0x8892970a matrox_cfbX_init +EXPORT_SYMBOL vmlinux 0x8893fa5d finish_wait +EXPORT_SYMBOL vmlinux 0x88a0548f inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x88a51c50 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x88acfe7d request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x88b6221e mpage_readpages +EXPORT_SYMBOL vmlinux 0x890e5d51 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x89268290 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x895242f4 get_phy_id +EXPORT_SYMBOL vmlinux 0x895ab8bd ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x8960832d tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x896ae348 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x897b30e9 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x89913b94 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x89aa3104 init_special_inode +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 0x89fcfca3 submit_bio +EXPORT_SYMBOL vmlinux 0x8a4472c6 bd_claim +EXPORT_SYMBOL vmlinux 0x8a68eb46 flush_old_exec +EXPORT_SYMBOL vmlinux 0x8a6bc7e0 vc_cons +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8ab058d3 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x8ab4079e atomic64_add +EXPORT_SYMBOL vmlinux 0x8ac5240c invalidate_inodes +EXPORT_SYMBOL vmlinux 0x8ae2feb7 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x8aec5f6d sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x8b0cddbe locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b20f14c blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x8b23f5f2 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x8b5c9285 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x8b67e6d6 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x8b903057 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x8bb56df7 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x8bc632f3 ip_defrag +EXPORT_SYMBOL vmlinux 0x8bd0f51d ide_complete_rq +EXPORT_SYMBOL vmlinux 0x8bd182ef ilookup +EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long +EXPORT_SYMBOL vmlinux 0x8bf1df0a phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x8bf249c5 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x8bf9ba08 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cc8a2b5 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x8ccfff76 filp_close +EXPORT_SYMBOL vmlinux 0x8cd64700 scsi_host_get +EXPORT_SYMBOL vmlinux 0x8cf51d15 up +EXPORT_SYMBOL vmlinux 0x8d01cbd6 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x8d0ac5af ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x8d283b28 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x8d32b961 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d7a6553 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x8d7ac6c0 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x8db012a7 blk_init_tags +EXPORT_SYMBOL vmlinux 0x8de19b47 macio_release_resource +EXPORT_SYMBOL vmlinux 0x8deb6bbb tcf_hash_search +EXPORT_SYMBOL vmlinux 0x8df5da63 memstart_addr +EXPORT_SYMBOL vmlinux 0x8df72e53 ftrace_event_seq +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e3021f5 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk +EXPORT_SYMBOL vmlinux 0x8e44ed71 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq +EXPORT_SYMBOL vmlinux 0x8e96d2be phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x8e98a5b5 proc_dointvec +EXPORT_SYMBOL vmlinux 0x8e9d587e genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8ef18b46 dev_disable_lro +EXPORT_SYMBOL vmlinux 0x8ef8f371 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x8f0ff075 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x8f20d283 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x8f2dfa9c sk_receive_skb +EXPORT_SYMBOL vmlinux 0x8f41f380 give_up_console +EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f6ee7f2 udp_ioctl +EXPORT_SYMBOL vmlinux 0x8f849406 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x8fb59f0f rtnl_notify +EXPORT_SYMBOL vmlinux 0x8fb9459f unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x8fd247c4 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x8fdb2452 get_phy_device +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x900534e2 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x902c556a fb_class +EXPORT_SYMBOL vmlinux 0x903df3b0 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x903e09e6 journal_revoke +EXPORT_SYMBOL vmlinux 0x90501868 transfer_to_handler +EXPORT_SYMBOL vmlinux 0x9080ed51 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x908f0062 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x9091ddb9 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x9094c646 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x90b1511d journal_start +EXPORT_SYMBOL vmlinux 0x90b51d6c schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x90e146c2 trace_seq_putc +EXPORT_SYMBOL vmlinux 0x91074dd1 mpage_readpage +EXPORT_SYMBOL vmlinux 0x91233cf2 inode_init_always +EXPORT_SYMBOL vmlinux 0x91239a1f xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x912557ce rtas_busy_delay +EXPORT_SYMBOL vmlinux 0x9133b549 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x915b0ad7 blk_plug_device +EXPORT_SYMBOL vmlinux 0x915e1208 tb_ticks_per_usec +EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource +EXPORT_SYMBOL vmlinux 0x9168c033 rtas_get_sensor +EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong +EXPORT_SYMBOL vmlinux 0x918475f2 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x9193e222 scsi_release_buffers +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 0x91b2dd58 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x91b3eb3c xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x91d3a417 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x91d4e159 unregister_nls +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 0x920664c8 mempool_free +EXPORT_SYMBOL vmlinux 0x920a11fe powerpc_debugfs_root +EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool +EXPORT_SYMBOL vmlinux 0x924e8b65 bd_release +EXPORT_SYMBOL vmlinux 0x9279cf4b tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x9296ad5c bio_unmap_user +EXPORT_SYMBOL vmlinux 0x9299ad7f skb_recycle_check +EXPORT_SYMBOL vmlinux 0x92ad6fc1 kmem_cache_alloc_node_notrace +EXPORT_SYMBOL vmlinux 0x92d029c8 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x92d7861d inet_del_protocol +EXPORT_SYMBOL vmlinux 0x92fe56f9 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x92feef58 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9308e079 kick_iocb +EXPORT_SYMBOL vmlinux 0x9309de94 cuda_request +EXPORT_SYMBOL vmlinux 0x930b216f fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x9330cb9f sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9386ff0b generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x938fba04 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93b965b0 kern_path +EXPORT_SYMBOL vmlinux 0x93c98fe4 block_sync_page +EXPORT_SYMBOL vmlinux 0x93d7968e lease_modify +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x940065d3 proto_register +EXPORT_SYMBOL vmlinux 0x9401ead8 netpoll_setup +EXPORT_SYMBOL vmlinux 0x941c9a4d dm_table_put +EXPORT_SYMBOL vmlinux 0x9425f22e journal_check_available_features +EXPORT_SYMBOL vmlinux 0x94313207 input_register_device +EXPORT_SYMBOL vmlinux 0x9449e7be unregister_quota_format +EXPORT_SYMBOL vmlinux 0x946e2c58 tty_mutex +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x949c6973 dquot_enable +EXPORT_SYMBOL vmlinux 0x94af632e complete_all +EXPORT_SYMBOL vmlinux 0x94b4a763 netpoll_poll +EXPORT_SYMBOL vmlinux 0x94ceb181 pci_clear_master +EXPORT_SYMBOL vmlinux 0x94d1f38e jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x9514151a _mcount +EXPORT_SYMBOL vmlinux 0x9524b0ae _outsb +EXPORT_SYMBOL vmlinux 0x952858c1 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x95312523 scsi_scan_host +EXPORT_SYMBOL vmlinux 0x953cd24c blk_insert_request +EXPORT_SYMBOL vmlinux 0x954467ad __destroy_inode +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf +EXPORT_SYMBOL vmlinux 0x95b23ec2 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x95b2f766 qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x95d9fdf0 d_splice_alias +EXPORT_SYMBOL vmlinux 0x95da871a tty_port_close_end +EXPORT_SYMBOL vmlinux 0x9608e8b7 submit_bh +EXPORT_SYMBOL vmlinux 0x9656f8a0 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x969bb1e9 i2c_smbus_process_call +EXPORT_SYMBOL vmlinux 0x969cc62d flush_dcache_page +EXPORT_SYMBOL vmlinux 0x96a40637 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d4ae74 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x97097b33 set_binfmt +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 0x976c82bc jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x97855691 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x97882214 bio_copy_user +EXPORT_SYMBOL vmlinux 0x9798df5b pcim_iomap +EXPORT_SYMBOL vmlinux 0x97b4709b otg_set_transceiver +EXPORT_SYMBOL vmlinux 0x97c1fa45 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x97d35fe8 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x97f053df sk_reset_txq +EXPORT_SYMBOL vmlinux 0x97f7a3f4 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x980543f1 nf_register_hook +EXPORT_SYMBOL vmlinux 0x98122f8d jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x9884019b touch_atime +EXPORT_SYMBOL vmlinux 0x9884fd1e mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x98897320 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x988e4219 fget +EXPORT_SYMBOL vmlinux 0x9895f4ed serio_reconnect +EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init +EXPORT_SYMBOL vmlinux 0x989e75c0 journal_load +EXPORT_SYMBOL vmlinux 0x98c07ec9 simple_rmdir +EXPORT_SYMBOL vmlinux 0x98fe7882 DMA_MODE_READ +EXPORT_SYMBOL vmlinux 0x9905064b flush_delayed_work +EXPORT_SYMBOL vmlinux 0x994f81c1 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x9987cd9e scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99bb8806 memmove +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99d47213 napi_frags_skb +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x9a18cae6 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a331a6a con_is_bound +EXPORT_SYMBOL vmlinux 0x9a3f66b2 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x9a5aa1e4 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x9a626734 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0x9a76715e dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x9a76aba0 __netdev_alloc_page +EXPORT_SYMBOL vmlinux 0x9a84fd77 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x9aa11651 misc_register +EXPORT_SYMBOL vmlinux 0x9abacafc write_inode_now +EXPORT_SYMBOL vmlinux 0x9acf9b04 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x9adbe1bc sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x9b12e1aa may_umount_tree +EXPORT_SYMBOL vmlinux 0x9b227916 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b41ac8a wake_up_process +EXPORT_SYMBOL vmlinux 0x9b4f22e0 journal_update_format +EXPORT_SYMBOL vmlinux 0x9b5bf024 llc_sap_close +EXPORT_SYMBOL vmlinux 0x9b646802 scsi_execute +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b817ae4 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x9b897b06 pci_get_device +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bce482f __release_region +EXPORT_SYMBOL vmlinux 0x9be31170 down_write_trylock +EXPORT_SYMBOL vmlinux 0x9beb6fe9 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c1e6d72 simple_fill_super +EXPORT_SYMBOL vmlinux 0x9c466a5a wireless_spy_update +EXPORT_SYMBOL vmlinux 0x9c59059b sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x9c5b17a5 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x9c83bb37 sk_stream_error +EXPORT_SYMBOL vmlinux 0x9c93879e pci_domain_nr +EXPORT_SYMBOL vmlinux 0x9cb739c2 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cb9dd83 fput +EXPORT_SYMBOL vmlinux 0x9cd9cab3 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL vmlinux 0x9ce63ac9 vfs_readlink +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cfc93a7 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x9cfca72f set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d14983a ppc_enable_pmcs +EXPORT_SYMBOL vmlinux 0x9d357184 bio_map_user +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d43beb3 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x9d457495 eth_header +EXPORT_SYMBOL vmlinux 0x9d51fbd4 lock_may_read +EXPORT_SYMBOL vmlinux 0x9d5227d4 log_wait_commit +EXPORT_SYMBOL vmlinux 0x9d52f80a eth_validate_addr +EXPORT_SYMBOL vmlinux 0x9d62ea29 phy_connect +EXPORT_SYMBOL vmlinux 0x9d669763 memcpy +EXPORT_SYMBOL vmlinux 0x9d9322c7 tty_write_room +EXPORT_SYMBOL vmlinux 0x9da4a83d starget_for_each_device +EXPORT_SYMBOL vmlinux 0x9ddf81f8 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x9de8682b lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL vmlinux 0x9e02a5be simple_transaction_release +EXPORT_SYMBOL vmlinux 0x9e062dc7 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e37c2ff blk_run_queue +EXPORT_SYMBOL vmlinux 0x9e47a0d8 sk_common_release +EXPORT_SYMBOL vmlinux 0x9e4ff402 vmtruncate +EXPORT_SYMBOL vmlinux 0x9e548e76 kfree_skb +EXPORT_SYMBOL vmlinux 0x9e672ff6 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x9e97375d rtas_busy_delay_time +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 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9efafe42 blk_rq_init +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 0x9f311b90 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x9f320c1c inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f7efffa lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x9f86332c input_allocate_device +EXPORT_SYMBOL vmlinux 0x9f90b201 inet_release +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 0x9fed3676 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x9ff28277 genl_register_ops +EXPORT_SYMBOL vmlinux 0x9ffa7d79 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xa01985eb default_llseek +EXPORT_SYMBOL vmlinux 0xa02209ee generic_file_llseek +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa04cd324 qdisc_reset +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa05f2d7b do_splice_to +EXPORT_SYMBOL vmlinux 0xa0875269 pci_set_power_state +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b2c6fc vfs_fsync_range +EXPORT_SYMBOL vmlinux 0xa0b5f47d rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +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 0xa10e1e1d bio_phys_segments +EXPORT_SYMBOL vmlinux 0xa1121227 scsi_get_command +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa1416381 unload_nls +EXPORT_SYMBOL vmlinux 0xa1618bae blk_init_allocated_queue_node +EXPORT_SYMBOL vmlinux 0xa1754b56 skb_queue_head +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 0xa1c007d6 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa2042528 dev_mc_sync +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa22507ad __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xa2758cce fb_set_suspend +EXPORT_SYMBOL vmlinux 0xa27d1fef ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0xa28f9fef km_report +EXPORT_SYMBOL vmlinux 0xa2a3c819 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2b8dfd5 pci_target_state +EXPORT_SYMBOL vmlinux 0xa2bbed37 crash_shutdown_register +EXPORT_SYMBOL vmlinux 0xa2c6aa0b scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xa2cc6184 vm_map_ram +EXPORT_SYMBOL vmlinux 0xa2ddc92e pmac_resume_agp_for_card +EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xa3376f62 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xa343ef1b splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa3671fd6 pci_restore_state +EXPORT_SYMBOL vmlinux 0xa38e691a ioremap_bot +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa3a06a20 __break_lease +EXPORT_SYMBOL vmlinux 0xa3d767c3 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xa3e75545 flush_tlb_kernel_range +EXPORT_SYMBOL vmlinux 0xa3f84523 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xa42295cf devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xa4296141 blk_peek_request +EXPORT_SYMBOL vmlinux 0xa435c198 update_region +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa443f7ff register_qdisc +EXPORT_SYMBOL vmlinux 0xa447fcb7 clear_inode +EXPORT_SYMBOL vmlinux 0xa44f21c7 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0xa4647bee seq_open_private +EXPORT_SYMBOL vmlinux 0xa486c33a sock_no_getname +EXPORT_SYMBOL vmlinux 0xa4a8d28c generic_ro_fops +EXPORT_SYMBOL vmlinux 0xa4add06b devm_ioport_map +EXPORT_SYMBOL vmlinux 0xa4afe66e vga_client_register +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4e89866 file_permission +EXPORT_SYMBOL vmlinux 0xa4f6cd88 input_mt_create_slots +EXPORT_SYMBOL vmlinux 0xa53e99a6 __bread +EXPORT_SYMBOL vmlinux 0xa5620132 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa576c263 generic_find_next_le_bit +EXPORT_SYMBOL vmlinux 0xa57d0df9 names_cachep +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +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 0xa5e148dc inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0xa5f49138 up_read +EXPORT_SYMBOL vmlinux 0xa6136b82 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xa617ad58 elevator_exit +EXPORT_SYMBOL vmlinux 0xa65972b8 _memcpy_toio +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa69125c0 security_path_rmdir +EXPORT_SYMBOL vmlinux 0xa694dc33 dev_uc_sync +EXPORT_SYMBOL vmlinux 0xa699f6d8 pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0xa6a9e1fc generic_ide_ioctl +EXPORT_SYMBOL vmlinux 0xa6d20459 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6e22345 llc_set_station_handler +EXPORT_SYMBOL vmlinux 0xa6ff8d9a xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xa71e7f4e inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xa727ef4c security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xa769fd91 tcp_poll +EXPORT_SYMBOL vmlinux 0xa77262ff mpage_writepages +EXPORT_SYMBOL vmlinux 0xa79dfed1 bioset_create +EXPORT_SYMBOL vmlinux 0xa7bc9cb0 simple_unlink +EXPORT_SYMBOL vmlinux 0xa7e16975 dma_pool_create +EXPORT_SYMBOL vmlinux 0xa8008397 lookup_hash +EXPORT_SYMBOL vmlinux 0xa82bc774 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xa843580c mdio_bus_type +EXPORT_SYMBOL vmlinux 0xa849b87e try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xa857a245 kmap_high +EXPORT_SYMBOL vmlinux 0xa85ab993 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xa85b094f pcim_iounmap +EXPORT_SYMBOL vmlinux 0xa861ab6e __ioremap +EXPORT_SYMBOL vmlinux 0xa89464b7 __ashldi3 +EXPORT_SYMBOL vmlinux 0xa8bcb8c9 input_unregister_handle +EXPORT_SYMBOL vmlinux 0xa8cb813d mapping_tagged +EXPORT_SYMBOL vmlinux 0xa8cde9a7 remove_wait_queue +EXPORT_SYMBOL vmlinux 0xa8d79e40 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa901c146 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0xa91aedab skb_store_bits +EXPORT_SYMBOL vmlinux 0xa9208d05 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xa9331f3a tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xa9571d6d DMA_MODE_WRITE +EXPORT_SYMBOL vmlinux 0xa965281e scsi_add_device +EXPORT_SYMBOL vmlinux 0xa968bd68 dentry_unhash +EXPORT_SYMBOL vmlinux 0xa9731348 seq_path +EXPORT_SYMBOL vmlinux 0xa98ddac1 phy_detach +EXPORT_SYMBOL vmlinux 0xa9a2af68 inet_ioctl +EXPORT_SYMBOL vmlinux 0xa9c372e0 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0xa9de8112 lock_sock_nested +EXPORT_SYMBOL vmlinux 0xa9f3f36f km_state_expired +EXPORT_SYMBOL vmlinux 0xa9fa4145 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xaa0bb8bf journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xaa0e4a12 bdput +EXPORT_SYMBOL vmlinux 0xaa2642bb phy_disable_interrupts +EXPORT_SYMBOL vmlinux 0xaa4df512 pmu_batteries +EXPORT_SYMBOL vmlinux 0xaa617aa6 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0xaa818ca3 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaa8a4cbf lookup_bdev +EXPORT_SYMBOL vmlinux 0xaa8c4c60 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xaaa0c753 ide_stall_queue +EXPORT_SYMBOL vmlinux 0xaaa65c50 sock_release +EXPORT_SYMBOL vmlinux 0xaaabd571 __blk_end_request +EXPORT_SYMBOL vmlinux 0xaab0c700 macio_request_resource +EXPORT_SYMBOL vmlinux 0xaac527f6 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0xaacdd964 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xaadd5f87 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0xaaf1543f jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xaafe1e7b sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xab05bc0a netif_notify_peers +EXPORT_SYMBOL vmlinux 0xab1a1654 inet_sendmsg +EXPORT_SYMBOL vmlinux 0xab7a4622 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xab7d16da page_symlink +EXPORT_SYMBOL vmlinux 0xab89ac8a phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xab8ae1b8 genphy_suspend +EXPORT_SYMBOL vmlinux 0xab94d30e skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xab9cea95 generic_setattr +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 0xabdedcc9 km_policy_expired +EXPORT_SYMBOL vmlinux 0xabeb5d40 matrox_mystique +EXPORT_SYMBOL vmlinux 0xabfcfac5 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xac047d87 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac14b333 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0xac3a8774 fail_migrate_page +EXPORT_SYMBOL vmlinux 0xac5f113d cpu_all_bits +EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xac91b98d scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0xac9f9d04 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xaca397f5 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xaca86e0b key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xacb8e217 is_bad_inode +EXPORT_SYMBOL vmlinux 0xacbf207f sg_miter_next +EXPORT_SYMBOL vmlinux 0xacc3f475 scsi_print_sense +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacd3b332 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0xacdac2af ip_route_output_key +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad01ace6 inode_needs_sync +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad1911ee netpoll_send_udp +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 0xad3caea2 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xad456426 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning +EXPORT_SYMBOL vmlinux 0xad878b08 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xada0f0c4 writeback_inodes_sb_if_idle +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 0xadd1e971 alignment_exception +EXPORT_SYMBOL vmlinux 0xaddd4770 __debugger_iabr_match +EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region +EXPORT_SYMBOL vmlinux 0xadf954e3 set_device_ro +EXPORT_SYMBOL vmlinux 0xadfca049 icmp_send +EXPORT_SYMBOL vmlinux 0xae0ed7dd journal_errno +EXPORT_SYMBOL vmlinux 0xae3c239b vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xae684f98 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xaeac5c53 pci_match_id +EXPORT_SYMBOL vmlinux 0xaeb5961a cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaecb4cc3 dst_discard +EXPORT_SYMBOL vmlinux 0xaedb286f generic_show_options +EXPORT_SYMBOL vmlinux 0xaee52a79 skb_set_dev +EXPORT_SYMBOL vmlinux 0xaf107bbb unbind_con_driver +EXPORT_SYMBOL vmlinux 0xaf1ef7f3 phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf5a66a1 ide_set_handler +EXPORT_SYMBOL vmlinux 0xaf5af056 tty_port_close_start +EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xaf70f3a8 register_sysrq_key +EXPORT_SYMBOL vmlinux 0xaf7287d7 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0xaf9b9832 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0xafa22f2a write_one_page +EXPORT_SYMBOL vmlinux 0xafd2b404 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xaffeff66 generic_writepages +EXPORT_SYMBOL vmlinux 0xb028ee27 inetdev_by_index +EXPORT_SYMBOL vmlinux 0xb02b4e3f ip_route_input_common +EXPORT_SYMBOL vmlinux 0xb0498f5a put_io_context +EXPORT_SYMBOL vmlinux 0xb099576f fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0xb09a021f rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0xb09d2186 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0f99b8f __dquot_transfer +EXPORT_SYMBOL vmlinux 0xb0fff01b ps2_command +EXPORT_SYMBOL vmlinux 0xb11fc1de of_gpio_count +EXPORT_SYMBOL vmlinux 0xb13f9c87 dm_get_device +EXPORT_SYMBOL vmlinux 0xb15bd8fa tb_ticks_per_sec +EXPORT_SYMBOL vmlinux 0xb167f718 scsi_setup_blk_pc_cmnd +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 0xb1ff31bb scsi_finish_command +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 0xb24196cc unregister_netdev +EXPORT_SYMBOL vmlinux 0xb25e3c3a xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb28e2488 sk_free +EXPORT_SYMBOL vmlinux 0xb2900a37 journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xb294e63f input_open_device +EXPORT_SYMBOL vmlinux 0xb2b420c2 blk_requeue_request +EXPORT_SYMBOL vmlinux 0xb2f12048 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xb304507b generic_setxattr +EXPORT_SYMBOL vmlinux 0xb313f49e netif_carrier_on +EXPORT_SYMBOL vmlinux 0xb31526ee sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0xb3538395 of_find_all_nodes +EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xb3873fd2 sock_no_connect +EXPORT_SYMBOL vmlinux 0xb390da6b pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xb390e30e aio_complete +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3bc3f6d tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xb3bcdc4f sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xb3c34d87 macio_enable_devres +EXPORT_SYMBOL vmlinux 0xb3c82ba9 seq_putc +EXPORT_SYMBOL vmlinux 0xb3ceccb6 of_device_get_modalias +EXPORT_SYMBOL vmlinux 0xb3d520ea kthread_create +EXPORT_SYMBOL vmlinux 0xb3efc72d down +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool +EXPORT_SYMBOL vmlinux 0xb42774e9 generic_unplug_device +EXPORT_SYMBOL vmlinux 0xb445bd5f netdev_features_change +EXPORT_SYMBOL vmlinux 0xb4687b29 unregister_filesystem +EXPORT_SYMBOL vmlinux 0xb4700218 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4718831 max8925_reg_write +EXPORT_SYMBOL vmlinux 0xb47d8f9e of_gpio_simple_xlate +EXPORT_SYMBOL vmlinux 0xb48e8e92 inet_select_addr +EXPORT_SYMBOL vmlinux 0xb49223b2 __ps2_command +EXPORT_SYMBOL vmlinux 0xb4941525 cdev_add +EXPORT_SYMBOL vmlinux 0xb497501d ethtool_ntuple_flush +EXPORT_SYMBOL vmlinux 0xb498d235 noop_llseek +EXPORT_SYMBOL vmlinux 0xb4c3e250 skb_put +EXPORT_SYMBOL vmlinux 0xb4eb8422 pci_enable_msix +EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf +EXPORT_SYMBOL vmlinux 0xb5163162 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xb53a4336 kmap_pte +EXPORT_SYMBOL vmlinux 0xb53d8048 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb55d1175 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0xb599db92 __devm_release_region +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5b22597 noop_fsync +EXPORT_SYMBOL vmlinux 0xb5baa363 security_path_link +EXPORT_SYMBOL vmlinux 0xb5bf5157 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xb6325d02 d_delete +EXPORT_SYMBOL vmlinux 0xb652fe37 ide_dma_off_quietly +EXPORT_SYMBOL vmlinux 0xb6599b9a machine_check_exception +EXPORT_SYMBOL vmlinux 0xb6753637 dev_txq_stats_fold +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb67fe7e6 matrox_millennium +EXPORT_SYMBOL vmlinux 0xb68078d9 mntput_no_expire +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 0xb6f66cfa pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0xb72ed951 get_user_pages +EXPORT_SYMBOL vmlinux 0xb7327bd4 read_dev_sector +EXPORT_SYMBOL vmlinux 0xb736a128 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xb744e60c tty_vhangup +EXPORT_SYMBOL vmlinux 0xb753bcc8 __ashrdi3 +EXPORT_SYMBOL vmlinux 0xb77a7c47 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xb7811f06 follow_up +EXPORT_SYMBOL vmlinux 0xb78b3626 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xb7b0f805 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7db4766 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0xb7e8675c __breadahead +EXPORT_SYMBOL vmlinux 0xb7ea9a86 vfs_rename +EXPORT_SYMBOL vmlinux 0xb7f61626 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xb8105feb contig_page_data +EXPORT_SYMBOL vmlinux 0xb81fd3be idr_find +EXPORT_SYMBOL vmlinux 0xb830e5a7 release_sock +EXPORT_SYMBOL vmlinux 0xb8369476 dquot_release +EXPORT_SYMBOL vmlinux 0xb8459c2f d_lookup +EXPORT_SYMBOL vmlinux 0xb8526965 dst_release +EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb872021a inet_bind +EXPORT_SYMBOL vmlinux 0xb88bcf49 sock_sendmsg +EXPORT_SYMBOL vmlinux 0xb891a3bd __lock_buffer +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 0xb8c1d47b sk_dst_check +EXPORT_SYMBOL vmlinux 0xb8d96472 blk_fetch_request +EXPORT_SYMBOL vmlinux 0xb8f000b0 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xb8fb61ff blk_queue_ordered +EXPORT_SYMBOL vmlinux 0xb9226188 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb991408e scsi_is_sdev_device +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 0xba2fc878 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba9d1782 mdiobus_scan +EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xbaae8898 __scm_destroy +EXPORT_SYMBOL vmlinux 0xbacaf39d i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xbad0aec2 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xbaf97e8d zero_fill_bio +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 0xbb7869d8 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xbb787dec security_path_truncate +EXPORT_SYMBOL vmlinux 0xbb84db56 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xbbbdf75c of_get_parent +EXPORT_SYMBOL vmlinux 0xbbc65566 free_task +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 0xbc363023 page_put_link +EXPORT_SYMBOL vmlinux 0xbc4c0784 dev_set_mtu +EXPORT_SYMBOL vmlinux 0xbc5136ac fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xbc56a509 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xbc6fc720 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0xbc8cb370 gen_pool_free +EXPORT_SYMBOL vmlinux 0xbcb30779 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0xbcb4b1fd xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xbcc1c6fc proc_symlink +EXPORT_SYMBOL vmlinux 0xbcdcac23 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xbcdccac7 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xbd082e80 dev_change_flags +EXPORT_SYMBOL vmlinux 0xbd43b5fa fasync_helper +EXPORT_SYMBOL vmlinux 0xbd5fc715 sk_reset_timer +EXPORT_SYMBOL vmlinux 0xbd7138cd fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xbd8d541d flush_hash_pages +EXPORT_SYMBOL vmlinux 0xbd90c7eb init_buffer +EXPORT_SYMBOL vmlinux 0xbd9e5d49 __lshrdi3 +EXPORT_SYMBOL vmlinux 0xbdcbc100 mod_timer +EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next +EXPORT_SYMBOL vmlinux 0xbdf9eb86 alloc_disk +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe27ddef scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xbe3ba1ec create_proc_entry +EXPORT_SYMBOL vmlinux 0xbe5cb535 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource +EXPORT_SYMBOL vmlinux 0xbe921c33 dquot_commit +EXPORT_SYMBOL vmlinux 0xbec4aa6f tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xbece4cb8 napi_skb_finish +EXPORT_SYMBOL vmlinux 0xbee5b1a0 dm_table_get_md +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbeff7a52 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xbf0f1638 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xbf1be8a1 lease_get_mtime +EXPORT_SYMBOL vmlinux 0xbf1faebe mutex_trylock +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf82a6be get_super +EXPORT_SYMBOL vmlinux 0xbf8f998f journal_abort +EXPORT_SYMBOL vmlinux 0xbf955bbd scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfd2385a elv_add_request +EXPORT_SYMBOL vmlinux 0xbfd7605f input_unregister_device +EXPORT_SYMBOL vmlinux 0xbfded3f2 dev_gro_receive +EXPORT_SYMBOL vmlinux 0xc00633b6 tcp_connect +EXPORT_SYMBOL vmlinux 0xc03b8ed7 pci_disable_msi +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc067f866 bdget +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 0xc0d84ced cuda_poll +EXPORT_SYMBOL vmlinux 0xc0e8870b tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0xc0eb5443 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0xc0efa53d skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc121ed59 pci_scan_slot +EXPORT_SYMBOL vmlinux 0xc1222d38 do_truncate +EXPORT_SYMBOL vmlinux 0xc14ade13 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xc15e073c generic_find_next_zero_le_bit +EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic +EXPORT_SYMBOL vmlinux 0xc16abfc4 sock_create_lite +EXPORT_SYMBOL vmlinux 0xc179c9c0 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xc17b6a0e try_wait_for_completion +EXPORT_SYMBOL vmlinux 0xc18cd7b9 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0xc19e9d20 fb_pan_display +EXPORT_SYMBOL vmlinux 0xc1a7a50a page_readlink +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1d1b646 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xc1dd4a7f adb_request +EXPORT_SYMBOL vmlinux 0xc1e4068c skb_tx_hash +EXPORT_SYMBOL vmlinux 0xc217fab2 i2c_verify_client +EXPORT_SYMBOL vmlinux 0xc21fda6b blk_alloc_queue +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 0xc2b1211c blk_set_default_limits +EXPORT_SYMBOL vmlinux 0xc2bbf975 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xc2c16b90 blk_complete_request +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2dc80f6 blk_plug_device_unlocked +EXPORT_SYMBOL vmlinux 0xc2e058a4 idr_get_new_above +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2e9c1b8 tty_kref_put +EXPORT_SYMBOL vmlinux 0xc368849f nvram_sync +EXPORT_SYMBOL vmlinux 0xc3855d37 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0xc3891fa5 inet_addr_type +EXPORT_SYMBOL vmlinux 0xc390bdd7 kset_register +EXPORT_SYMBOL vmlinux 0xc3935e51 sock_recvmsg +EXPORT_SYMBOL vmlinux 0xc3a43e1c inet_frag_evictor +EXPORT_SYMBOL vmlinux 0xc3c5df8c pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3d572b5 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xc3e858d6 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xc3f31916 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xc405730a jbd2_journal_start +EXPORT_SYMBOL vmlinux 0xc4228cbd tcp4_gro_receive +EXPORT_SYMBOL vmlinux 0xc4433fc0 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xc45b2868 pci_set_mwi +EXPORT_SYMBOL vmlinux 0xc45ef616 idr_for_each +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4a5110f unregister_key_type +EXPORT_SYMBOL vmlinux 0xc4b1a593 console_start +EXPORT_SYMBOL vmlinux 0xc4b1c1fa serio_interrupt +EXPORT_SYMBOL vmlinux 0xc4c248b9 ___ratelimit +EXPORT_SYMBOL vmlinux 0xc4d31460 netdev_state_change +EXPORT_SYMBOL vmlinux 0xc4e115a2 journal_release_buffer +EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic +EXPORT_SYMBOL vmlinux 0xc5067ad0 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xc524ed62 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc541dd12 dev_addr_add +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc569ed87 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0xc5718627 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0xc5738053 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xc58c1c48 set_groups +EXPORT_SYMBOL vmlinux 0xc58d356b netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xc590bb71 pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0xc6184045 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xc6262ac9 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xc62ebe1c genphy_config_aneg +EXPORT_SYMBOL vmlinux 0xc6381d4d simple_pin_fs +EXPORT_SYMBOL vmlinux 0xc65b8d7e nla_reserve +EXPORT_SYMBOL vmlinux 0xc68f82c0 inode_init_once +EXPORT_SYMBOL vmlinux 0xc69c789d unregister_con_driver +EXPORT_SYMBOL vmlinux 0xc69f0a0f inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xc6c286b0 may_umount +EXPORT_SYMBOL vmlinux 0xc6de44f5 sock_no_listen +EXPORT_SYMBOL vmlinux 0xc6deb877 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0xc6e7c895 devm_free_irq +EXPORT_SYMBOL vmlinux 0xc7250046 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xc7299f38 macio_register_driver +EXPORT_SYMBOL vmlinux 0xc7496840 of_find_node_by_type +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a02dbf dquot_acquire +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc80f36f6 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xc83750a4 d_genocide +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc859c0b6 generic_getxattr +EXPORT_SYMBOL vmlinux 0xc8649374 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0xc86c709e netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8 +EXPORT_SYMBOL vmlinux 0xc87ba296 dev_addr_del +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc9161a57 down_interruptible +EXPORT_SYMBOL vmlinux 0xc9231fc7 scm_detach_fds +EXPORT_SYMBOL vmlinux 0xc92fcaf2 sync_blockdev +EXPORT_SYMBOL vmlinux 0xc93b7f11 input_set_capability +EXPORT_SYMBOL vmlinux 0xc97e0a62 set_bh_page +EXPORT_SYMBOL vmlinux 0xc9841086 qdisc_destroy +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9b5cd16 sock_create_kern +EXPORT_SYMBOL vmlinux 0xca00868e matroxfb_g450_setclk +EXPORT_SYMBOL vmlinux 0xca117d1a input_set_keycode_big +EXPORT_SYMBOL vmlinux 0xca567704 read_cache_page +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca825895 pmu_suspend +EXPORT_SYMBOL vmlinux 0xca99f7d0 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0xca9dad13 arp_xmit +EXPORT_SYMBOL vmlinux 0xcab17e69 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xcab78676 path_is_under +EXPORT_SYMBOL vmlinux 0xcacd272d atomic64_sub_return +EXPORT_SYMBOL vmlinux 0xcacd4c69 get_sb_bdev +EXPORT_SYMBOL vmlinux 0xcaf0eb3b blk_end_request_all +EXPORT_SYMBOL vmlinux 0xcb163f65 neigh_table_clear +EXPORT_SYMBOL vmlinux 0xcb242d18 of_release_dev +EXPORT_SYMBOL vmlinux 0xcb43aec2 textsearch_unregister +EXPORT_SYMBOL vmlinux 0xcb44f76f dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0xcb491896 pci_save_state +EXPORT_SYMBOL vmlinux 0xcb49e6da unregister_8022_client +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb77689a generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xcb7f0cb8 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xcb8d79b5 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xcb959fd5 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xcbcc432a unregister_binfmt +EXPORT_SYMBOL vmlinux 0xcbd016fe matroxfb_vgaHWrestore +EXPORT_SYMBOL vmlinux 0xcbf0f5ad bio_integrity_endio +EXPORT_SYMBOL vmlinux 0xcc223219 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc6b60c9 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc802000 iget_failed +EXPORT_SYMBOL vmlinux 0xcce37885 dma_spin_lock +EXPORT_SYMBOL vmlinux 0xcd30bae7 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0xcd40be9d jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xcd4b732f bit_waitqueue +EXPORT_SYMBOL vmlinux 0xcd65e070 input_get_keycode +EXPORT_SYMBOL vmlinux 0xcd911ee4 block_write_full_page +EXPORT_SYMBOL vmlinux 0xcd976fc7 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xcdc804d7 flush_hash_entry +EXPORT_SYMBOL vmlinux 0xcdf2ff4c lookup_one_len +EXPORT_SYMBOL vmlinux 0xce0e4821 remove_arg_zero +EXPORT_SYMBOL vmlinux 0xce15dbce otg_get_transceiver +EXPORT_SYMBOL vmlinux 0xce22cded dm_io +EXPORT_SYMBOL vmlinux 0xce253ef0 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce3cf48b pci_read_irq_line +EXPORT_SYMBOL vmlinux 0xce409cda pmac_set_early_video_resume +EXPORT_SYMBOL vmlinux 0xce585713 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce5c9c5f elv_unregister_queue +EXPORT_SYMBOL vmlinux 0xce719faa cont_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0xce830250 fb_find_mode +EXPORT_SYMBOL vmlinux 0xce8c2556 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xce90285c pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0xcead767e tty_port_init +EXPORT_SYMBOL vmlinux 0xcee056dc pci_remove_bus +EXPORT_SYMBOL vmlinux 0xcef374c8 path_get +EXPORT_SYMBOL vmlinux 0xcefebbc1 kthread_bind +EXPORT_SYMBOL vmlinux 0xcf2f063c of_device_register +EXPORT_SYMBOL vmlinux 0xcf531ccb kernel_listen +EXPORT_SYMBOL vmlinux 0xcf813af3 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xcf901697 __strnlen_user +EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xcfd91db4 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0xd0103ca6 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd02eac51 udplite_prot +EXPORT_SYMBOL vmlinux 0xd036f633 dst_destroy +EXPORT_SYMBOL vmlinux 0xd0445bdc is_container_init +EXPORT_SYMBOL vmlinux 0xd0692a9b seq_release_private +EXPORT_SYMBOL vmlinux 0xd09dfe09 ide_wait_stat +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 0xd0aef95a blk_integrity_compare +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 0xd0fa6655 cont_write_begin +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd1262886 rtas_data_buf +EXPORT_SYMBOL vmlinux 0xd1379a7d generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0xd1390dc5 of_n_addr_cells +EXPORT_SYMBOL vmlinux 0xd1397e27 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0xd140276f scsi_device_get +EXPORT_SYMBOL vmlinux 0xd16b44ad kunmap_atomic +EXPORT_SYMBOL vmlinux 0xd1778a38 tcp_sendpage +EXPORT_SYMBOL vmlinux 0xd1791e83 generic_listxattr +EXPORT_SYMBOL vmlinux 0xd1c0b44b netif_device_detach +EXPORT_SYMBOL vmlinux 0xd22bbad1 bio_map_kern +EXPORT_SYMBOL vmlinux 0xd2367996 d_validate +EXPORT_SYMBOL vmlinux 0xd24d82ff find_inode_number +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd2595926 ipv4_specific +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd27c9650 input_get_keycode_big +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd29c9b7a jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0xd2a941d4 sg_init_table +EXPORT_SYMBOL vmlinux 0xd2aae897 i2c_master_recv +EXPORT_SYMBOL vmlinux 0xd2c1d3d8 security_file_mmap +EXPORT_SYMBOL vmlinux 0xd2e42872 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xd3187da4 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd3204ed1 mdiobus_alloc +EXPORT_SYMBOL vmlinux 0xd35bc101 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0xd379d41b tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xd3903068 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xd399c40f matrox_G100 +EXPORT_SYMBOL vmlinux 0xd3a1d67f fb_show_logo +EXPORT_SYMBOL vmlinux 0xd3ef4064 phy_driver_register +EXPORT_SYMBOL vmlinux 0xd409383c pmu_request +EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource +EXPORT_SYMBOL vmlinux 0xd4262f62 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0xd426e169 iput +EXPORT_SYMBOL vmlinux 0xd442d0a4 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xd4508480 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xd471c321 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0xd47711fc security_inode_permission +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 0xd4e6aefa dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xd4f75fa7 phy_register_fixup +EXPORT_SYMBOL vmlinux 0xd50368dd machine_id +EXPORT_SYMBOL vmlinux 0xd50b6865 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xd51ede69 of_device_alloc +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd52dbae6 cdrom_release +EXPORT_SYMBOL vmlinux 0xd53f2ce4 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xd55773d4 locks_copy_lock +EXPORT_SYMBOL vmlinux 0xd55c9254 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out +EXPORT_SYMBOL vmlinux 0xd56019ab nobh_writepage +EXPORT_SYMBOL vmlinux 0xd562b921 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert +EXPORT_SYMBOL vmlinux 0xd5696f7d __kfree_skb +EXPORT_SYMBOL vmlinux 0xd57f8789 iommu_num_pages +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5b2e52a single_step_exception +EXPORT_SYMBOL vmlinux 0xd5d14ce4 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xd5e8444a __div64_32 +EXPORT_SYMBOL vmlinux 0xd5ea05f4 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xd5f2de68 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xd608cc3c filemap_flush +EXPORT_SYMBOL vmlinux 0xd6143b6c task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xd625bff3 generic_delete_inode +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd631be71 dquot_free_inode +EXPORT_SYMBOL vmlinux 0xd64cfe5d kill_block_super +EXPORT_SYMBOL vmlinux 0xd69b30e0 atomic64_add_unless +EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xd6be7964 tty_unthrottle +EXPORT_SYMBOL vmlinux 0xd6d11e05 bh_submit_read +EXPORT_SYMBOL vmlinux 0xd6e48802 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd707d234 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xd7337a5b key_alloc +EXPORT_SYMBOL vmlinux 0xd73feb27 security_path_chown +EXPORT_SYMBOL vmlinux 0xd7667518 mach_chrp +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd77b66cd scsi_register_interface +EXPORT_SYMBOL vmlinux 0xd7808223 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xd7999dd4 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7a94126 simple_readpage +EXPORT_SYMBOL vmlinux 0xd7ac7870 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xd7c32b9d tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd80834bd locks_remove_posix +EXPORT_SYMBOL vmlinux 0xd80bfa37 unregister_qdisc +EXPORT_SYMBOL vmlinux 0xd810eb43 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xd82dd965 bdev_read_only +EXPORT_SYMBOL vmlinux 0xd832e354 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xd83350f8 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user +EXPORT_SYMBOL vmlinux 0xd84a8894 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0xd84c9462 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xd85f633e tty_name +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8a5a820 __getblk +EXPORT_SYMBOL vmlinux 0xd8c25856 sock_wmalloc +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd911324e __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xd92514ca agp_special_page +EXPORT_SYMBOL vmlinux 0xd92abd6d neigh_connected_output +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd947d60a kobject_put +EXPORT_SYMBOL vmlinux 0xd95a4f42 rfkill_set_states +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd99409aa __dst_free +EXPORT_SYMBOL vmlinux 0xd9aa27a2 mempool_create_node +EXPORT_SYMBOL vmlinux 0xd9bac924 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0xd9cc9913 skb_unlink +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xd9d828dc abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0xd9e39663 journal_dirty_data +EXPORT_SYMBOL vmlinux 0xd9ea7499 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf +EXPORT_SYMBOL vmlinux 0xda2fbdb3 kobject_add +EXPORT_SYMBOL vmlinux 0xda37adbd blk_queue_stack_limits +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 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdaee7ab2 simple_write_begin +EXPORT_SYMBOL vmlinux 0xdaf45a59 rtas_data_buf_lock +EXPORT_SYMBOL vmlinux 0xdafe3a4a __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xdb297c97 single_open +EXPORT_SYMBOL vmlinux 0xdb419fdf __lookup_one_len +EXPORT_SYMBOL vmlinux 0xdb5b27c9 open_by_devnum +EXPORT_SYMBOL vmlinux 0xdb69507c netpoll_print_options +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +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 0xdc0e7af4 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc1e9958 igrab +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc3de8f6 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc5fa5a4 dquot_initialize +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 0xdc8a4647 kunmap_high +EXPORT_SYMBOL vmlinux 0xdc8b5dd9 journal_lock_updates +EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcb1c4fd d_add_ci +EXPORT_SYMBOL vmlinux 0xdcbcc9d6 rwsem_wake +EXPORT_SYMBOL vmlinux 0xdcefb9a5 pmu_resume +EXPORT_SYMBOL vmlinux 0xdd0558a2 mnt_unpin +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd4d3492 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xdd81526b simple_lookup +EXPORT_SYMBOL vmlinux 0xdd9c892c sock_kmalloc +EXPORT_SYMBOL vmlinux 0xddd86e5e tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xdde86813 tty_port_open +EXPORT_SYMBOL vmlinux 0xde220ed8 matroxfb_wait_for_sync +EXPORT_SYMBOL vmlinux 0xde3c68a6 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xde49f0e2 eth_type_trans +EXPORT_SYMBOL vmlinux 0xde515bd4 sock_wake_async +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xdf096c1a netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xdf1d7878 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xdf292f41 scm_fp_dup +EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval +EXPORT_SYMBOL vmlinux 0xdf53e707 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xdf597f6b posix_acl_permission +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf6e2571 lock_super +EXPORT_SYMBOL vmlinux 0xdf8adb1a blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfa60c74 security_path_chmod +EXPORT_SYMBOL vmlinux 0xdfabf08c input_free_device +EXPORT_SYMBOL vmlinux 0xdfe335be pci_select_bars +EXPORT_SYMBOL vmlinux 0xdff43ed4 __debugger +EXPORT_SYMBOL vmlinux 0xdff56e64 adb_poll +EXPORT_SYMBOL vmlinux 0xe0186478 skb_find_text +EXPORT_SYMBOL vmlinux 0xe029e814 scsi_put_command +EXPORT_SYMBOL vmlinux 0xe033fdfd set_disk_ro +EXPORT_SYMBOL vmlinux 0xe048da35 pci_release_regions +EXPORT_SYMBOL vmlinux 0xe05954c9 dw_spi_add_host +EXPORT_SYMBOL vmlinux 0xe0720bc5 dquot_resume +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe094ef39 sg_next +EXPORT_SYMBOL vmlinux 0xe0951613 fb_blank +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort +EXPORT_SYMBOL vmlinux 0xe0e7e030 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe12ab4cf bio_add_page +EXPORT_SYMBOL vmlinux 0xe12b3b05 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xe1497a67 pci_request_regions +EXPORT_SYMBOL vmlinux 0xe16b893b mutex_lock +EXPORT_SYMBOL vmlinux 0xe16c7cf2 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1771811 dqput +EXPORT_SYMBOL vmlinux 0xe187f62b rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0xe192ad50 read_cache_pages +EXPORT_SYMBOL vmlinux 0xe1d9925d pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0xe1d992d2 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0xe1f1fe91 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xe2117bd5 log_start_commit +EXPORT_SYMBOL vmlinux 0xe229cc9d deny_write_access +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 0xe246f685 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe26e5696 pid_task +EXPORT_SYMBOL vmlinux 0xe27fa07a wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0xe29cc5c6 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xe2bbd450 pci_device_to_OF_node +EXPORT_SYMBOL vmlinux 0xe2c615cd generic_pipe_buf_map +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 0xe2eea2a3 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe33859e6 dev_uc_flush +EXPORT_SYMBOL vmlinux 0xe36f0ff9 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xe38ad423 load_nls +EXPORT_SYMBOL vmlinux 0xe399b885 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xe3addda0 hippi_mac_addr +EXPORT_SYMBOL vmlinux 0xe406886a iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe4951938 bio_put +EXPORT_SYMBOL vmlinux 0xe4ca9d22 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xe4ce9da4 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe52dd6ae tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xe543b3ed d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xe54724fe dquot_commit_info +EXPORT_SYMBOL vmlinux 0xe55f8ce9 lro_receive_skb +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe57b3bca jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5a57b39 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0xe5b358a5 alloc_fddidev +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5f621ad skb_make_writable +EXPORT_SYMBOL vmlinux 0xe60d94d8 inet_getname +EXPORT_SYMBOL vmlinux 0xe61aa9fc dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xe6364d8c simple_getattr +EXPORT_SYMBOL vmlinux 0xe693f102 no_llseek +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe69c3e8c file_update_time +EXPORT_SYMBOL vmlinux 0xe6a0fe3b napi_gro_receive +EXPORT_SYMBOL vmlinux 0xe6d1567f fsnotify_obtain_group +EXPORT_SYMBOL vmlinux 0xe6d766a6 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xe6dd236d clear_pages +EXPORT_SYMBOL vmlinux 0xe6e5ac19 neigh_lookup_nodev +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 0xe73d0fde sleep_on +EXPORT_SYMBOL vmlinux 0xe74d1996 consume_skb +EXPORT_SYMBOL vmlinux 0xe77ec9ab setup_arg_pages +EXPORT_SYMBOL vmlinux 0xe784b4d7 disk_stack_limits +EXPORT_SYMBOL vmlinux 0xe7971703 generic_cont_expand_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 0xe7eadcfb xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xe7f7a8af thaw_process +EXPORT_SYMBOL vmlinux 0xe82743f9 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xe8281b63 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0xe8403494 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0xe84af929 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xe8709d50 fb_set_var +EXPORT_SYMBOL vmlinux 0xe87ed1ce idr_replace +EXPORT_SYMBOL vmlinux 0xe89f9a60 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xe8a35ff6 seq_escape +EXPORT_SYMBOL vmlinux 0xe8c15c39 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xe8c1e512 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0xe9056ac6 xfrm_input +EXPORT_SYMBOL vmlinux 0xe9068d76 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe9187bde set_bdi_congested +EXPORT_SYMBOL vmlinux 0xe940f2a6 sg_miter_stop +EXPORT_SYMBOL vmlinux 0xe952cb6a tcp_proc_register +EXPORT_SYMBOL vmlinux 0xe98a87f1 dcache_lock +EXPORT_SYMBOL vmlinux 0xe99f6167 skb_push +EXPORT_SYMBOL vmlinux 0xe9a4c1e9 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0xe9cee2fb blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xe9d30b57 of_register_i2c_devices +EXPORT_SYMBOL vmlinux 0xe9e95af3 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0xea03973c dm_unregister_target +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 0xea21ea44 scsi_host_put +EXPORT_SYMBOL vmlinux 0xea2d33a2 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0xea36beff set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0xea3e97c8 skb_copy_bits +EXPORT_SYMBOL vmlinux 0xea66fea5 km_policy_notify +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 0xea9a64a7 jbd2_journal_release_buffer +EXPORT_SYMBOL vmlinux 0xeaa4848b ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xeaab4e8b up_write +EXPORT_SYMBOL vmlinux 0xeaba0790 dev_mc_flush +EXPORT_SYMBOL vmlinux 0xeabde0b4 __put_cred +EXPORT_SYMBOL vmlinux 0xeae4b200 journal_wipe +EXPORT_SYMBOL vmlinux 0xeafbeabc d_alloc +EXPORT_SYMBOL vmlinux 0xeb00f983 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0xeb30e974 rtas +EXPORT_SYMBOL vmlinux 0xeb42f6b3 fd_install +EXPORT_SYMBOL vmlinux 0xeb4f03e5 datagram_poll +EXPORT_SYMBOL vmlinux 0xeb60f17d dev_trans_start +EXPORT_SYMBOL vmlinux 0xeb660adc ip_setsockopt +EXPORT_SYMBOL vmlinux 0xeb78c46f of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xeb851cae dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n +EXPORT_SYMBOL vmlinux 0xeb8e9b10 f_setown +EXPORT_SYMBOL vmlinux 0xeb8f31b7 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0xeba2a1f7 rtas_indicator_present +EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull +EXPORT_SYMBOL vmlinux 0xebd5a31d sock_update_classid +EXPORT_SYMBOL vmlinux 0xec0b961c init_net +EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator +EXPORT_SYMBOL vmlinux 0xec2bb57b generic_file_open +EXPORT_SYMBOL vmlinux 0xec3211e5 of_parse_phandle +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 0xec7d1845 __alloc_skb +EXPORT_SYMBOL vmlinux 0xec91c6ed security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0xecca6050 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0xece9b9da pci_disable_device +EXPORT_SYMBOL vmlinux 0xecec9f24 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xed32b22b xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xed3da248 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xed47fd09 journal_force_commit +EXPORT_SYMBOL vmlinux 0xed6eb155 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0xed80132b bio_integrity_clone +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 0xedac557d xfrm_state_add +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc38a60 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xedf04b3e keyring_search +EXPORT_SYMBOL vmlinux 0xedf22f75 cad_pid +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee59412f adb_try_handler_change +EXPORT_SYMBOL vmlinux 0xee67d44d poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0xee834302 user_path_at +EXPORT_SYMBOL vmlinux 0xeea04468 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeedf2c46 vfs_symlink +EXPORT_SYMBOL vmlinux 0xeee26481 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0xeeeb1dfc key_link +EXPORT_SYMBOL vmlinux 0xef0a3fe9 module_layout +EXPORT_SYMBOL vmlinux 0xef0c7583 page_address +EXPORT_SYMBOL vmlinux 0xef2cdcb6 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xef314794 remove_inode_hash +EXPORT_SYMBOL vmlinux 0xef463cc8 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xef4c516d journal_destroy +EXPORT_SYMBOL vmlinux 0xef509612 kset_unregister +EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool +EXPORT_SYMBOL vmlinux 0xef8ee645 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0xefa45f13 pci_write_vpd +EXPORT_SYMBOL vmlinux 0xefd2c556 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0xefd4fe9b sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefde1bbe flush_dcache_range +EXPORT_SYMBOL vmlinux 0xefe5f94d request_firmware +EXPORT_SYMBOL vmlinux 0xeffc5b32 vga_tryget +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf003579d kmem_cache_alloc_notrace +EXPORT_SYMBOL vmlinux 0xf0056ac5 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xf0245dcc of_find_node_by_path +EXPORT_SYMBOL vmlinux 0xf03c4006 phy_device_free +EXPORT_SYMBOL vmlinux 0xf047c4e9 neigh_create +EXPORT_SYMBOL vmlinux 0xf0607665 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf06b373b jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xf0ad8b68 cfb_imageblit +EXPORT_SYMBOL vmlinux 0xf0b2b3b5 simple_setattr +EXPORT_SYMBOL vmlinux 0xf0b8c242 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xf0de2204 skb_pull +EXPORT_SYMBOL vmlinux 0xf0dff183 sock_no_accept +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 0xf136c279 add_timer +EXPORT_SYMBOL vmlinux 0xf1649621 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf1761b1b redraw_screen +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1f34b62 abx500_register_ops +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf2267417 bio_integrity_alloc_bioset +EXPORT_SYMBOL vmlinux 0xf229ae7d buffer_migrate_page +EXPORT_SYMBOL vmlinux 0xf24f4827 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xf26c1021 pmac_register_agp_pm +EXPORT_SYMBOL vmlinux 0xf27ad69e sk_alloc +EXPORT_SYMBOL vmlinux 0xf27cf204 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0xf2a19c6f blk_start_request +EXPORT_SYMBOL vmlinux 0xf2a9e7bc xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xf2e9b73b get_sb_nodev +EXPORT_SYMBOL vmlinux 0xf2eae78e __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf31fe32e follow_down +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 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf34bdf2b d_invalidate +EXPORT_SYMBOL vmlinux 0xf34c774a macio_release_resources +EXPORT_SYMBOL vmlinux 0xf355dd42 ____pagevec_lru_add +EXPORT_SYMBOL vmlinux 0xf361df16 tcp_getsockopt +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 0xf3df2793 netif_rx_ni +EXPORT_SYMBOL vmlinux 0xf4056ec5 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xf419c730 kthread_stop +EXPORT_SYMBOL vmlinux 0xf41db2c3 inet_frag_find +EXPORT_SYMBOL vmlinux 0xf4219891 check_disk_change +EXPORT_SYMBOL vmlinux 0xf421bfce page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4449388 timer_interrupt +EXPORT_SYMBOL vmlinux 0xf447b78d skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0xf44a4de9 d_path +EXPORT_SYMBOL vmlinux 0xf44d284b fb_set_cmap +EXPORT_SYMBOL vmlinux 0xf45224a6 phy_device_register +EXPORT_SYMBOL vmlinux 0xf462b0a4 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0xf4712591 dquot_disable +EXPORT_SYMBOL vmlinux 0xf488094b open_bdev_exclusive +EXPORT_SYMBOL vmlinux 0xf4ade3ec devm_ioremap_prot +EXPORT_SYMBOL vmlinux 0xf4ae1d1d of_register_spi_devices +EXPORT_SYMBOL vmlinux 0xf4ca7da7 tcf_hash_create +EXPORT_SYMBOL vmlinux 0xf4d88ad2 seq_open +EXPORT_SYMBOL vmlinux 0xf4de41b0 backlight_device_register +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4fd5c18 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0xf50e0ec3 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xf51029c0 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xf52060e9 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xf52321e0 atomic64_sub +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf540c799 bdevname +EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n +EXPORT_SYMBOL vmlinux 0xf579ce25 max8925_reg_read +EXPORT_SYMBOL vmlinux 0xf5a62ecc _memset_io +EXPORT_SYMBOL vmlinux 0xf5b505e6 netlink_set_err +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xf5d37336 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0xf5e1558d crash_shutdown_unregister +EXPORT_SYMBOL vmlinux 0xf5e21f06 elv_abort_queue +EXPORT_SYMBOL vmlinux 0xf5ea030c bdev_stack_limits +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 0xf70384d7 __debugger_sstep +EXPORT_SYMBOL vmlinux 0xf71521ba atomic64_add_return +EXPORT_SYMBOL vmlinux 0xf721f4ec dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xf72cf6c2 dquot_drop +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf75c0b5b of_device_is_compatible +EXPORT_SYMBOL vmlinux 0xf75e9e07 vfs_unlink +EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xf76995f3 dmam_pool_create +EXPORT_SYMBOL vmlinux 0xf7798d52 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf78ee38b pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xf7c18bfc flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xf7c5b987 phy_stop +EXPORT_SYMBOL vmlinux 0xf7c7851b pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xf7e5bf3c unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0xf7e64863 xfrm_register_type +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 0xf83a10b8 nla_append +EXPORT_SYMBOL vmlinux 0xf8b69029 unlock_buffer +EXPORT_SYMBOL vmlinux 0xf8bcb7ae __free_pages +EXPORT_SYMBOL vmlinux 0xf8e8c35c i2c_clients_command +EXPORT_SYMBOL vmlinux 0xf8f2aad2 udp_proc_register +EXPORT_SYMBOL vmlinux 0xf908936f fb_get_mode +EXPORT_SYMBOL vmlinux 0xf90c155d init_timer_deferrable_key +EXPORT_SYMBOL vmlinux 0xf913a612 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0xf92bd431 free_buffer_head +EXPORT_SYMBOL vmlinux 0xf93904df eth_change_mtu +EXPORT_SYMBOL vmlinux 0xf939087d nf_ct_attach +EXPORT_SYMBOL vmlinux 0xf93bc0d3 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xf94a3b7a dev_get_flags +EXPORT_SYMBOL vmlinux 0xf9535114 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xf9572bd0 journal_flush +EXPORT_SYMBOL vmlinux 0xf97df4df pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xf97e65e5 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xf9981251 arp_find +EXPORT_SYMBOL vmlinux 0xf99c5c11 sock_wfree +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9a91fac neigh_lookup +EXPORT_SYMBOL vmlinux 0xf9b3ecc1 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xf9bfad1e console_stop +EXPORT_SYMBOL vmlinux 0xf9c5d099 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xf9f61e6d __serio_register_driver +EXPORT_SYMBOL vmlinux 0xfa256960 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xfa27cfbe elv_register_queue +EXPORT_SYMBOL vmlinux 0xfa2ba27e scsi_register +EXPORT_SYMBOL vmlinux 0xfa304cf3 __pagevec_release +EXPORT_SYMBOL vmlinux 0xfa857c03 __register_binfmt +EXPORT_SYMBOL vmlinux 0xfa916fd9 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xfac4bc01 mpage_writepage +EXPORT_SYMBOL vmlinux 0xfadb5750 pmu_unlock +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb26d3ba scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xfb2e8519 __elv_add_request +EXPORT_SYMBOL vmlinux 0xfb2e93f5 napi_get_frags +EXPORT_SYMBOL vmlinux 0xfb35e2dd of_unregister_driver +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb6bc0c9 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xfb9660f0 __vlan_hwaccel_rx +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 0xfc0e3e2d mdiobus_write +EXPORT_SYMBOL vmlinux 0xfc284825 udp_disconnect +EXPORT_SYMBOL vmlinux 0xfc2b4827 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc421e82 journal_extend +EXPORT_SYMBOL vmlinux 0xfc4dbf76 scsi_remove_host +EXPORT_SYMBOL vmlinux 0xfc693314 genphy_update_link +EXPORT_SYMBOL vmlinux 0xfc8fae9f swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0xfc95a6a0 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcbfe9aa nobh_write_begin_newtrunc +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf2389f pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0xfcf4a26d poll_freewait +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd0c5038 adb_unregister +EXPORT_SYMBOL vmlinux 0xfd3ec125 do_munmap +EXPORT_SYMBOL vmlinux 0xfd5df47a km_query +EXPORT_SYMBOL vmlinux 0xfd5eaec8 dw_spi_suspend_host +EXPORT_SYMBOL vmlinux 0xfd605693 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xfd7ec392 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xfd943d7a __blockdev_direct_IO_newtrunc +EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq +EXPORT_SYMBOL vmlinux 0xfda8df0f tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdcae749 nf_register_hooks +EXPORT_SYMBOL vmlinux 0xfdd71226 xfrm_register_mode +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 0xfe496665 filemap_write_and_wait +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 0xfe8aea41 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin +EXPORT_SYMBOL vmlinux 0xfec677d6 skb_dequeue +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff1127db pci_iounmap +EXPORT_SYMBOL vmlinux 0xff1765c7 rtas_call +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff5c3b93 bio_kmalloc +EXPORT_SYMBOL vmlinux 0xff5f09c7 d_alloc_name +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff83f7b1 switch_mmu_context +EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffdb82bc sg_free_table +EXPORT_SYMBOL vmlinux 0xffee364a close_bdev_exclusive +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x0708b8ef gfn_to_hva +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x094ac8f4 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x095cf9ba __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x12d1b23b kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x147334c4 kvm_release_page_clean +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 0x251deeea kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x29cda8af kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x3247f519 kvm_get_kvm +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x4929125a kvm_clear_guest +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x4a7cbe69 is_error_pfn +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x5861c1fa kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x5da59cd2 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x7c7ee028 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x7d39fd6c kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x7d7e4a91 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x89cc159c kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x8d623ebb kvm_read_guest +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x8fca1047 kvm_resched +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x969f21a2 kvm_init +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xa361bc65 kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xaec10bcb gfn_to_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xaf0fe816 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xb4c590a3 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xb6a220fe is_error_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xbd86163a kvm_handle_fault_on_reboot +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xd296def9 kvm_is_error_hva +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xdcc5d9ce gfn_to_memslot_unaliased +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xe35d3b6d kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xeda169b4 kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xffc793bb kvm_vcpu_init +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 0x306676ab async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x8f9b2c76 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xa365cb5c async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xfe86a471 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 0x0a994de6 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2b64fc0b ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x353c1294 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x451a41d9 ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x623c9f43 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6dc36a2d ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8a50ce5b ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb2105871 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xdfef03f2 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe30be1ba ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf02e1884 ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf0675cb6 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf31cb019 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf51e8a55 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x6ece63c9 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xe79a6954 __pata_platform_remove +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0xec7b1dbb 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 0x036dca98 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x2bb22395 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x5aa3db0f btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x8904d3b0 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x924ad1e3 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xbde4a34d btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xdfe0967d btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xfe1a71fd 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 0x820c735d dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xec38be34 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x140416a4 dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x1f5a0f42 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x2dc3bc67 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x405953f6 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x45a9256a dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x50c01b66 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x53ed14d4 dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x5f460a41 dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x604f9d0c dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x6a2c6349 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7c87c74a dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x8d8ce0a8 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x95f45d68 dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xaada612e dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xac0663b7 dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb4e9eae6 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb65981aa dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbc21c199 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd1faa898 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd3eb01c1 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfdb06c67 dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x46670072 sync_page_io +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x5099f73c md_allow_write +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xe4e7de2a md_new_event +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xf17f3584 md_do_sync +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 0x32abc5ef sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x4ba291b3 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x5de2720e sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xa1b7fadf sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xa6862be3 sm501_misc_control +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 0x224655c9 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x37ce534c sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x6246d461 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x70d4151f sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x84da3807 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe3729581 sdhci_alloc_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 0x5d24db98 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x64af0479 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xa2d70c3f deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xde4e62ec register_mtd_blktrans +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 0x07eea030 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x2720e16c macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x6a9dd8fb macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x72d39a94 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xdbab9cac macvlan_dellink +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 0xdce5f408 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 0x082e0650 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1f223e24 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x271d8e8d rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x29b70806 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2c9b7843 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x436314a1 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4da4267b rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x604b0a2a rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x69153f8b rt2800_mac80211_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6c7fcfb7 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7bde86a8 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8ae87a79 rt2800_init_bbp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x93a88e86 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x95d139be rt2800_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xba985d1d rt2800_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc0a6ea4a rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdbd8b7d5 rt2800_probe_hw_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdc849f17 rt2800_init_rfcsr +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xddc21f32 rt2800_validate_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe126995c rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xee3429c9 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf1c63e38 rt2800_init_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf6aa979a rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf7579297 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x088c8b3f rt2x00lib_txdone +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 0x334541ef rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x479655ee rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x491076e2 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4b49a436 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x531a97a2 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5ff134b1 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x60c08374 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6d3d44a9 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7622bc11 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7fbe20b3 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x82229de6 rt2x00queue_get_entry +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 0xb86ee2a4 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xba3f972b rt2x00mac_remove_interface +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 0xea724c06 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xeb24bb90 rt2x00queue_get_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfb108f79 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x1724b896 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x39cdb381 rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x6eba766b rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x75ba62dc rt2x00pci_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb0199c4d rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb9f55f46 rt2x00pci_resume +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 0xf09420ff rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x08f2614a rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1e0c6be3 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x22057e03 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x29cbce42 rt2x00usb_kill_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2ce90a15 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3b6e3521 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5135de31 rt2x00usb_vendor_request_large_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x57f1da68 rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x662db2d2 rt2x00usb_kick_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x774ac729 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8b2be546 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x95cf0f5e rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb3e218de rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc5a1fdef rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe2c65fa2 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xeb1b8abc rt2x00usb_initialize +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 0x373f5b0e scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x645f93b0 scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x9b9329ef scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xb68d5441 scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xdd7620e1 scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xf4a256e1 scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xdd9073ad fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0ad3f58e iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0b269a4c iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0ccfbe70 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0f9b103c iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x136ed6ce iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x14c0ea4b __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x18d1e283 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x23adcc50 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x31446072 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x31eb4f4c iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3290b7d5 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3cf246f7 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x529e2af7 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x594fc1dd iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x59c70e0c iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x63afee83 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x69be5410 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6a26b70b iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6c874066 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6fb92018 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x715eece7 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7ae838e6 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x822970bc iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x84ad9f3b iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8a1cf0a7 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8c613dfd iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8fee0707 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x98737091 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9eb9cf03 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa2311fe3 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa6a42806 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb7683eaf iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc9bc5e30 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcc246ce7 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd234a73a iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe2388911 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe7dd481d iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf2d93e28 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf5db2c81 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfae10e07 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfb7092e0 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfda23807 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x09f5e099 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2aebb80a iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3d3027fa iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3e3d3e19 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x52ca1f31 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x877bb2b2 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x89d5ad4c iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa34fd526 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xaa7b6237 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xae870d37 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xaff22a7d iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbb03c2a2 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe858e404 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xef90361f iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf759bbba iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfe470156 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0136d003 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x06456c1c sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0760da4d sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x23364de2 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x253ce3f2 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x39e8ec7e sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4742fa35 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x57a3146f sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x770d6e1f sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9494d9e2 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9b4f3ac8 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9f27aefe sas_find_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa0387e7c sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb4a079ef sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbb77575e sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdf0744a5 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe1af18a4 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe95faa7a sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xebc07de3 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xee0ddbd3 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfc15e048 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfd97575a sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfece05f4 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x045702dd srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x2e3518b0 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x2ec69b31 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x450041c2 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x8731aa52 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xaf33c4ac srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x06b15fd7 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x359b86b0 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x38a9253d scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5d2c9c37 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x76b96483 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x8bfbae8c scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9a1edde4 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc4ca456d scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd2bf6077 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x04d6fc9e iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0ba0272c iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x12334411 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1b56b292 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x259ceba8 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2729d47d iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x318c443d iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x48581adf iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6478774c iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7208e6c8 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x743c7c78 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x91056ed1 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9511260a iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa129865a iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa9d454cc iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc1532712 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc537706e iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc840eb91 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdcc2d88c iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xec071d9a iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf1ffe286 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfaa5577d iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x4f6339f2 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x81ac0b36 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x904e468d sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xbed9ba80 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 0x0e692ae4 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x1d3f272d srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x40d8f66d srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x42f07e12 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x5f5814d0 srp_remove_host +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x777f136b pciserial_suspend_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x8f7c5ed4 pciserial_resume_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xbb36ab54 pciserial_remove_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xc502f02b pciserial_init_ports +EXPORT_SYMBOL_GPL drivers/serial/serial_core 0x1eabdc47 uart_set_options +EXPORT_SYMBOL_GPL drivers/serial/serial_core 0x7a75d8b4 uart_console_write +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 0xc691d797 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 0x28173a41 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xec4acfd5 usbatm_usb_probe +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 0x0559ea95 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0fffa664 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x12053aa5 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1d32edaf usb_serial_generic_submit_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1dce064f usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x20d3bfa9 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2fb40fe2 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3ef6e8c7 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3fcd4843 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x489c2dc6 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x54a214fb ezusb_set_reset +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5e235639 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7b22dbcf usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8b0410df usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa8b5c8c2 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc50a2545 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xcba4e2cd ezusb_writememory +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdd6c81dc usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf0cf0c2e usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x001b07dc usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0cab938d usb_stor_control_msg +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 0x1e458d17 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x21ac52a5 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x37aac015 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4800be9f usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4a93f820 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5130a5ee usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x610ad384 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6977b9c4 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6f1d7911 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x83da9f66 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x86f34718 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8b13ba79 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x94ff568a usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x95e03a3a usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa90e4e64 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa9211752 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb6cb5429 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb898d617 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc18da4be usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcece6050 usb_stor_pre_reset +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 0x00937e37 fat_free_clusters +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 0x8cb2f013 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x9ad8393d fat_getattr +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 0xf9dbcb06 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 0x1c12b678 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x5b2e6096 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x5c80881f nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xae74bd6b nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xc25dc97f nlmsvc_unlock_all_by_sb +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 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 0x38236a01 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4181625f o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5afe3c18 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x898c74fa o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9fcce450 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xac780b09 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xcccfdce9 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x2b0603c4 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x53704dc9 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x8b91bd94 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xb77abb5f dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc0fbff98 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xcac41d8a dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 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 0xe047ba6c ax25_register_pid +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x61ddf2f2 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0aa1971e dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0dab0df1 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1934369e dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x277e93ab dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2ad859ea dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2d224303 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x30185c22 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x368bb217 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x37c4fae4 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x39034a72 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3a19ef3a dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x433441f4 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x45898553 dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4a68f723 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x50c2e2d2 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x52405b10 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x582a7ac2 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5dd57652 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x64448ba2 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x72500db3 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x75e1dece dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7e94574a dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x847a3613 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x93c684a0 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x978fcf4c dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9ab14f78 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb6d6926d dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbce5e337 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc81a94af dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc8c8c552 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcbef772c dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd4682b5c dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf7166310 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf8555bdd dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x3837d8c1 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x44362df1 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x5234d993 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x565f4028 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xbb871b21 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xf7626e38 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x6d28932c arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xae1d2d79 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 0xcbe3994c 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 0x25145334 nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x68f050d9 nf_nat_proto_unique_tuple +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x8653c63b nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x8dd61746 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x9688fafe nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xc25659ed nf_nat_get_offset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xc3354644 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x148c7af7 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x4753f53d tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xa3b07a37 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xaff79f62 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xb91d97ff tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x017543f0 net_ipv6_ctl_path +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x125e79d7 fl6_sock_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x33db11c6 ip6_local_out +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x3e161c33 inet6_csk_xmit +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x4394a147 ipv6_opt_accepted +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x539762d8 ipv6_find_tlv +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x5cb2b5e9 ipv6_dup_options +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x8dcec70d inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa3a5d865 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xba91733d inet6_csk_search_req +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xc30c42cc ip6_dst_blackhole +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xc923557c inet6_destroy_sock +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xe2217930 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xe5d86859 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xeb23318b ip6_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xed517c92 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x1059ed48 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1eb64f59 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x200fccee l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x22267c6a l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x41fc072f l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5c55b4f2 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x630e27b7 l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x68b89a5b l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6a8f6f41 l2tp_xmit_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x810e5923 l2tp_tunnel_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa9064b39 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb5e8ee3e l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb6f4167f l2tp_udp_recv_core +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd2fcec8a l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd7220721 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xddfeb0e1 l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf47f3905 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xff9dbb9f l2tp_session_free +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 0x195d17ce nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x20087803 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b6b754c nf_conntrack_l4proto_tcp6 +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 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 0x5cce90c1 nf_conntrack_l3proto_generic +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 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 0x99528dba nf_conntrack_l4proto_udp6 +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 0xab64ef38 nf_conntrack_l4proto_udp4 +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 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 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 0xd5b19965 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x08dd5c39 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0509be3d nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x17f2d646 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x36144b65 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4faafd78 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x54d6ac22 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x79efcae6 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x821147c6 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8c307c7e set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xdce2c951 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xea5ce9b1 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x82b1c6cd nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x5a3bb4c3 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x781a77b8 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xa653a2da nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xd3249af1 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 0x215993b6 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x337d90a3 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3ec63a70 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4295d512 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6348af41 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x766ffc9f ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x78f45087 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa2ccf4dc ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb19b7c53 nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc1b03704 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xdbb45f18 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xeaf22213 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xec7c245b nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x22f61d29 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xa03024d9 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xed9ee042 nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x07cecb7f nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x32060b5e nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x4370ff33 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x614364d6 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xcec9d120 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd31b582d nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xac97a24b nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x081498b1 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1b634f9e xt_info_locks +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5144e231 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x594b5d92 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x717f38ff xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7a5e6adb xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa449708b xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xab133569 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xab994913 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb77e75c6 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xbcd4917c xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xed648976 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf0e2c6ee xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf25c0c90 xt_request_find_target +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xec1893e2 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xf5d320a5 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 0x1dd8612a gss_mech_put +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x42560ba7 svc_gss_principal +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x470759b5 gss_svc_to_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x4f542bf7 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x54bdfa61 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x5521eeea gss_mech_get +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x58c4d6c7 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8c5de4e4 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 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf20c1dbc gss_mech_get_by_name +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf22d7025 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf4061cf7 gss_pseudoflavor_to_service +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03273299 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x046b965b svc_set_num_threads +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 0x09645a7e svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0980b127 svc_sock_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ba1fa70 xdr_decode_word +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 0x153e00e9 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x154d559c rpc_init_wait_queue +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 0x17f3e656 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a5840da xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b8b59c6 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1bc01d6a xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ce151c1 xdr_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d572d86 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1dfce41d xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1fd9c56f xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x252410c9 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2677223d rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x271d083f xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x290510ab rpc_mkpipe +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d28708e svc_seq_show +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 0x2fcfc1dc rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30038c37 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30c97bcc xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30d84aad svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3161f901 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31ee8a35 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35448c65 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x396c61ec svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x397d4fa0 auth_unix_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39a0d99d rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a9a5785 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ebe784e xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f7202a0 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f890286 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4026c8ad svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4369ed08 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44e49e3a auth_unix_forget_old +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x48fde616 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c4431d9 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d29a551 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d44175e rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4fc9e2dd rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x505931bb svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b072b98 rpc_call_start +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 0x5cfbec1f svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60555833 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64a3410a rpc_wake_up_next +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 0x6a528e76 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b533821 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6dcda95f xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e334622 svcauth_unix_set_client +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 0x6f888a61 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7689bef0 rpc_restart_call +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 0x7a301208 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a40d475 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b1d7ffe svc_sock_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c04ecff xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7db66013 svc_wake_up +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 0x85206d51 auth_unix_add_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8609faa4 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86301120 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86ed282a rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c18020d cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8cfe9ba5 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8fbea090 cache_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x92e63e71 svc_sock_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94465792 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x975543c1 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97c6263a sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x981d3f36 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x99af6444 xdr_process_buf +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 0x9fccb84a xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3018349 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa309afa8 rpc_get_mount +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa38359f3 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7083f6c rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9d0b05e put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa9c497d rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac3d05ef rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac832f1f xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad9b2926 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3439665 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb64913fe xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6cde058 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb86025f3 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb8fb7667 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb977d0df write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbc6e7ec1 rpc_exit_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe4913f1 xprt_write_space +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 0xc0b77bfe svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2200f8d rpc_max_payload +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 0xc8ab631b rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb1a7e7a svc_proc_register +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 0xd0031192 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0a33ddf svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0b5387b unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd11e0438 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd140c461 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd210dd48 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd41b7bad rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7ed68ea rpcauth_init_cred +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 0xdc31c50f rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc622ec8 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe079e1e0 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe098b9a0 cache_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0b63f5b svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1617165 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe62c62bf rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6cae068 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe703f4b1 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe91721d0 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe963fed2 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe9921f90 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xea69d152 xdr_buf_from_iov +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 0xf2ce312f rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3b9981b xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf42e1cc4 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4a6e00c xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf781b4a6 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8318343 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8735ab4 rpcauth_register +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 0xfda22c41 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0ec4e0be wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x140b5a7d wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x19ce68f0 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x3170a040 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x45502c92 wimax_report_rfkill_sw +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 0x7f75cf38 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x98e1696e wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xbf5fc4f3 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd00de4ec wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd744c4b4 wimax_msg_send +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 0x49bf8531 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x84f07c43 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xa8668d18 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xe559f9ed ipcomp_output +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 0x0050b2b2 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x0063dcff dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x00661656 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +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 0x011aca18 ide_set_media_lock +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 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0227c3d0 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x02b08b4e ide_do_test_unit_ready +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 0x033cbfd1 ide_pci_resume +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0345524f wm8350_device_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 0x046a095b xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x047b1d5e __class_create +EXPORT_SYMBOL_GPL vmlinux 0x048dd983 ide_build_dmatable +EXPORT_SYMBOL_GPL vmlinux 0x0495c23c queue_work +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 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 0x05a211e3 kvmppc_rmcall +EXPORT_SYMBOL_GPL vmlinux 0x05b3c8fa pcibios_finish_adding_to_bus +EXPORT_SYMBOL_GPL vmlinux 0x05cc1343 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x06122899 cgroup_add_files +EXPORT_SYMBOL_GPL vmlinux 0x06165ae5 nf_unregister_afinfo +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 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 0x0802d53f tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x08045d09 ide_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x0810dca4 pmac_backlight_mutex +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 0x0954fe4c ide_pio_bytes +EXPORT_SYMBOL_GPL vmlinux 0x09d9f752 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x09e6882d user_match +EXPORT_SYMBOL_GPL vmlinux 0x0a05f274 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0x0a06d036 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x0a460429 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x0a51ae5b virq_to_hw +EXPORT_SYMBOL_GPL vmlinux 0x0a5a6bc0 usb_get_from_anchor +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 0x0beca143 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0cccde5b blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0d0dfdf6 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x0d3621bd gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x0d5a39b4 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x0d7733ca inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x0dd67f19 queue_work_on +EXPORT_SYMBOL_GPL vmlinux 0x0e1fa351 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x0e2d97ae ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0e80e694 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x0f03f0fe mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x0f531840 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x0f54ddff ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x0f7ae6f6 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x0f99e9c2 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x0fd7fabe sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x1022fe14 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x1036d57a fb_ddc_read +EXPORT_SYMBOL_GPL vmlinux 0x1043dc42 crypto_dequeue_request +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 0x11748246 ata_pci_device_do_suspend +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 0x11b5ff05 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x11c2efc6 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x1240e28f ide_dma_sff_timer_expiry +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x126028a4 vfs_listxattr +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 0x12cd1808 tty_find_polling_driver +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 0x13a14d9b __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x13ad7f29 inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13c34410 ide_retry_pc +EXPORT_SYMBOL_GPL vmlinux 0x14038a06 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1423eb42 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x1468defe ide_read_altstatus +EXPORT_SYMBOL_GPL vmlinux 0x14704218 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x147d3342 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x15647f63 macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15dd62f2 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x15e337ea fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x16108e18 inode_add_to_lists +EXPORT_SYMBOL_GPL vmlinux 0x16877eed ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x16a56d34 of_scan_bus +EXPORT_SYMBOL_GPL vmlinux 0x16c007a6 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x16c71348 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x16e8bf81 ide_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x16f76869 probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x17142764 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x1740d2f6 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x17548422 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x17a3dea2 attribute_container_find_class_device +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 0x18a0ffb4 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x18dc718b dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x19221f85 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x198f881a scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x199232b0 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19d419de devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x19d65d76 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x19fa3aa6 find_symbol +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 0x1a9965aa ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x1b8c1ba8 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bba1c0a inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x1c00a42c pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x1c6b4bff __scsi_get_command +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 0x1cb3bb85 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x1cceb3a6 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x1d03116c ide_port_scan +EXPORT_SYMBOL_GPL vmlinux 0x1d39a3b6 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x1d49a3ff ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x1d59a217 kvmppc_trampoline_enter +EXPORT_SYMBOL_GPL vmlinux 0x1d5a408b driver_find +EXPORT_SYMBOL_GPL vmlinux 0x1daf8b0e scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x1df9fe3c rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0x1e0d1c6a inet_twsk_put +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 0x1eb74636 __trace_note_message +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 0x1ef066b1 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x1efc5495 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x1f030bd2 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x1f1be2c5 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x1f5b72d6 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x1f68156d register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x1f9d002e __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fd4badc shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x1ff75aad __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x20407b8e dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x2044ea76 ip_build_and_send_pkt +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 0x20d2a62a tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x20e6792b sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x20e7bee2 lock_media_bay +EXPORT_SYMBOL_GPL vmlinux 0x20e7c5a1 ide_register_region +EXPORT_SYMBOL_GPL vmlinux 0x211f8a96 ata_common_sdev_attrs +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 0x21b46111 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x21b5fbce scsi_target_unblock +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 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x2394c6bb seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x23b68d29 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x23fbe30e sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x23fc87d0 ide_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x2406dae3 pci_address_to_pio +EXPORT_SYMBOL_GPL vmlinux 0x241bd479 ide_host_free +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 0x24c7745d ide_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x24cda041 ide_vlb_clk +EXPORT_SYMBOL_GPL vmlinux 0x24e9a36c pmac_low_i2c_unlock +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24fb9b27 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x250dabb3 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x2517849a class_compat_unregister +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 0x260551b9 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x27399f00 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x2750747b class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x27680d61 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x276f93c7 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x27735e33 get_device +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x279715a9 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x279bbd36 ide_cd_expiry +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 0x27e89e2b ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range +EXPORT_SYMBOL_GPL vmlinux 0x2827263a tcp_register_congestion_control +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 0x28f2207b ide_pci_setup_ports +EXPORT_SYMBOL_GPL vmlinux 0x28f7b70c dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x2903e6f4 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x291b76c4 find_module +EXPORT_SYMBOL_GPL vmlinux 0x2937f5ed platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x29a4c37b eventfd_ctx_get +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 0x2a04ccc0 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a712bf3 unregister_net_sysctl_table +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 0x2b22a61e perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x2b2dcf3b wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x2b5f53af sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x2b607170 ktime_sub_ns +EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2c1aad40 ata_port_freeze +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 0x2c8ee768 inet_csk_clone +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 0x2d1fb9b7 unlock_media_bay +EXPORT_SYMBOL_GPL vmlinux 0x2d31f5dc add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x2d47b5f8 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d772ce7 ide_dma_start +EXPORT_SYMBOL_GPL vmlinux 0x2d914688 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x2da1576b crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x2dc5a0b2 ide_pio_cycle_time +EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x2e4f8117 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x2e86e4c0 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x2e8f7d98 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x2ea28846 do_add_mount +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 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2fb4fa06 irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2fcfbb9e ide_pad_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3050ec18 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x308ff9a9 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x31179983 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x311c54c4 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x314d4299 ide_init_pc +EXPORT_SYMBOL_GPL vmlinux 0x3187a05b ide_queue_pc_tail +EXPORT_SYMBOL_GPL vmlinux 0x31a4b61f __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x31ac407e tc35892_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x31d8a124 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x31de6218 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x31e8ab7c do_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x320d1b66 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x321836b1 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x3218fed8 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x322831a7 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x32305a5c seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x32697428 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x33039bce sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x3336d4c9 usb_reset_configuration +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 0x348eb070 crypto_alg_sem +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 0x35fa27d5 ide_dma_sff_read_status +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362850db ata_cable_sata +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 0x36ed5157 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x3713a937 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x3719fa66 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x372d7419 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3769ab0c klist_next +EXPORT_SYMBOL_GPL vmlinux 0x376e2553 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x37966e8a vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x37c34cdf inet_csk_bind_conflict +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 0x3927635d usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x397c3218 tcp_reno_cong_avoid +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 0x3a8239a3 ide_output_data +EXPORT_SYMBOL_GPL vmlinux 0x3a8482f8 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x3ba3157e find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x3bce1a2f elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3c17c749 ide_pci_set_master +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c9b8803 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d209c3f rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x3d27d858 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x3d37c06e destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d6ba9f0 __pm_runtime_set_status +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 0x3de8425d shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x3e5beff5 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x3e7173f6 pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x3eae5080 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x3eb871a1 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x3ee16cbd init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x3f18efbc unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f2384d0 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x3f5d6d78 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x3f898c81 ide_dev_select +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 0x4068f10f regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40e7d6f1 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x40eeca8e pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4109faf4 sata_scr_write +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 0x41da8c59 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x41e81286 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x4229b558 unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x424e1c1d inet6_lookup +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 0x431e65a9 blkdev_aio_write +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 0x43671341 ref_module +EXPORT_SYMBOL_GPL vmlinux 0x436ed1b4 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x439c53c5 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x43a962c9 ide_pci_dma_base +EXPORT_SYMBOL_GPL vmlinux 0x43e70d55 pmf_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x43ef4027 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x43f866f7 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x44538b97 tty_buffer_request_room +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 0x44b388ee ide_check_ireason +EXPORT_SYMBOL_GPL vmlinux 0x44cb5325 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x44f0d829 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x44f82666 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x4544d18b transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x456abecc ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x456ad22a sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x458fb722 i2c_add_numbered_adapter +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 0x45fa3d3b blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x4600460e platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +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 0x47158ce8 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x475df511 sysfs_get_dirent +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 0x4879bc7c usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size +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 0x49ccbe5c preempt_notifier_unregister +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 0x4a9013a0 blkdev_ioctl +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 0x4b436eb6 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x4b637ad4 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x4b6e55be bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x4b73fa6c inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x4bb1d97c __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x4bd30bb3 class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x4c25232c dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x4c62fcea ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0x4c709558 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c848371 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x4cac8b2c platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x4cdf0805 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x4d3cdafb crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x4d793d31 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4d93f83f __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x4dff4396 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x4e0033c4 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x4e6a1fce dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x4e75b44b ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x4e86376e rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x4ea62045 devres_close_group +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 0x4f176640 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x4f4122af scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x4f83de0e pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x4fab9d5c tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x4fad7d14 ide_get_lba_addr +EXPORT_SYMBOL_GPL vmlinux 0x4fb70d12 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x4fc7eb31 ide_dma_unmap_sg +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe04363 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x4ff1b6d1 gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x4ff5ae9f __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x4ff79eb2 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x507e1731 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x508f824c ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x50ac8602 __lock_page_killable +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 0x51206572 file_ra_state_init +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 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 0x5368c237 vfs_lock_file +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 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 0x5488a355 scsi_get_vpd_page +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 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 0x552d70f9 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x5542b913 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x554be601 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x55a579ef bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x55ef3b60 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x562ebd7a page_mkclean +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 0x56523e58 dm_put +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 0x571d2491 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x5747a1b1 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x57660064 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x5768b65e ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x576ed229 sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x57796a3b rtnl_kill_links +EXPORT_SYMBOL_GPL vmlinux 0x57918acd mmput +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57f2c4a7 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x583344e9 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x583baf52 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x587cc877 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x5892f832 release_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x5894a2fe ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x58a64f59 __rtnl_link_register +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 0x591dff1a input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x59c862ce usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x59df97c6 device_add +EXPORT_SYMBOL_GPL vmlinux 0x59e53a65 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x59e9860a regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x5a030ac2 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x5a146ded ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x5a67cb13 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5b0d97e2 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x5b385084 ide_init_sg_cmd +EXPORT_SYMBOL_GPL vmlinux 0x5b7c8524 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x5bc08771 devres_destroy +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 0x5c27518c ata_pio_need_iordy +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 0x5c755fb2 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x5ca76e7f power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x5cc0e3b3 ring_buffer_empty +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 0x5d29e5ec ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x5d3bf4fb vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x5d51bcf7 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +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 0x5e7a218b pmac_i2c_open +EXPORT_SYMBOL_GPL vmlinux 0x5e8f663a bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x5eca6c73 do_rw_taskfile +EXPORT_SYMBOL_GPL vmlinux 0x5eccd851 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x5f387f1d wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x5f627004 sata_link_resume +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 0x5fee0409 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6009e03f crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x600a492f __mmdrop +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 0x6065aa3a fib_rules_unregister +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 0x60d0d2e8 pmac_i2c_find_bus +EXPORT_SYMBOL_GPL vmlinux 0x6169a4a5 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x61b935d3 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x61db9504 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x620bf0c1 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x62291b3c generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x624c26a8 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x626152a7 ata_dev_pair +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 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 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 0x64898a31 drop_file_write_access +EXPORT_SYMBOL_GPL vmlinux 0x64f7ab7e wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x6512b157 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x65344d33 ide_pci_check_simplex +EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0x6554b027 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x6569915c dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x656eaee8 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x657161e9 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x65917fa3 blk_queue_rq_timeout +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 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x662f3d8f ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x6643cc32 ide_bus_type +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 0x66b57bcb ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x66bb5577 scsi_queue_work +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 0x6774ee7a sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x681d74da xattr_getsecurity +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 0x686d2f45 inet_csk_reqsk_queue_prune +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 0x68bb31b3 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x68fda9f6 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x692f5834 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x6930d6ac sff_dma_ops +EXPORT_SYMBOL_GPL vmlinux 0x6948ff8b fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x696695bd pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x69894f70 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x698f8687 tty_prepare_flip_string +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 0x69ef20c0 register_net_sysctl_rotable +EXPORT_SYMBOL_GPL vmlinux 0x69ef8c52 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x69ffd677 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6a19dfe4 ide_prep_sense +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 0x6a81931d tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x6ad33da5 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x6ae269b0 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6ae2c853 sock_prot_inuse_add +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 0x6bbe3a38 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x6bc7bd31 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x6c0f587a inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x6c11df3b blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x6c205571 pmf_unregister_irq_client +EXPORT_SYMBOL_GPL vmlinux 0x6c49b637 sk_setup_caps +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 0x6ca2e98a tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x6cb204cd __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x6cd19e23 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x6d27c24a pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d32a65d synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x6d5bb882 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x6d73dcad ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x6db3fb63 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x6e19eb7d wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x6e1a24b4 tcp_init_congestion_ops +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 0x6e96bd40 vfs_getxattr +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 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x709305ce usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x70b733ba crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x70f4d035 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x7103a9df macio_find +EXPORT_SYMBOL_GPL vmlinux 0x7104ac54 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x710fecd9 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x714a1ed2 usb_string +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 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 0x729e17e4 ring_buffer_lock_reserve +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 0x731ea3a3 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x73564277 __timecompare_update +EXPORT_SYMBOL_GPL vmlinux 0x73593a4d ide_setting_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7389bdaa power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x73a07e27 ide_check_atapi_device +EXPORT_SYMBOL_GPL vmlinux 0x73a16942 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0x73a45d7d usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +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 0x75f8f23b pmac_i2c_get_flags +EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7618abcb ide_cd_get_xferlen +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 0x76f30d91 ide_device_put +EXPORT_SYMBOL_GPL vmlinux 0x76f9714f irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x7782335a platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x77995b26 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x77d7d050 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x78a5e9c9 skb_partial_csum_set +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 0x799aa6cd scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x79b9da79 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x79c307d1 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x79d25a7e ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x7a004daf of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x7a730320 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x7a77160c sata_set_spd +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 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 0x7c4dcd15 irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0x7c5a5543 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x7cb48184 __ide_pci_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x7cb6b22d regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x7cc714d2 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x7cf6e7ef debugfs_create_u32 +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 0x7db085f0 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7e256621 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e2d29ec ide_pci_clk +EXPORT_SYMBOL_GPL vmlinux 0x7e370419 blk_trace_remove +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 0x7ea0644a ide_dma_setup +EXPORT_SYMBOL_GPL vmlinux 0x7ef1b36f ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7f1f9dcc ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x7f5694b1 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x7fa5dcb0 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x7fa9bbe6 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x7fd5fb0f usb_ep0_reinit +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 0x8023f5b6 rt_mutex_lock_interruptible +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 0x80994c5d ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x80c2f8ac register_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x80cb42ec blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x80e1fa14 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x80ea85f4 generic_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc +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 0x81c2f288 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x81efe404 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x81f3823f scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x8221cae2 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x8231ac41 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x823b4e83 get_current_tty +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 0x82afc267 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x82c681ae usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x8303a6d0 ide_pci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8323355c disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x83d82f34 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x8412ded6 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x843e813c transport_setup_device +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 0x84a8a04c console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x8527366d cpu_remove_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x853274d3 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x85841a7b set_task_ioprio +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 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 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 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 0x887dc331 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x888034a0 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88af0dec tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x88b41b16 ide_device_get +EXPORT_SYMBOL_GPL vmlinux 0x88db9d09 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x88e8680e ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x8931c66e sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x89485868 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x89f920ee bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0x8a0b90e2 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x8a16b797 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x8a6241b8 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x8a636e45 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x8a7bfe13 posix_timer_event +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 0x8b605072 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x8b73b10e pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b9992b7 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x8b9b9ffa __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x8bac7091 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x8bc67c0f __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x8bc9d443 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x8c2d6c45 sata_scr_write_flush +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 0x8d275e5c raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x8d60370b unregister_pernet_subsys +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 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f90e908 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x8f916ced ide_input_data +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 0x9039791d led_trigger_set +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 0x918e872e ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x91ab56d7 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x9235df29 regulator_register +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 0x93eaceec skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x93f7ffaf ata_port_abort +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 0x948e0730 lookup_create +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 0x94be696b ide_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x94c1b466 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x94e8deb8 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x95340a16 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x953747d7 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x9568210a __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x95805b41 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x958207cf klist_iter_init_node +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 0x96512a73 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x965caf80 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x971acb68 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x9731f49c ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x97481292 usb_find_interface +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 0x98cb2da3 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x98d597d3 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x98e5fc86 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x98f2f149 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x98f57bbd firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x99068886 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x99120418 ide_pci_init_two +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 0x9a016549 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0x9a0d4372 br_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +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 0x9ab1e824 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x9ac9a12f sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x9afa96dc hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x9b34e845 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +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 0x9c1bad76 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x9c270fbd crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x9c2bd925 blk_abort_queue +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 0x9d32d7b9 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x9d7b2b72 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x9e0343c9 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x9e197d1a pmac_i2c_match_adapter +EXPORT_SYMBOL_GPL vmlinux 0x9e64160b ide_do_start_stop +EXPORT_SYMBOL_GPL vmlinux 0x9f18ddb4 scsi_nl_add_driver +EXPORT_SYMBOL_GPL vmlinux 0x9f1eb1ef pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain +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 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa03c054e ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0xa07bd9c9 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0xa07c90bd crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0xa0a191ce crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xa0c23688 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xa0ee6fac usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xa1009776 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xa18e5c6e fuse_request_send_background +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 0xa2667bc1 ide_pci_init_one +EXPORT_SYMBOL_GPL vmlinux 0xa28e5c87 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xa2a37520 find_get_pid +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 0xa42c45c6 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xa464c625 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0xa47b3cd4 ide_init_disk +EXPORT_SYMBOL_GPL vmlinux 0xa47bfdfe __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa48ad3ce ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0xa53bc090 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0xa5910715 pm_generic_runtime_idle +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 0xa639095e __module_address +EXPORT_SYMBOL_GPL vmlinux 0xa65ef419 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xa6630c94 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0xa6b729f3 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0xa6dc86ff skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xa73becc0 dev_attr_sw_activity +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 0xa7e99723 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0xa7fb521c pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0xa8128090 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xa81b293c device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa8930e5a hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xa8a43a10 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xa8a7a8e6 ide_read_status +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +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 0xa9f58e5e perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xaa19eed1 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0xaa234090 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa4d090b platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaa8d6cae sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xaa97b3ce mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xaafa8df1 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab6cb88a crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0xab96d0b6 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xabd60d72 platform_device_register_data +EXPORT_SYMBOL_GPL vmlinux 0xac1383c8 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xac533adf ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xac6458fe fib_rules_cleanup_ops +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 0xacfdb552 root_device_unregister +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 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 0xae695f71 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0xae734d01 pmac_i2c_setmode +EXPORT_SYMBOL_GPL vmlinux 0xae74506c dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xae7befc8 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xae8a3c50 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0xaeb3c581 tcp_is_cwnd_limited +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 0xaf7db47b wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0xb017f056 put_pid +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 0xb1681a8e usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb18d0864 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1c61340 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xb1d85c3e device_del +EXPORT_SYMBOL_GPL vmlinux 0xb1dba8a8 ide_dma_lost_irq +EXPORT_SYMBOL_GPL vmlinux 0xb1f182e7 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xb1faa0f2 blk_rq_err_bytes +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 0xb3438bb3 inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0xb39a4b0c sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0xb3b5f971 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xb3bcd9af sk_clone +EXPORT_SYMBOL_GPL vmlinux 0xb3c4b8ab tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xb3d2857a pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0xb3e3781e ide_dma_end +EXPORT_SYMBOL_GPL vmlinux 0xb4176df6 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb429c096 usb_hcd_pci_pm_ops +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 0xb5ba4e4d ide_setup_pci_noise +EXPORT_SYMBOL_GPL vmlinux 0xb5c8a852 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb6128175 ata_sas_port_stop +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 0xb6c59063 ide_exec_command +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 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 0xb76ff6d8 ide_allocate_dma_engine +EXPORT_SYMBOL_GPL vmlinux 0xb7b1e5a8 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0xb7d39578 inotify_init +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 0xb87696fb ide_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0xb8edd044 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xb90dfc3b fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xb93af698 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0xb9860af7 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9a5dfb6 ide_capacity_proc_fops +EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xb9f31210 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xb9f6e2c9 elv_register +EXPORT_SYMBOL_GPL vmlinux 0xba3115a1 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0xba4b5df4 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xba9b4508 uhci_check_and_reset_hc +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 0xbafa654e usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb472521 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0xbb6f4336 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xbb823345 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbbb0c1cd ab8500_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xbbb8fcb7 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xbbd2c401 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0xbbfac69f user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xbc34b301 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xbc3672a3 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbd909c02 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xbd9779ef trace_event_raw_init +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 0xbdfae793 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbdfe0218 ide_queue_sense_rq +EXPORT_SYMBOL_GPL vmlinux 0xbe115f76 ide_error +EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe36b99f ide_issue_pc +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 0xbe984667 ide_undecoded_slave +EXPORT_SYMBOL_GPL vmlinux 0xbec522f0 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xbecab0e9 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0xbed2d6b5 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xbf0c2b78 __pneigh_lookup +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 0xbfd84f5a ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xbfd88270 ata_sas_port_destroy +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 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0e21401 irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0xc0e3313b ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0xc0ea832f br_fdb_test_addr_hook +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 0xc176b801 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0xc177fb0d skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0xc1b89a11 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xc1bab881 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0xc1ca1314 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xc1e1a0f2 ata_host_resume +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 0xc323ebba ide_create_request_sense_cmd +EXPORT_SYMBOL_GPL vmlinux 0xc33ae845 ide_host_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 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 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 0xc4db992e kvmppc_load_up_fpu +EXPORT_SYMBOL_GPL vmlinux 0xc5172b09 fb_deferred_io_fsync +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 0xc5b6df58 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xc5e53f54 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xc5f671f4 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc5faf0dd inet_ctl_sock_create +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 0xc61e6f51 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0xc61ea51b ide_release_dma_engine +EXPORT_SYMBOL_GPL vmlinux 0xc66554fe __css_put +EXPORT_SYMBOL_GPL vmlinux 0xc6bb36b2 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xc6ce657a pmf_do_functions +EXPORT_SYMBOL_GPL vmlinux 0xc6fd563d transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xc78f205f key_type_user +EXPORT_SYMBOL_GPL vmlinux 0xc7b55ae3 each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xc7d4d2bd debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xc7dbb482 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0xc7de88d8 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0xc7e8f952 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xc7fcf759 pmf_get_function +EXPORT_SYMBOL_GPL vmlinux 0xc853b147 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc8647143 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xc86c7817 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xc8a96f60 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds +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 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 0xc9d97a30 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xc9ea7384 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca290a57 scsi_nl_add_transport +EXPORT_SYMBOL_GPL vmlinux 0xca2cd496 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xca32a2aa ide_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xcab4c438 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xcb0e4f24 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0xcb259ef9 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xcb953bdd pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xcbb05992 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xcbd39cf0 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xcbd53416 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0xcbd9050f eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc379c01 find_vpid +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 0xccb1452d of_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccd83394 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xcd02854b usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xcd264c2a eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xcd9f11c0 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xcda7e2f4 scsi_target_block +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 0xce97fc01 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0xcea44b96 raw_seq_stop +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 0xcfd4b19a ide_end_rq +EXPORT_SYMBOL_GPL vmlinux 0xd00652f3 timecompare_offset +EXPORT_SYMBOL_GPL vmlinux 0xd019b856 pmac_i2c_adapter_to_bus +EXPORT_SYMBOL_GPL vmlinux 0xd025bd27 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0xd02e6382 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd0489a82 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1728623 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1c3b9c7 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0xd1eeb27a usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0xd21525bd sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xd21c2ee6 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd24d8ac5 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd274f58a crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0xd2f726bf get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd33c4fca __wake_up_locked +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 0xd41d5566 securityfs_create_dir +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 0xd463de82 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xd4a27d06 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd4a76f4b cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xd4c6f0f3 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0xd4c94fb3 inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0xd51d6a9e regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xd5891e55 disk_part_iter_init +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 0xd688457a tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xd710a7dd crypto_register_pcomp +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 0xd7813235 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0xd7a558e3 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xd84341b3 mnt_want_write_file +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 0xd8dafdff ide_map_sg +EXPORT_SYMBOL_GPL vmlinux 0xd8e84150 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0xd92d45f7 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd95a3563 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0xd96c2021 ide_set_dma_mode +EXPORT_SYMBOL_GPL vmlinux 0xd9acf85a pmac_i2c_get_adapter +EXPORT_SYMBOL_GPL vmlinux 0xd9b7d591 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0xd9c711b1 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xd9d1eefe inet_csk_search_req +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 0xda87e936 debugfs_remove +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 0xdbd0a532 ide_read_error +EXPORT_SYMBOL_GPL vmlinux 0xdbd5f358 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0xdc089e20 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xdc46716c bus_for_each_dev +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 0xdd02e2a0 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0xdd2633db ide_host_remove +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 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 0xdebb3c75 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xdebd4846 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xdf27877b register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xdf5a1f33 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xdf919757 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xdf9a996e kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xdfb2abe8 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0xdfb4f375 security_inode_mkdir +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 0xe0009800 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe01e3cd1 ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xe05e6d92 ide_unregister_region +EXPORT_SYMBOL_GPL vmlinux 0xe09127b3 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xe0ae2ce4 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xe0af65e4 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xe0e0f80d rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0e89b48 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0xe0f9ef4d queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xe10c0f71 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xe191b650 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xe19ba1e7 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xe1fe2d20 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0xe20d2695 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xe24a6240 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0xe274a2c6 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe2a39b86 ide_no_data_taskfile +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 0xe32dce1e rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xe3375da9 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xe34c7013 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xe3e40693 ide_dma_test_irq +EXPORT_SYMBOL_GPL vmlinux 0xe3f2cf1f init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xe3f4515e crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xe445cd3c fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe450e1ed debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0xe465ee07 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xe46c4796 ide_host_add +EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xe4b787cc crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xe53261f2 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xe5bc986d __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xe609b271 trace_define_field +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 0xe705aa73 blk_update_request +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 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 0xe8647437 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xe873b802 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xe8e34f76 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xe8f7895e pmac_i2c_get_controller +EXPORT_SYMBOL_GPL vmlinux 0xe8f8292c sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0xe906fd23 ide_set_pio +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9565dfa queue_delayed_work +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 0xea695ed2 kvmppc_load_up_altivec +EXPORT_SYMBOL_GPL vmlinux 0xea83f797 dio_end_io +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 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 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 0xec2948e6 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xec4a35cc ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0xec4acf25 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xecb3b4a5 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xecc6d4f2 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xecde31ce ide_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0xecea75d0 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xed1af58b raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xed36efb5 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xed58a1f2 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0xed89055f blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0xedc2994d ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0xedf2f88b cpufreq_frequency_table_target +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 0xee93b060 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0xee9654a5 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xeec5d5eb xfrm_output_resume +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 0xef68efe3 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef8189e8 ata_base_port_ops +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 0xf0674529 ata_sas_slave_configure +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 0xf10e0eea rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1945d87 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xf1c187df driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xf1c6eac5 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0xf1f8dd9f ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xf24072e2 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xf284bffc ide_read_bcount_and_ireason +EXPORT_SYMBOL_GPL vmlinux 0xf2867f42 put_driver +EXPORT_SYMBOL_GPL vmlinux 0xf296e6f1 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xf2eca9ac ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf33011a4 __set_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xf366e4c2 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xf370c545 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xf37914bc __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf3a2c3ac ide_intr +EXPORT_SYMBOL_GPL vmlinux 0xf3a37b42 bsg_register_queue +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 0xf3efef38 ide_port_unregister_devices +EXPORT_SYMBOL_GPL vmlinux 0xf44e2adb ring_buffer_record_enable_cpu +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 0xf4a4dea0 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xf4f1af23 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0xf4f9980b vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf5935f04 dm_get_rq_mapinfo +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 0xf6a4128f pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xf6de349b ata_dev_next +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 0xf74d0a24 ata_host_detach +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 0xf80cf566 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xf81e35c5 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +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 0xf8d651af ata_host_alloc +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 0xf8f6fdcc tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xf8fb3fd6 pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xf9018d1d pmf_call_one +EXPORT_SYMBOL_GPL vmlinux 0xf9378e9b tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0xf96b152d fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0xf99a7220 xfrm_audit_policy_delete +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 0xfa241248 ide_dma_host_set +EXPORT_SYMBOL_GPL vmlinux 0xfa4990ad __blk_put_request +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 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 0xfbf080ac securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc2e13ea trace_seq_vprintf +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 0xfcde08df mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0xfd244ae9 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0xfd53dd53 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xfdd1bef8 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0xfdd8ab42 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfe09d387 ata_port_schedule_eh +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 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff337fe4 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xff9ac1ec ide_write_devctl +EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock +EXPORT_SYMBOL_GPL vmlinux 0xffbd72f7 udp4_lib_lookup +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,140 @@ +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/misc/vmware_balloon.ko +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/* +fs/nfs/* +fs/nfsd/* +fs/nfs_common/* +fs/fscache/* +fs/lockd/* +fs/autofs4/autofs4.ko +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/* +net/sunrpc/auth_gss/auth_rpcgss.ko +net/sunrpc/sunrpc.ko +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_CFG_80211 \ + -DCONFIG_RTL_RFKILL \ + # \ + -DCONFIG_CRDA \ + -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,438 @@ +/* + * 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; + struct task_struct *myself = current; + + rcu_read_lock(); + if (!thread_group_leader(myself)) + myself = myself->group_leader; + get_task_struct(myself); + 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, myself); + put_task_struct(tracer); + } + put_task_struct(myself); + } + 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_policy.c +++ linux-2.6.35/security/integrity/ima/ima_policy.c @@ -253,6 +253,8 @@ result = security_filter_rule_init(entry->lsm[lsm_rule].type, Audit_equal, args, &entry->lsm[lsm_rule].rule); + if (!entry->lsm[lsm_rule].rule) + return -EINVAL; return result; } --- 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/ipc/sem.c +++ linux-2.6.35/ipc/sem.c @@ -743,6 +743,8 @@ { struct semid_ds out; + memset(&out, 0, sizeof(out)); + ipc64_perm_to_ipc_perm(&in->sem_perm, &out.sem_perm); out.sem_otime = in->sem_otime; --- linux-2.6.35.orig/ipc/compat.c +++ linux-2.6.35/ipc/compat.c @@ -241,6 +241,8 @@ struct semid64_ds __user *up64; int version = compat_ipc_parse_version(&third); + memset(&s64, 0, sizeof(s64)); + if (!uptr) return -EINVAL; if (get_user(pad, (u32 __user *) uptr)) @@ -421,6 +423,8 @@ int version = compat_ipc_parse_version(&second); void __user *p; + memset(&m64, 0, sizeof(m64)); + switch (second & (~IPC_64)) { case IPC_INFO: case IPC_RMID: @@ -594,6 +598,8 @@ int err, err2; int version = compat_ipc_parse_version(&second); + memset(&s64, 0, sizeof(s64)); + switch (second & (~IPC_64)) { case IPC_RMID: case SHM_LOCK: --- linux-2.6.35.orig/ipc/shm.c +++ linux-2.6.35/ipc/shm.c @@ -473,6 +473,7 @@ { struct shmid_ds out; + memset(&out, 0, sizeof(out)); ipc64_perm_to_ipc_perm(&in->shm_perm, &out.shm_perm); out.shm_segsz = in->shm_segsz; out.shm_atime = in->shm_atime; --- linux-2.6.35.orig/ipc/compat_mq.c +++ linux-2.6.35/ipc/compat_mq.c @@ -53,6 +53,9 @@ void __user *p = NULL; if (u_attr && oflag & O_CREAT) { struct mq_attr attr; + + memset(&attr, 0, sizeof(attr)); + p = compat_alloc_user_space(sizeof(attr)); if (get_compat_mq_attr(&attr, u_attr) || copy_to_user(p, &attr, sizeof(attr))) @@ -127,6 +130,8 @@ struct mq_attr __user *p = compat_alloc_user_space(2 * sizeof(*p)); long ret; + memset(&mqstat, 0, sizeof(mqstat)); + if (u_mqstat) { if (get_compat_mq_attr(&mqstat, u_mqstat) || copy_to_user(p, &mqstat, sizeof(mqstat))) --- 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; @@ -1941,10 +1942,12 @@ asmlinkage void kvm_handle_fault_on_reboot(void) { - if (kvm_rebooting) + if (kvm_rebooting) { /* spin while reset goes on */ + local_irq_enable(); while (true) ; + } /* Fault while not rebooting. We want the trace. */ BUG(); } --- linux-2.6.35.orig/virt/kvm/eventfd.c +++ linux-2.6.35/virt/kvm/eventfd.c @@ -217,7 +217,6 @@ events = file->f_op->poll(file, &irqfd->pt); list_add_tail(&irqfd->list, &kvm->irqfds.items); - spin_unlock_irq(&kvm->irqfds.lock); /* * Check if there was an event already pending on the eventfd @@ -226,6 +225,8 @@ if (events & POLLIN) schedule_work(&irqfd->inject); + spin_unlock_irq(&kvm->irqfds.lock); + /* * do not drop the file until the irqfd is fully initialized, otherwise * we might race against the POLLHUP --- linux-2.6.35.orig/net/compat.c +++ linux-2.6.35/net/compat.c @@ -41,10 +41,12 @@ compat_size_t len; if (get_user(len, &uiov32->iov_len) || - get_user(buf, &uiov32->iov_base)) { - tot_len = -EFAULT; - break; - } + get_user(buf, &uiov32->iov_base)) + return -EFAULT; + + if (len > INT_MAX - tot_len) + len = INT_MAX - tot_len; + tot_len += len; kiov->iov_base = compat_ptr(buf); kiov->iov_len = (__kernel_size_t) len; --- linux-2.6.35.orig/net/socket.c +++ linux-2.6.35/net/socket.c @@ -1652,6 +1652,8 @@ struct iovec iov; int fput_needed; + if (len > INT_MAX) + len = INT_MAX; sock = sockfd_lookup_light(fd, &err, &fput_needed); if (!sock) goto out; @@ -1709,6 +1711,8 @@ int err, err2; int fput_needed; + if (size > INT_MAX) + size = INT_MAX; sock = sockfd_lookup_light(fd, &err, &fput_needed); if (!sock) goto out; --- 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/svc_xprt.c +++ linux-2.6.35/net/sunrpc/svc_xprt.c @@ -212,6 +212,7 @@ spin_lock(&svc_xprt_class_lock); list_for_each_entry(xcl, &svc_xprt_class_list, xcl_list) { struct svc_xprt *newxprt; + unsigned short newport; if (strcmp(xprt_name, xcl->xcl_name)) continue; @@ -230,8 +231,9 @@ spin_lock_bh(&serv->sv_lock); list_add(&newxprt->xpt_list, &serv->sv_permsocks); spin_unlock_bh(&serv->sv_lock); + newport = svc_xprt_local_port(newxprt); clear_bit(XPT_BUSY, &newxprt->xpt_flags); - return svc_xprt_local_port(newxprt); + return newport; } err: spin_unlock(&svc_xprt_class_lock); @@ -431,8 +433,13 @@ { BUG_ON(!test_bit(XPT_BUSY, &xprt->xpt_flags)); xprt->xpt_pool = NULL; + /* As soon as we clear busy, the xprt could be closed and + * 'put', so we need a reference to call svc_xprt_enqueue with: + */ + svc_xprt_get(xprt); clear_bit(XPT_BUSY, &xprt->xpt_flags); svc_xprt_enqueue(xprt); + svc_xprt_put(xprt); } EXPORT_SYMBOL_GPL(svc_xprt_received); --- 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/x25/x25_facilities.c +++ linux-2.6.35/net/x25/x25_facilities.c @@ -61,6 +61,8 @@ while (len > 0) { switch (*p & X25_FAC_CLASS_MASK) { case X25_FAC_CLASS_A: + if (len < 2) + return 0; switch (*p) { case X25_FAC_REVERSE: if((p[1] & 0x81) == 0x81) { @@ -104,6 +106,8 @@ len -= 2; break; case X25_FAC_CLASS_B: + if (len < 3) + return 0; switch (*p) { case X25_FAC_PACKET_SIZE: facilities->pacsize_in = p[1]; @@ -125,6 +129,8 @@ len -= 3; break; case X25_FAC_CLASS_C: + if (len < 4) + return 0; printk(KERN_DEBUG "X.25: unknown facility %02X, " "values %02X, %02X, %02X\n", p[0], p[1], p[2], p[3]); @@ -132,26 +138,26 @@ len -= 4; break; case X25_FAC_CLASS_D: + if (len < p[1] + 2) + return 0; switch (*p) { case X25_FAC_CALLING_AE: - if (p[1] > X25_MAX_DTE_FACIL_LEN) - break; + if (p[1] > X25_MAX_DTE_FACIL_LEN || p[1] <= 1) + return 0; dte_facs->calling_len = p[2]; memcpy(dte_facs->calling_ae, &p[3], p[1] - 1); *vc_fac_mask |= X25_MASK_CALLING_AE; break; case X25_FAC_CALLED_AE: - if (p[1] > X25_MAX_DTE_FACIL_LEN) - break; + if (p[1] > X25_MAX_DTE_FACIL_LEN || p[1] <= 1) + return 0; dte_facs->called_len = p[2]; memcpy(dte_facs->called_ae, &p[3], p[1] - 1); *vc_fac_mask |= X25_MASK_CALLED_AE; break; default: printk(KERN_DEBUG "X.25: unknown facility %02X," - "length %d, values %02X, %02X, " - "%02X, %02X\n", - p[0], p[1], p[2], p[3], p[4], p[5]); + "length %d\n", p[0], p[1]); break; } len -= p[1] + 2; --- linux-2.6.35.orig/net/x25/x25_link.c +++ linux-2.6.35/net/x25/x25_link.c @@ -394,6 +394,7 @@ list_for_each_safe(entry, tmp, &x25_neigh_list) { nb = list_entry(entry, struct x25_neigh, node); __x25_remove_neigh(nb); + dev_put(nb->dev); } write_unlock_bh(&x25_neigh_list_lock); } --- linux-2.6.35.orig/net/x25/x25_in.c +++ linux-2.6.35/net/x25/x25_in.c @@ -119,6 +119,8 @@ &x25->vc_facil_mask); if (len > 0) skb_pull(skb, len); + else + return -1; /* * Copy any Call User Data. */ --- linux-2.6.35.orig/net/mac80211/mlme.c +++ linux-2.6.35/net/mac80211/mlme.c @@ -109,7 +109,7 @@ mod_timer(&ifmgd->timer, timeout); } -static void mod_beacon_timer(struct ieee80211_sub_if_data *sdata) +void ieee80211_sta_reset_beacon_monitor(struct ieee80211_sub_if_data *sdata) { if (sdata->local->hw.flags & IEEE80211_HW_BEACON_FILTER) return; @@ -118,6 +118,19 @@ round_jiffies_up(jiffies + IEEE80211_BEACON_LOSS_TIME)); } +void ieee80211_sta_reset_conn_monitor(struct ieee80211_sub_if_data *sdata) +{ + struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; + + if (sdata->local->hw.flags & IEEE80211_HW_CONNECTION_MONITOR) + return; + + mod_timer(&sdata->u.mgd.conn_mon_timer, + round_jiffies_up(jiffies + IEEE80211_CONNECTION_IDLE_TIME)); + + ifmgd->probe_send_count = 0; +} + static int ecw2cw(int ecw) { return (1 << ecw) - 1; @@ -954,21 +967,26 @@ if (is_multicast_ether_addr(hdr->addr1)) return; - if (sdata->local->hw.flags & IEEE80211_HW_CONNECTION_MONITOR) - return; - - mod_timer(&sdata->u.mgd.conn_mon_timer, - round_jiffies_up(jiffies + IEEE80211_CONNECTION_IDLE_TIME)); + ieee80211_sta_reset_conn_monitor(sdata); } static void ieee80211_mgd_probe_ap_send(struct ieee80211_sub_if_data *sdata) { struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; const u8 *ssid; + u8 *dst = ifmgd->associated->bssid; + u8 unicast_limit = max(1, IEEE80211_MAX_PROBE_TRIES - 3); + + /* + * Try sending broadcast probe requests for the last three + * probe requests after the first ones failed since some + * buggy APs only support broadcast probe requests. + */ + if (ifmgd->probe_send_count >= unicast_limit) + dst = NULL; ssid = ieee80211_bss_get_ie(ifmgd->associated, WLAN_EID_SSID); - ieee80211_send_probe_req(sdata, ifmgd->associated->bssid, - ssid + 2, ssid[1], NULL, 0); + ieee80211_send_probe_req(sdata, dst, ssid + 2, ssid[1], NULL, 0); ifmgd->probe_send_count++; ifmgd->probe_timeout = jiffies + IEEE80211_PROBE_WAIT; @@ -1210,7 +1228,7 @@ rates = 0; basic_rates = 0; - sband = local->hw.wiphy->bands[local->hw.conf.channel->band]; + sband = local->hw.wiphy->bands[wk->chan->band]; for (i = 0; i < elems.supp_rates_len; i++) { int rate = (elems.supp_rates[i] & 0x7f) * 5; @@ -1246,11 +1264,11 @@ } } - sta->sta.supp_rates[local->hw.conf.channel->band] = rates; + sta->sta.supp_rates[wk->chan->band] = rates; sdata->vif.bss_conf.basic_rates = basic_rates; /* cf. IEEE 802.11 9.2.12 */ - if (local->hw.conf.channel->band == IEEE80211_BAND_2GHZ && + if (wk->chan->band == IEEE80211_BAND_2GHZ && have_higher_than_11mbit) sdata->flags |= IEEE80211_SDATA_OPERATING_GMODE; else @@ -1310,7 +1328,7 @@ * Also start the timer that will detect beacon loss. */ ieee80211_sta_rx_notify(sdata, (struct ieee80211_hdr *)mgmt); - mod_beacon_timer(sdata); + ieee80211_sta_reset_beacon_monitor(sdata); return true; } @@ -1413,7 +1431,7 @@ * we have or will be receiving any beacons or data, so let's * schedule the timers again, just in case. */ - mod_beacon_timer(sdata); + ieee80211_sta_reset_beacon_monitor(sdata); mod_timer(&ifmgd->conn_mon_timer, round_jiffies_up(jiffies + @@ -1488,7 +1506,7 @@ ifmgd->last_beacon_signal = rx_status->signal; if (ifmgd->flags & IEEE80211_STA_RESET_SIGNAL_AVE) { ifmgd->flags &= ~IEEE80211_STA_RESET_SIGNAL_AVE; - ifmgd->ave_beacon_signal = rx_status->signal; + ifmgd->ave_beacon_signal = rx_status->signal * 16; ifmgd->last_cqm_event_signal = 0; } else { ifmgd->ave_beacon_signal = @@ -1536,7 +1554,7 @@ * Push the beacon loss detection into the future since * we are processing a beacon from the AP just now. */ - mod_beacon_timer(sdata); + ieee80211_sta_reset_beacon_monitor(sdata); ncrc = crc32_be(0, (void *)&mgmt->u.beacon.beacon_int, 4); ncrc = ieee802_11_parse_elems_crc(mgmt->u.beacon.variable, --- linux-2.6.35.orig/net/mac80211/offchannel.c +++ linux-2.6.35/net/mac80211/offchannel.c @@ -22,12 +22,16 @@ static void ieee80211_offchannel_ps_enable(struct ieee80211_sub_if_data *sdata) { struct ieee80211_local *local = sdata->local; + struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; local->offchannel_ps_enabled = false; /* FIXME: what to do when local->pspolling is true? */ del_timer_sync(&local->dynamic_ps_timer); + del_timer_sync(&ifmgd->bcn_mon_timer); + del_timer_sync(&ifmgd->conn_mon_timer); + cancel_work_sync(&local->dynamic_ps_enable_work); if (local->hw.conf.flags & IEEE80211_CONF_PS) { @@ -85,6 +89,9 @@ mod_timer(&local->dynamic_ps_timer, jiffies + msecs_to_jiffies(local->hw.conf.dynamic_ps_timeout)); } + + ieee80211_sta_reset_beacon_monitor(sdata); + ieee80211_sta_reset_conn_monitor(sdata); } void ieee80211_offchannel_stop_beaconing(struct ieee80211_local *local) --- linux-2.6.35.orig/net/mac80211/rx.c +++ linux-2.6.35/net/mac80211/rx.c @@ -1710,6 +1710,8 @@ if (!fwd_skb && net_ratelimit()) printk(KERN_DEBUG "%s: failed to clone mesh frame\n", sdata->name); + if (!fwd_skb) + goto out; fwd_hdr = (struct ieee80211_hdr *) fwd_skb->data; memcpy(fwd_hdr->addr2, sdata->vif.addr, ETH_ALEN); @@ -1747,6 +1749,7 @@ } } + out: if (is_multicast_ether_addr(hdr->addr1) || sdata->dev->flags & IFF_PROMISC) return RX_CONTINUE; @@ -2156,9 +2159,6 @@ struct net_device *prev_dev = NULL; struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb); - if (status->flag & RX_FLAG_INTERNAL_CMTR) - goto out_free_skb; - if (skb_headroom(skb) < sizeof(*rthdr) && pskb_expand_head(skb, sizeof(*rthdr), 0, GFP_ATOMIC)) goto out_free_skb; @@ -2217,7 +2217,6 @@ } else goto out_free_skb; - status->flag |= RX_FLAG_INTERNAL_CMTR; return; out_free_skb: --- linux-2.6.35.orig/net/mac80211/main.c +++ linux-2.6.35/net/mac80211/main.c @@ -106,7 +106,8 @@ if (scan_chan) { chan = scan_chan; channel_type = NL80211_CHAN_NO_HT; - } else if (local->tmp_channel) { + } else if (local->tmp_channel && + local->oper_channel != local->tmp_channel) { chan = scan_chan = local->tmp_channel; channel_type = local->tmp_channel_type; } else { @@ -659,6 +660,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/rate.c +++ linux-2.6.35/net/mac80211/rate.c @@ -326,6 +326,9 @@ * if needed. */ for (i = 0; i < IEEE80211_TX_MAX_RATES; i++) { + /* Skip invalid rates */ + if (info->control.rates[i].idx < 0) + break; /* Rate masking supports only legacy rates for now */ if (info->control.rates[i].flags & IEEE80211_TX_RC_MCS) continue; --- linux-2.6.35.orig/net/mac80211/cfg.c +++ linux-2.6.35/net/mac80211/cfg.c @@ -639,6 +639,7 @@ struct sta_info *sta, struct station_parameters *params) { + unsigned long flags; u32 rates; int i, j; struct ieee80211_supported_band *sband; @@ -647,7 +648,7 @@ sband = local->hw.wiphy->bands[local->oper_channel->band]; - spin_lock_bh(&sta->lock); + spin_lock_irqsave(&sta->flaglock, flags); mask = params->sta_flags_mask; set = params->sta_flags_set; @@ -674,7 +675,7 @@ if (set & BIT(NL80211_STA_FLAG_MFP)) sta->flags |= WLAN_STA_MFP; } - spin_unlock_bh(&sta->lock); + spin_unlock_irqrestore(&sta->flaglock, flags); /* * cfg80211 validates this (1-2007) and allows setting the AID --- linux-2.6.35.orig/net/mac80211/status.c +++ linux-2.6.35/net/mac80211/status.c @@ -58,6 +58,7 @@ info->control.vif = &sta->sdata->vif; info->flags |= IEEE80211_TX_INTFL_NEED_TXPROCESSING | IEEE80211_TX_INTFL_RETRANSMISSION; + info->flags &= ~IEEE80211_TX_TEMPORARY_FLAGS; sta->tx_filtered_count++; --- 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/mac80211/ieee80211_i.h +++ linux-2.6.35/net/mac80211/ieee80211_i.h @@ -1002,6 +1002,8 @@ u64 timestamp); void ieee80211_sta_quiesce(struct ieee80211_sub_if_data *sdata); void ieee80211_sta_restart(struct ieee80211_sub_if_data *sdata); +void ieee80211_sta_reset_conn_monitor(struct ieee80211_sub_if_data *sdata); +void ieee80211_sta_reset_beacon_monitor(struct ieee80211_sub_if_data *sdata); /* IBSS code */ void ieee80211_ibss_notify_scan_completed(struct ieee80211_local *local); --- linux-2.6.35.orig/net/mac80211/ibss.c +++ linux-2.6.35/net/mac80211/ibss.c @@ -427,6 +427,7 @@ if (!sta) return NULL; + sta->last_rx = jiffies; set_sta_flags(sta, WLAN_STA_AUTHORIZED); /* make sure mandatory rates are always added */ --- linux-2.6.35.orig/net/mac80211/agg-tx.c +++ linux-2.6.35/net/mac80211/agg-tx.c @@ -128,6 +128,7 @@ int ___ieee80211_stop_tx_ba_session(struct sta_info *sta, u16 tid, enum ieee80211_back_parties initiator) { + struct tid_ampdu_tx *tid_tx = sta->ampdu_mlme.tid_tx[tid]; struct ieee80211_local *local = sta->local; int ret; u8 *state; @@ -137,6 +138,8 @@ sta->sta.addr, tid); #endif /* CONFIG_MAC80211_HT_DEBUG */ + del_timer(&tid_tx->addba_resp_timer); + state = &sta->ampdu_mlme.tid_state_tx[tid]; if (*state == HT_AGG_STATE_OPERATIONAL) --- linux-2.6.35.orig/net/mac80211/tx.c +++ linux-2.6.35/net/mac80211/tx.c @@ -1668,7 +1668,7 @@ { struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); struct ieee80211_local *local = sdata->local; - struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); + struct ieee80211_tx_info *info; int ret = NETDEV_TX_BUSY, head_need; u16 ethertype, hdrlen, meshhdrlen = 0; __le16 fc; @@ -1679,15 +1679,13 @@ int nh_pos, h_pos; struct sta_info *sta = NULL; u32 sta_flags = 0; + struct sk_buff *tmp_skb; if (unlikely(skb->len < ETH_HLEN)) { ret = NETDEV_TX_OK; goto fail; } - nh_pos = skb_network_header(skb) - skb->data; - h_pos = skb_transport_header(skb) - skb->data; - /* convert Ethernet header to proper 802.11 header (based on * operation mode) */ ethertype = (skb->data[12] << 8) | skb->data[13]; @@ -1859,6 +1857,20 @@ goto fail; } + /* + * If the skb is shared we need to obtain our own copy. + */ + if (skb_shared(skb)) { + tmp_skb = skb; + skb = skb_copy(skb, GFP_ATOMIC); + kfree_skb(tmp_skb); + + if (!skb) { + ret = NETDEV_TX_OK; + goto fail; + } + } + hdr.frame_control = fc; hdr.duration_id = 0; hdr.seq_ctrl = 0; @@ -1877,6 +1889,9 @@ encaps_len = 0; } + nh_pos = skb_network_header(skb) - skb->data; + h_pos = skb_transport_header(skb) - skb->data; + skb_pull(skb, skip_header_bytes); nh_pos -= skip_header_bytes; h_pos -= skip_header_bytes; @@ -1941,6 +1956,7 @@ skb_set_network_header(skb, nh_pos); skb_set_transport_header(skb, h_pos); + info = IEEE80211_SKB_CB(skb); memset(info, 0, sizeof(*info)); dev->trans_start = jiffies; --- 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/route.c +++ linux-2.6.35/net/ipv6/route.c @@ -1559,14 +1559,13 @@ * i.e. Path MTU discovery */ -void rt6_pmtu_discovery(struct in6_addr *daddr, struct in6_addr *saddr, - struct net_device *dev, u32 pmtu) +static void rt6_do_pmtu_disc(struct in6_addr *daddr, struct in6_addr *saddr, + struct net *net, u32 pmtu, int ifindex) { struct rt6_info *rt, *nrt; - struct net *net = dev_net(dev); int allfrag = 0; - rt = rt6_lookup(net, daddr, saddr, dev->ifindex, 0); + rt = rt6_lookup(net, daddr, saddr, ifindex, 0); if (rt == NULL) return; @@ -1634,6 +1633,27 @@ dst_release(&rt->u.dst); } +void rt6_pmtu_discovery(struct in6_addr *daddr, struct in6_addr *saddr, + struct net_device *dev, u32 pmtu) +{ + struct net *net = dev_net(dev); + + /* + * RFC 1981 states that a node "MUST reduce the size of the packets it + * is sending along the path" that caused the Packet Too Big message. + * Since it's not possible in the general case to determine which + * interface was used to send the original packet, we update the MTU + * on the interface that will be used to send future packets. We also + * update the MTU on the interface that received the Packet Too Big in + * case the original packet was forced out that interface with + * SO_BINDTODEVICE or similar. This is the next best thing to the + * correct behaviour, which would be to update the MTU on all + * interfaces. + */ + rt6_do_pmtu_disc(daddr, saddr, net, pmtu, 0); + rt6_do_pmtu_disc(daddr, saddr, net, pmtu, dev->ifindex); +} + /* * Misc support functions */ --- linux-2.6.35.orig/net/ipv6/addrconf.c +++ linux-2.6.35/net/ipv6/addrconf.c @@ -1424,8 +1424,10 @@ { struct inet6_dev *idev = ifp->idev; - if (addrconf_dad_end(ifp)) + if (addrconf_dad_end(ifp)) { + in6_ifa_put(ifp); return; + } if (net_ratelimit()) printk(KERN_INFO "%s: IPv6 duplicate address %pI6c detected!\n", --- linux-2.6.35.orig/net/ipv6/ip6_output.c +++ linux-2.6.35/net/ipv6/ip6_output.c @@ -639,7 +639,7 @@ if (skb_has_frags(skb)) { int first_len = skb_pagelen(skb); - int truesizes = 0; + struct sk_buff *frag2; if (first_len - hlen > mtu || ((first_len - hlen) & 7) || @@ -651,18 +651,18 @@ if (frag->len > mtu || ((frag->len & 7) && frag->next) || skb_headroom(frag) < hlen) - goto slow_path; + goto slow_path_clean; /* Partially cloned skb? */ if (skb_shared(frag)) - goto slow_path; + goto slow_path_clean; BUG_ON(frag->sk); if (skb->sk) { frag->sk = skb->sk; frag->destructor = sock_wfree; - truesizes += frag->truesize; } + skb->truesize -= frag->truesize; } err = 0; @@ -693,7 +693,6 @@ first_len = skb_pagelen(skb); skb->data_len = first_len - skb_headlen(skb); - skb->truesize -= truesizes; skb->len = first_len; ipv6_hdr(skb)->payload_len = htons(first_len - sizeof(struct ipv6hdr)); @@ -756,6 +755,15 @@ IPSTATS_MIB_FRAGFAILS); dst_release(&rt->u.dst); return err; + +slow_path_clean: + skb_walk_frags(skb, frag2) { + if (frag2 == frag) + break; + frag2->sk = NULL; + frag2->destructor = NULL; + skb->truesize += frag2->truesize; + } } slow_path: --- 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/ax25/af_ax25.c +++ linux-2.6.35/net/ax25/af_ax25.c @@ -1392,6 +1392,7 @@ ax25_cb *ax25; int err = 0; + memset(fsa, 0, sizeof(*fsa)); lock_sock(sk); ax25 = ax25_sk(sk); @@ -1403,7 +1404,6 @@ fsa->fsa_ax25.sax25_family = AF_AX25; fsa->fsa_ax25.sax25_call = ax25->dest_addr; - fsa->fsa_ax25.sax25_ndigis = 0; if (ax25->digipeat != NULL) { ndigi = ax25->digipeat->ndigi; --- 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; @@ -118,7 +125,7 @@ struct list_head tx_ops; unsigned long dropped_usr_msgs; struct proc_dir_entry *bcm_proc_read; - char procname [9]; /* pointer printed in ASCII with \0 */ + char procname [20]; /* pointer printed in ASCII with \0 */ }; static inline struct bcm_sock *bcm_sk(const struct sock *sk) @@ -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/iriap.c +++ linux-2.6.35/net/irda/iriap.c @@ -502,7 +502,8 @@ IRDA_DEBUG(4, "%s(), strlen=%d\n", __func__, value_len); /* Make sure the string is null-terminated */ - fp[n+value_len] = 0x00; + if (n + value_len < skb->len) + fp[n + value_len] = 0x00; IRDA_DEBUG(4, "Got string %s\n", fp+n); /* Will truncate to IAS_MAX_STRING bytes */ --- linux-2.6.35.orig/net/irda/parameters.c +++ linux-2.6.35/net/irda/parameters.c @@ -298,6 +298,8 @@ p.pi = pi; /* In case handler needs to know */ p.pl = buf[1]; /* Extract length of value */ + if (p.pl > 32) + p.pl = 32; IRDA_DEBUG(2, "%s(), pi=%#x, pl=%d\n", __func__, p.pi, p.pl); @@ -318,7 +320,7 @@ (__u8) str[0], (__u8) str[1]); /* Null terminate string */ - str[p.pl+1] = '\0'; + str[p.pl] = '\0'; p.pv.c = str; /* Handler will need to take a copy */ --- 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/xfrm4_policy.c +++ linux-2.6.35/net/ipv4/xfrm4_policy.c @@ -61,7 +61,7 @@ static int xfrm4_get_tos(struct flowi *fl) { - return fl->fl4_tos; + return IPTOS_RT_MASK & fl->fl4_tos; /* Strip ECN bits */ } static int xfrm4_init_path(struct xfrm_dst *path, struct dst_entry *dst, --- 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, @@ -2123,12 +2167,14 @@ udp_table_init(&udp_table, "UDP"); /* Set the pressure threshold up by the same strategy of TCP. It is a * fraction of global memory that is up to 1/2 at 256 MB, decreasing - * toward zero with the amount of memory, with a floor of 128 pages. + * toward zero with the amount of memory, with a floor of 128 pages, + * and a ceiling that prevents an integer overflow. */ nr_pages = totalram_pages - totalhigh_pages; limit = min(nr_pages, 1UL<<(28-PAGE_SHIFT)) >> (20-PAGE_SHIFT); limit = (limit * (nr_pages >> (20-PAGE_SHIFT))) >> (PAGE_SHIFT-11); limit = max(limit, 128UL); + limit = min(limit, INT_MAX * 4UL / 3 / 2); sysctl_udp_mem[0] = limit / 4 * 3; sysctl_udp_mem[1] = limit; sysctl_udp_mem[2] = sysctl_udp_mem[0] * 2; --- 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/inet_diag.c +++ linux-2.6.35/net/ipv4/inet_diag.c @@ -490,9 +490,11 @@ { struct inet_diag_req *r = NLMSG_DATA(cb->nlh); - if (cb->nlh->nlmsg_len > 4 + NLMSG_SPACE(sizeof(*r))) { + if (nlmsg_attrlen(cb->nlh, sizeof(*r))) { struct inet_diag_entry entry; - struct rtattr *bc = (struct rtattr *)(r + 1); + const struct nlattr *bc = nlmsg_find_attr(cb->nlh, + sizeof(*r), + INET_DIAG_REQ_BYTECODE); struct inet_sock *inet = inet_sk(sk); entry.family = sk->sk_family; @@ -512,7 +514,7 @@ entry.dport = ntohs(inet->inet_dport); entry.userlocks = sk->sk_userlocks; - if (!inet_diag_bc_run(RTA_DATA(bc), RTA_PAYLOAD(bc), &entry)) + if (!inet_diag_bc_run(nla_data(bc), nla_len(bc), &entry)) return 0; } @@ -527,9 +529,11 @@ { struct inet_diag_req *r = NLMSG_DATA(cb->nlh); - if (cb->nlh->nlmsg_len > 4 + NLMSG_SPACE(sizeof(*r))) { + if (nlmsg_attrlen(cb->nlh, sizeof(*r))) { struct inet_diag_entry entry; - struct rtattr *bc = (struct rtattr *)(r + 1); + const struct nlattr *bc = nlmsg_find_attr(cb->nlh, + sizeof(*r), + INET_DIAG_REQ_BYTECODE); entry.family = tw->tw_family; #if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) @@ -548,7 +552,7 @@ entry.dport = ntohs(tw->tw_dport); entry.userlocks = 0; - if (!inet_diag_bc_run(RTA_DATA(bc), RTA_PAYLOAD(bc), &entry)) + if (!inet_diag_bc_run(nla_data(bc), nla_len(bc), &entry)) return 0; } @@ -618,7 +622,7 @@ struct inet_diag_req *r = NLMSG_DATA(cb->nlh); struct inet_connection_sock *icsk = inet_csk(sk); struct listen_sock *lopt; - struct rtattr *bc = NULL; + const struct nlattr *bc = NULL; struct inet_sock *inet = inet_sk(sk); int j, s_j; int reqnum, s_reqnum; @@ -638,8 +642,9 @@ if (!lopt || !lopt->qlen) goto out; - if (cb->nlh->nlmsg_len > 4 + NLMSG_SPACE(sizeof(*r))) { - bc = (struct rtattr *)(r + 1); + if (nlmsg_attrlen(cb->nlh, sizeof(*r))) { + bc = nlmsg_find_attr(cb->nlh, sizeof(*r), + INET_DIAG_REQ_BYTECODE); entry.sport = inet->inet_num; entry.userlocks = sk->sk_userlocks; } @@ -672,8 +677,8 @@ &ireq->rmt_addr; entry.dport = ntohs(ireq->rmt_port); - if (!inet_diag_bc_run(RTA_DATA(bc), - RTA_PAYLOAD(bc), &entry)) + if (!inet_diag_bc_run(nla_data(bc), + nla_len(bc), &entry)) continue; } --- linux-2.6.35.orig/net/ipv4/tcp_ipv4.c +++ linux-2.6.35/net/ipv4/tcp_ipv4.c @@ -411,6 +411,9 @@ !icsk->icsk_backoff) break; + if (sock_owned_by_user(sk)) + break; + icsk->icsk_backoff--; inet_csk(sk)->icsk_rto = __tcp_set_rto(tp) << icsk->icsk_backoff; @@ -425,11 +428,6 @@ if (remaining) { inet_csk_reset_xmit_timer(sk, ICSK_TIME_RETRANS, remaining, TCP_RTO_MAX); - } else if (sock_owned_by_user(sk)) { - /* RTO revert clocked out retransmission, - * but socket is locked. Will defer. */ - inet_csk_reset_xmit_timer(sk, ICSK_TIME_RETRANS, - HZ/20, TCP_RTO_MAX); } else { /* RTO revert clocked out retransmission. * Will retransmit now */ --- linux-2.6.35.orig/net/ipv4/ip_output.c +++ linux-2.6.35/net/ipv4/ip_output.c @@ -488,9 +488,8 @@ * we can switch to copy when see the first bad fragment. */ if (skb_has_frags(skb)) { - struct sk_buff *frag; + struct sk_buff *frag, *frag2; int first_len = skb_pagelen(skb); - int truesizes = 0; if (first_len - hlen > mtu || ((first_len - hlen) & 7) || @@ -503,18 +502,18 @@ if (frag->len > mtu || ((frag->len & 7) && frag->next) || skb_headroom(frag) < hlen) - goto slow_path; + goto slow_path_clean; /* Partially cloned skb? */ if (skb_shared(frag)) - goto slow_path; + goto slow_path_clean; BUG_ON(frag->sk); if (skb->sk) { frag->sk = skb->sk; frag->destructor = sock_wfree; } - truesizes += frag->truesize; + skb->truesize -= frag->truesize; } /* Everything is OK. Generate! */ @@ -524,7 +523,6 @@ frag = skb_shinfo(skb)->frag_list; skb_frag_list_init(skb); skb->data_len = first_len - skb_headlen(skb); - skb->truesize -= truesizes; skb->len = first_len; iph->tot_len = htons(first_len); iph->frag_off = htons(IP_MF); @@ -576,6 +574,15 @@ } IP_INC_STATS(dev_net(dev), IPSTATS_MIB_FRAGFAILS); return err; + +slow_path_clean: + skb_walk_frags(skb, frag2) { + if (frag2 == frag) + break; + frag2->sk = NULL; + frag2->destructor = NULL; + skb->truesize += frag2->truesize; + } } slow_path: --- linux-2.6.35.orig/net/ipv4/tcp_output.c +++ linux-2.6.35/net/ipv4/tcp_output.c @@ -237,11 +237,10 @@ /* when initializing use the value from init_rcv_wnd * rather than the default from above */ - if (init_rcv_wnd && - (*rcv_wnd > init_rcv_wnd * mss)) - *rcv_wnd = init_rcv_wnd * mss; - else if (*rcv_wnd > init_cwnd * mss) - *rcv_wnd = init_cwnd * mss; + if (init_rcv_wnd) + *rcv_wnd = min(*rcv_wnd, init_rcv_wnd * mss); + else + *rcv_wnd = min(*rcv_wnd, init_cwnd * mss); } /* Set the clamp no higher than max representable value */ @@ -391,27 +390,30 @@ */ static u8 tcp_cookie_size_check(u8 desired) { - if (desired > 0) { + int cookie_size; + + if (desired > 0) /* previously specified */ return desired; - } - if (sysctl_tcp_cookie_size <= 0) { + + cookie_size = ACCESS_ONCE(sysctl_tcp_cookie_size); + if (cookie_size <= 0) /* no default specified */ return 0; - } - if (sysctl_tcp_cookie_size <= TCP_COOKIE_MIN) { + + if (cookie_size <= TCP_COOKIE_MIN) /* value too small, specify minimum */ return TCP_COOKIE_MIN; - } - if (sysctl_tcp_cookie_size >= TCP_COOKIE_MAX) { + + if (cookie_size >= TCP_COOKIE_MAX) /* value too large, specify maximum */ return TCP_COOKIE_MAX; - } - if (0x1 & sysctl_tcp_cookie_size) { + + if (cookie_size & 1) /* 8-bit multiple, illegal, fix it */ - return (u8)(sysctl_tcp_cookie_size + 0x1); - } - return (u8)sysctl_tcp_cookie_size; + cookie_size++; + + return (u8)cookie_size; } /* Write previously computed TCP options to the packet. @@ -1517,6 +1519,7 @@ struct tcp_sock *tp = tcp_sk(sk); const struct inet_connection_sock *icsk = inet_csk(sk); u32 send_win, cong_win, limit, in_flight; + int win_divisor; if (TCP_SKB_CB(skb)->flags & TCPCB_FLAG_FIN) goto send_now; @@ -1548,13 +1551,14 @@ if ((skb != tcp_write_queue_tail(sk)) && (limit >= skb->len)) goto send_now; - if (sysctl_tcp_tso_win_divisor) { + win_divisor = ACCESS_ONCE(sysctl_tcp_tso_win_divisor); + if (win_divisor) { u32 chunk = min(tp->snd_wnd, tp->snd_cwnd * tp->mss_cache); /* If at least some fraction of a window is available, * just use it. */ - chunk /= sysctl_tcp_tso_win_divisor; + chunk /= win_divisor; if (limit >= chunk) goto send_now; } else { --- linux-2.6.35.orig/net/ipv4/tcp_input.c +++ linux-2.6.35/net/ipv4/tcp_input.c @@ -4041,6 +4041,8 @@ default: sk->sk_err = ECONNRESET; } + /* This barrier is coupled with smp_rmb() in tcp_poll() */ + smp_wmb(); if (!sock_flag(sk, SOCK_DEAD)) sk->sk_error_report(sk); --- linux-2.6.35.orig/net/ipv4/tcp.c +++ linux-2.6.35/net/ipv4/tcp.c @@ -388,8 +388,6 @@ */ mask = 0; - if (sk->sk_err) - mask = POLLERR; /* * POLLHUP is certainly not done right. But poll() doesn't @@ -453,11 +451,17 @@ 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; } + /* This barrier is coupled with smp_wmb() in tcp_reset() */ + smp_rmb(); + if (sk->sk_err) + mask |= POLLERR; + return mask; } @@ -2002,11 +2006,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 +2177,8 @@ GFP_KERNEL); if (cvp == NULL) return -ENOMEM; + + kref_init(&cvp->kref); } lock_sock(sk); tp->rx_opt.cookie_in_always = @@ -2190,12 +2193,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 +2211,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; @@ -2231,7 +2235,7 @@ /* Values greater than interface MTU won't take effect. However * at the point when this call is done we typically don't yet * know which interface is going to be used */ - if (val < 8 || val > MAX_TCP_WINDOW) { + if (val < TCP_MIN_MSS || val > MAX_TCP_WINDOW) { err = -EINVAL; break; } @@ -3193,7 +3197,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,31 +3246,23 @@ 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 - * memory, with a floor of 128 pages. + * memory, with a floor of 128 pages, and a ceiling that prevents an + * integer overflow. */ nr_pages = totalram_pages - totalhigh_pages; limit = min(nr_pages, 1UL<<(28-PAGE_SHIFT)) >> (20-PAGE_SHIFT); limit = (limit * (nr_pages >> (20-PAGE_SHIFT))) >> (PAGE_SHIFT-11); limit = max(limit, 128UL); + limit = min(limit, INT_MAX * 4UL / 3 / 2); sysctl_tcp_mem[0] = limit / 4 * 3; sysctl_tcp_mem[1] = limit; sysctl_tcp_mem[2] = sysctl_tcp_mem[0] * 2; --- 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"); @@ -136,13 +136,16 @@ /* This function calculates a "timeout" which is equivalent to the timeout of a * TCP connection after "boundary" unsuccessful, exponentially backed-off - * retransmissions with an initial RTO of TCP_RTO_MIN. + * retransmissions with an initial RTO of TCP_RTO_MIN or TCP_TIMEOUT_INIT if + * syn_set flag is set. */ static bool retransmits_timed_out(struct sock *sk, - unsigned int boundary) + unsigned int boundary, + bool syn_set) { unsigned int timeout, linear_backoff_thresh; unsigned int start_ts; + unsigned int rto_base = syn_set ? TCP_TIMEOUT_INIT : TCP_RTO_MIN; if (!inet_csk(sk)->icsk_retransmits) return false; @@ -152,12 +155,12 @@ else start_ts = tcp_sk(sk)->retrans_stamp; - linear_backoff_thresh = ilog2(TCP_RTO_MAX/TCP_RTO_MIN); + linear_backoff_thresh = ilog2(TCP_RTO_MAX/rto_base); if (boundary <= linear_backoff_thresh) - timeout = ((2 << boundary) - 1) * TCP_RTO_MIN; + timeout = ((2 << boundary) - 1) * rto_base; else - timeout = ((2 << linear_backoff_thresh) - 1) * TCP_RTO_MIN + + timeout = ((2 << linear_backoff_thresh) - 1) * rto_base + (boundary - linear_backoff_thresh) * TCP_RTO_MAX; return (tcp_time_stamp - start_ts) >= timeout; @@ -168,14 +171,15 @@ { struct inet_connection_sock *icsk = inet_csk(sk); int retry_until; - bool do_reset; + bool do_reset, syn_set = 0; if ((1 << sk->sk_state) & (TCPF_SYN_SENT | TCPF_SYN_RECV)) { if (icsk->icsk_retransmits) dst_negative_advice(sk); retry_until = icsk->icsk_syn_retries ? : sysctl_tcp_syn_retries; + syn_set = 1; } else { - if (retransmits_timed_out(sk, sysctl_tcp_retries1)) { + if (retransmits_timed_out(sk, sysctl_tcp_retries1, 0)) { /* Black hole detection */ tcp_mtu_probing(icsk, sk); @@ -188,14 +192,14 @@ retry_until = tcp_orphan_retries(sk, alive); do_reset = alive || - !retransmits_timed_out(sk, retry_until); + !retransmits_timed_out(sk, retry_until, 0); if (tcp_out_of_resources(sk, do_reset)) return 1; } } - if (retransmits_timed_out(sk, retry_until)) { + if (retransmits_timed_out(sk, retry_until, syn_set)) { /* Has it gone just too far? */ tcp_write_err(sk); return 1; @@ -437,7 +441,7 @@ icsk->icsk_rto = min(icsk->icsk_rto << 1, TCP_RTO_MAX); } inet_csk_reset_xmit_timer(sk, ICSK_TIME_RETRANS, icsk->icsk_rto, TCP_RTO_MAX); - if (retransmits_timed_out(sk, sysctl_tcp_retries1 + 1)) + if (retransmits_timed_out(sk, sysctl_tcp_retries1 + 1, 0)) __sk_dst_reset(sk); out:; --- 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 @@ -317,8 +317,9 @@ goto out; rc = -ENODEV; rtnl_lock(); + rcu_read_lock(); if (sk->sk_bound_dev_if) { - llc->dev = dev_get_by_index(&init_net, sk->sk_bound_dev_if); + llc->dev = dev_get_by_index_rcu(&init_net, sk->sk_bound_dev_if); if (llc->dev) { if (!addr->sllc_arphrd) addr->sllc_arphrd = llc->dev->type; @@ -329,13 +330,13 @@ !llc_mac_match(addr->sllc_mac, llc->dev->dev_addr)) { rc = -EINVAL; - dev_put(llc->dev); llc->dev = NULL; } } } else llc->dev = dev_getbyhwaddr(&init_net, addr->sllc_arphrd, addr->sllc_mac); + rcu_read_unlock(); rtnl_unlock(); if (!llc->dev) goto out; @@ -1024,7 +1025,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_multicast.c +++ linux-2.6.35/net/bridge/br_multicast.c @@ -437,7 +437,7 @@ ip6h = ipv6_hdr(skb); *(__force __be32 *)ip6h = htonl(0x60000000); - ip6h->payload_len = 8 + sizeof(*mldq); + ip6h->payload_len = htons(8 + sizeof(*mldq)); ip6h->nexthdr = IPPROTO_HOPOPTS; ip6h->hop_limit = 1; ipv6_addr_set(&ip6h->saddr, 0, 0, 0, 0); --- 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/netfilter/nf_conntrack_core.c +++ linux-2.6.35/net/netfilter/nf_conntrack_core.c @@ -1252,7 +1252,8 @@ if (!hash) { *vmalloced = 1; printk(KERN_WARNING "nf_conntrack: falling back to vmalloc.\n"); - hash = __vmalloc(sz, GFP_KERNEL | __GFP_ZERO, PAGE_KERNEL); + hash = __vmalloc(sz, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO, + PAGE_KERNEL); } if (hash && nulls) --- linux-2.6.35.orig/net/netfilter/xt_SECMARK.c +++ linux-2.6.35/net/netfilter/xt_SECMARK.c @@ -101,7 +101,7 @@ switch (info->mode) { case SECMARK_MODE_SEL: err = checkentry_selinux(info); - if (err <= 0) + if (err) return err; break; --- 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/wext-priv.c +++ linux-2.6.35/net/wireless/wext-priv.c @@ -152,7 +152,7 @@ } else if (!iwp->pointer) return -EFAULT; - extra = kmalloc(extra_size, GFP_KERNEL); + extra = kzalloc(extra_size, GFP_KERNEL); if (!extra) return -ENOMEM; --- linux-2.6.35.orig/net/wireless/nl80211.c +++ linux-2.6.35/net/wireless/nl80211.c @@ -758,11 +758,13 @@ result = get_rdev_dev_by_info_ifindex(info, &rdev, &netdev); if (result) - goto unlock; + goto unlock_rtnl; result = __nl80211_set_channel(rdev, netdev->ieee80211_ptr, info); - unlock: + dev_put(netdev); + cfg80211_unlock_rdev(rdev); + unlock_rtnl: rtnl_unlock(); return result; @@ -4909,7 +4911,7 @@ err = get_rdev_dev_by_info_ifindex(info, &rdev, &dev); if (err) - goto unlock_rdev; + goto unlock_rtnl; wdev = dev->ieee80211_ptr; @@ -4926,9 +4928,10 @@ err = rdev->ops->set_cqm_rssi_config(wdev->wiphy, dev, threshold, hysteresis); -unlock_rdev: + unlock_rdev: cfg80211_unlock_rdev(rdev); dev_put(dev); + unlock_rtnl: rtnl_unlock(); return err; --- linux-2.6.35.orig/net/wireless/chan.c +++ linux-2.6.35/net/wireless/chan.c @@ -43,6 +43,36 @@ return chan; } +static bool can_beacon_sec_chan(struct wiphy *wiphy, + struct ieee80211_channel *chan, + enum nl80211_channel_type channel_type) +{ + struct ieee80211_channel *sec_chan; + int diff; + + switch (channel_type) { + case NL80211_CHAN_HT40PLUS: + diff = 20; + case NL80211_CHAN_HT40MINUS: + diff = -20; + default: + return false; + } + + sec_chan = ieee80211_get_channel(wiphy, chan->center_freq + diff); + if (!sec_chan) + return false; + + /* we'll need a DFS capability later */ + if (sec_chan->flags & (IEEE80211_CHAN_DISABLED | + IEEE80211_CHAN_PASSIVE_SCAN | + IEEE80211_CHAN_NO_IBSS | + IEEE80211_CHAN_RADAR)) + return false; + + return true; +} + int cfg80211_set_freq(struct cfg80211_registered_device *rdev, struct wireless_dev *wdev, int freq, enum nl80211_channel_type channel_type) @@ -67,6 +97,27 @@ if (!chan) return -EINVAL; + /* Both channels should be able to initiate communication */ + if (wdev && (wdev->iftype == NL80211_IFTYPE_ADHOC || + wdev->iftype == NL80211_IFTYPE_AP || + wdev->iftype == NL80211_IFTYPE_AP_VLAN || + wdev->iftype == NL80211_IFTYPE_MESH_POINT)) { + switch (channel_type) { + case NL80211_CHAN_HT40PLUS: + case NL80211_CHAN_HT40MINUS: + if (!can_beacon_sec_chan(&rdev->wiphy, chan, + channel_type)) { + printk(KERN_DEBUG + "cfg80211: Secondary channel not " + "allowed to initiate communication\n"); + return -EINVAL; + } + break; + default: + break; + } + } + result = rdev->ops->set_channel(&rdev->wiphy, wdev ? wdev->netdev : NULL, chan, channel_type); --- 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); @@ -645,14 +650,14 @@ bss = container_of(pub, struct cfg80211_internal_bss, pub); spin_lock_bh(&dev->bss_lock); + if (!list_empty(&bss->list)) { + list_del_init(&bss->list); + dev->bss_generation++; + rb_erase(&bss->rbn, &dev->bss_tree); - list_del(&bss->list); - dev->bss_generation++; - rb_erase(&bss->rbn, &dev->bss_tree); - + kref_put(&bss->ref, bss_release); + } spin_unlock_bh(&dev->bss_lock); - - kref_put(&bss->ref, bss_release); } EXPORT_SYMBOL(cfg80211_unlink_bss); --- 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/reg.c +++ linux-2.6.35/net/wireless/reg.c @@ -1695,7 +1695,7 @@ return 0; return -EALREADY; } - return REG_INTERSECT; + return 0; case NL80211_REGDOM_SET_BY_DRIVER: if (last_request->initiator == NL80211_REGDOM_SET_BY_CORE) { if (regdom_changes(pending_request->alpha2)) --- 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/protocol.c +++ linux-2.6.35/net/sctp/protocol.c @@ -1161,7 +1161,8 @@ /* 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 - * memory, with a floor of 128 pages. + * memory, with a floor of 128 pages, and a ceiling that prevents an + * integer overflow. * Note this initalizes the data in sctpv6_prot too * Unabashedly stolen from tcp_init */ @@ -1169,6 +1170,7 @@ limit = min(nr_pages, 1UL<<(28-PAGE_SHIFT)) >> (20-PAGE_SHIFT); limit = (limit * (nr_pages >> (20-PAGE_SHIFT))) >> (PAGE_SHIFT-11); limit = max(limit, 128UL); + limit = min(limit, INT_MAX * 4UL / 3 / 2); sysctl_sctp_mem[0] = limit / 4 * 3; sysctl_sctp_mem[1] = limit; sysctl_sctp_mem[2] = sysctl_sctp_mem[0] * 2; --- 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/cls_cgroup.c +++ linux-2.6.35/net/sched/cls_cgroup.c @@ -34,8 +34,6 @@ .populate = cgrp_populate, #ifdef CONFIG_NET_CLS_CGROUP .subsys_id = net_cls_subsys_id, -#else -#define net_cls_subsys_id net_cls_subsys.subsys_id #endif .module = THIS_MODULE, }; --- 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/phonet/pep.c +++ linux-2.6.35/net/phonet/pep.c @@ -225,12 +225,13 @@ static int pipe_rcv_status(struct sock *sk, struct sk_buff *skb) { struct pep_sock *pn = pep_sk(sk); - struct pnpipehdr *hdr = pnp_hdr(skb); + struct pnpipehdr *hdr; int wake = 0; if (!pskb_may_pull(skb, sizeof(*hdr) + 4)) return -EINVAL; + hdr = pnp_hdr(skb); if (hdr->data[0] != PN_PEP_TYPE_COMMON) { LIMIT_NETDEBUG(KERN_DEBUG"Phonet unknown PEP type: %u\n", (unsigned)hdr->data[0]); --- linux-2.6.35.orig/net/rds/page.c +++ linux-2.6.35/net/rds/page.c @@ -57,30 +57,17 @@ unsigned long ret; void *addr; - if (to_user) + addr = kmap(page); + if (to_user) { rds_stats_add(s_copy_to_user, bytes); - else + ret = copy_to_user(ptr, addr + offset, bytes); + } else { rds_stats_add(s_copy_from_user, bytes); - - addr = kmap_atomic(page, KM_USER0); - if (to_user) - ret = __copy_to_user_inatomic(ptr, addr + offset, bytes); - else - ret = __copy_from_user_inatomic(addr + offset, ptr, bytes); - kunmap_atomic(addr, KM_USER0); - - if (ret) { - addr = kmap(page); - if (to_user) - ret = copy_to_user(ptr, addr + offset, bytes); - else - ret = copy_from_user(addr + offset, ptr, bytes); - kunmap(page); - if (ret) - return -EFAULT; + ret = copy_from_user(addr + offset, ptr, bytes); } + kunmap(page); - return 0; + return ret ? -EFAULT : 0; } EXPORT_SYMBOL_GPL(rds_page_copy_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/rds/rdma.c +++ linux-2.6.35/net/rds/rdma.c @@ -474,7 +474,7 @@ goto out; } - if (args->nr_local > (u64)UINT_MAX) { + if (args->nr_local > UIO_MAXIOV) { ret = -EMSGSIZE; goto out; } @@ -500,6 +500,17 @@ max_pages = max(nr, max_pages); nr_pages += nr; + + /* + * nr for one entry in limited to (UINT_MAX>>PAGE_SHIFT)+1 + * so nr_pages cannot overflow without becoming bigger than + * INT_MAX first. If nr cannot overflow then max_pages should + * be ok. + */ + if (nr_pages > INT_MAX) { + ret = -EINVAL; + goto out; + } } pages = kcalloc(max_pages, sizeof(struct page *), GFP_KERNEL); @@ -632,18 +643,32 @@ int rds_cmsg_rdma_args(struct rds_sock *rs, struct rds_message *rm, struct cmsghdr *cmsg) { + struct rds_rdma_args *args; struct rds_rdma_op *op; + int ret = 0; if (cmsg->cmsg_len < CMSG_LEN(sizeof(struct rds_rdma_args)) || - rm->m_rdma_op != NULL) - return -EINVAL; + rm->m_rdma_op != NULL) { + ret = -EINVAL; + goto out; + } + + args = CMSG_DATA(cmsg); + + if (args->nr_local > UIO_MAXIOV) { + ret = -EMSGSIZE; + goto out; + } op = rds_rdma_prepare(rs, CMSG_DATA(cmsg)); - if (IS_ERR(op)) - return PTR_ERR(op); + if (IS_ERR(op)) { + ret = PTR_ERR(op); + goto out; + } rds_stats_inc(s_send_rdma); rm->m_rdma_op = op; - return 0; +out: + return ret; } /* --- linux-2.6.35.orig/net/rose/af_rose.c +++ linux-2.6.35/net/rose/af_rose.c @@ -679,7 +679,7 @@ if (addr_len == sizeof(struct sockaddr_rose) && addr->srose_ndigis > 1) return -EINVAL; - if (addr->srose_ndigis > ROSE_MAX_DIGIS) + if ((unsigned int) addr->srose_ndigis > ROSE_MAX_DIGIS) return -EINVAL; if ((dev = rose_dev_get(&addr->srose_addr)) == NULL) { @@ -739,7 +739,7 @@ if (addr_len == sizeof(struct sockaddr_rose) && addr->srose_ndigis > 1) return -EINVAL; - if (addr->srose_ndigis > ROSE_MAX_DIGIS) + if ((unsigned int) addr->srose_ndigis > ROSE_MAX_DIGIS) return -EINVAL; /* Source + Destination digis should not exceed ROSE_MAX_DIGIS */ --- linux-2.6.35.orig/net/econet/af_econet.c +++ linux-2.6.35/net/econet/af_econet.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -276,12 +277,12 @@ #endif #ifdef CONFIG_ECONET_AUNUDP struct msghdr udpmsg; - struct iovec iov[msg->msg_iovlen+1]; + struct iovec iov[2]; struct aunhdr ah; struct sockaddr_in udpdest; __kernel_size_t size; - int i; mm_segment_t oldfs; + char *userbuf; #endif /* @@ -297,23 +298,14 @@ mutex_lock(&econet_mutex); - if (saddr == NULL) { - struct econet_sock *eo = ec_sk(sk); - - addr.station = eo->station; - addr.net = eo->net; - port = eo->port; - cb = eo->cb; - } else { - if (msg->msg_namelen < sizeof(struct sockaddr_ec)) { - mutex_unlock(&econet_mutex); - return -EINVAL; - } - addr.station = saddr->addr.station; - addr.net = saddr->addr.net; - port = saddr->port; - cb = saddr->cb; - } + if (saddr == NULL || msg->msg_namelen < sizeof(struct sockaddr_ec)) { + mutex_unlock(&econet_mutex); + return -EINVAL; + } + addr.station = saddr->addr.station; + addr.net = saddr->addr.net; + port = saddr->port; + cb = saddr->cb; /* Look for a device with the right network number. */ dev = net2dev_map[addr.net]; @@ -328,17 +320,17 @@ } } - if (len + 15 > dev->mtu) { - mutex_unlock(&econet_mutex); - return -EMSGSIZE; - } - if (dev->type == ARPHRD_ECONET) { /* Real hardware Econet. We're not worthy etc. */ #ifdef CONFIG_ECONET_NATIVE unsigned short proto = 0; int res; + if (len + 15 > dev->mtu) { + mutex_unlock(&econet_mutex); + return -EMSGSIZE; + } + dev_hold(dev); skb = sock_alloc_send_skb(sk, len+LL_ALLOCATED_SPACE(dev), @@ -351,7 +343,6 @@ eb = (struct ec_cb *)&skb->cb; - /* BUG: saddr may be NULL */ eb->cookie = saddr->cookie; eb->sec = *saddr; eb->sent = ec_tx_done; @@ -415,6 +406,11 @@ return -ENETDOWN; /* No socket - can't send */ } + if (len > 32768) { + err = -E2BIG; + goto error; + } + /* Make up a UDP datagram and hand it off to some higher intellect. */ memset(&udpdest, 0, sizeof(udpdest)); @@ -446,36 +442,26 @@ /* tack our header on the front of the iovec */ size = sizeof(struct aunhdr); - /* - * XXX: that is b0rken. We can't mix userland and kernel pointers - * in iovec, since on a lot of platforms copy_from_user() will - * *not* work with the kernel and userland ones at the same time, - * regardless of what we do with set_fs(). And we are talking about - * econet-over-ethernet here, so "it's only ARM anyway" doesn't - * apply. Any suggestions on fixing that code? -- AV - */ iov[0].iov_base = (void *)&ah; iov[0].iov_len = size; - for (i = 0; i < msg->msg_iovlen; i++) { - void __user *base = msg->msg_iov[i].iov_base; - size_t iov_len = msg->msg_iov[i].iov_len; - /* Check it now since we switch to KERNEL_DS later. */ - if (!access_ok(VERIFY_READ, base, iov_len)) { - mutex_unlock(&econet_mutex); - return -EFAULT; - } - iov[i+1].iov_base = base; - iov[i+1].iov_len = iov_len; - size += iov_len; + + userbuf = vmalloc(len); + if (userbuf == NULL) { + err = -ENOMEM; + goto error; } + iov[1].iov_base = userbuf; + iov[1].iov_len = len; + err = memcpy_fromiovec(userbuf, msg->msg_iov, len); + if (err) + goto error_free_buf; + /* Get a skbuff (no data, just holds our cb information) */ if ((skb = sock_alloc_send_skb(sk, 0, msg->msg_flags & MSG_DONTWAIT, - &err)) == NULL) { - mutex_unlock(&econet_mutex); - return err; - } + &err)) == NULL) + goto error_free_buf; eb = (struct ec_cb *)&skb->cb; @@ -491,7 +477,7 @@ udpmsg.msg_name = (void *)&udpdest; udpmsg.msg_namelen = sizeof(udpdest); udpmsg.msg_iov = &iov[0]; - udpmsg.msg_iovlen = msg->msg_iovlen + 1; + udpmsg.msg_iovlen = 2; udpmsg.msg_control = NULL; udpmsg.msg_controllen = 0; udpmsg.msg_flags=0; @@ -499,9 +485,13 @@ oldfs = get_fs(); set_fs(KERNEL_DS); /* More privs :-) */ err = sock_sendmsg(udpsock, &udpmsg, size); set_fs(oldfs); + +error_free_buf: + vfree(userbuf); #else err = -EPROTOTYPE; #endif + error: mutex_unlock(&econet_mutex); return err; @@ -671,6 +661,11 @@ err = 0; switch (cmd) { case SIOCSIFADDR: + if (!capable(CAP_NET_ADMIN)) { + err = -EPERM; + break; + } + edev = dev->ec_ptr; if (edev == NULL) { /* Magic up a new one. */ @@ -854,7 +849,11 @@ unsigned char stn = ntohl(ip->saddr) & 0xff; struct sock *sk; struct sk_buff *newskb; - struct ec_device *edev = skb->dev->ec_ptr; + struct dst_entry *dst = skb_dst(skb); + struct ec_device *edev = NULL; + + if (dst) + edev = dst->dev->ec_ptr; if (! edev) goto bad; --- linux-2.6.35.orig/net/packet/af_packet.c +++ linux-2.6.35/net/packet/af_packet.c @@ -1595,9 +1595,11 @@ err = -EINVAL; vnet_hdr_len = sizeof(vnet_hdr); - if ((len -= vnet_hdr_len) < 0) + if (len < vnet_hdr_len) goto out_free; + len -= vnet_hdr_len; + if (skb_is_gso(skb)) { struct skb_shared_info *sinfo = skb_shinfo(skb); @@ -1704,7 +1706,7 @@ rcu_read_lock(); dev = dev_get_by_index_rcu(sock_net(sk), pkt_sk(sk)->ifindex); if (dev) - strlcpy(uaddr->sa_data, dev->name, 15); + strncpy(uaddr->sa_data, dev->name, 14); else memset(uaddr->sa_data, 0, 14); rcu_read_unlock(); @@ -1727,6 +1729,7 @@ sll->sll_family = AF_PACKET; sll->sll_ifindex = po->ifindex; sll->sll_protocol = po->num; + sll->sll_pkttype = 0; rcu_read_lock(); dev = dev_get_by_index_rcu(sock_net(sk), po->ifindex); if (dev) { --- linux-2.6.35.orig/net/unix/garbage.c +++ linux-2.6.35/net/unix/garbage.c @@ -96,7 +96,7 @@ unsigned int unix_tot_inflight; -static struct sock *unix_get_socket(struct file *filp) +struct sock *unix_get_socket(struct file *filp) { struct sock *u_sock = NULL; struct inode *inode = filp->f_path.dentry->d_inode; @@ -259,9 +259,16 @@ } static bool gc_in_progress = false; +#define UNIX_INFLIGHT_TRIGGER_GC 16000 void wait_for_unix_gc(void) { + /* + * If number of inflight sockets is insane, + * force a garbage collect right now. + */ + if (unix_tot_inflight > UNIX_INFLIGHT_TRIGGER_GC && !gc_in_progress) + unix_gc(); wait_event(unix_gc_wait, gc_in_progress == false); } --- 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; @@ -1297,18 +1306,20 @@ int i; scm->fp = UNIXCB(skb).fp; - skb->destructor = sock_wfree; UNIXCB(skb).fp = NULL; for (i = scm->fp->count-1; i >= 0; i--) unix_notinflight(scm->fp->fp[i]); } -static void unix_destruct_fds(struct sk_buff *skb) +static void unix_destruct_scm(struct sk_buff *skb) { struct scm_cookie scm; memset(&scm, 0, sizeof(scm)); - unix_detach_fds(&scm, skb); + scm.pid = UNIXCB(skb).pid; + scm.cred = UNIXCB(skb).cred; + if (UNIXCB(skb).fp) + unix_detach_fds(&scm, skb); /* Alas, it calls VFS */ /* So fscking what? fput() had been SMP-safe since the last Summer */ @@ -1316,9 +1327,25 @@ sock_wfree(skb); } +#define MAX_RECURSION_LEVEL 4 + static int unix_attach_fds(struct scm_cookie *scm, struct sk_buff *skb) { int i; + unsigned char max_level = 0; + int unix_sock_count = 0; + + for (i = scm->fp->count - 1; i >= 0; i--) { + struct sock *sk = unix_get_socket(scm->fp->fp[i]); + + if (sk) { + unix_sock_count++; + max_level = max(max_level, + unix_sk(sk)->recursion_level); + } + } + if (unlikely(max_level > MAX_RECURSION_LEVEL)) + return -ETOOMANYREFS; /* * Need to duplicate file references for the sake of garbage @@ -1329,10 +1356,24 @@ if (!UNIXCB(skb).fp) return -ENOMEM; - for (i = scm->fp->count-1; i >= 0; i--) - unix_inflight(scm->fp->fp[i]); - skb->destructor = unix_destruct_fds; - return 0; + if (unix_sock_count) { + for (i = scm->fp->count - 1; i >= 0; i--) + unix_inflight(scm->fp->fp[i]); + } + return max_level; +} + +static int unix_scm_to_skb(struct scm_cookie *scm, struct sk_buff *skb, bool send_fds) +{ + int err = 0; + UNIXCB(skb).pid = get_pid(scm->pid); + UNIXCB(skb).cred = get_cred(scm->cred); + UNIXCB(skb).fp = NULL; + if (scm->fp && send_fds) + err = unix_attach_fds(scm, skb); + + skb->destructor = unix_destruct_scm; + return err; } /* @@ -1354,6 +1395,7 @@ struct sk_buff *skb; long timeo; struct scm_cookie tmp_scm; + int max_level; if (NULL == siocb->scm) siocb->scm = &tmp_scm; @@ -1391,12 +1433,10 @@ if (skb == NULL) goto out; - memcpy(UNIXCREDS(skb), &siocb->scm->creds, sizeof(struct ucred)); - if (siocb->scm->fp) { - err = unix_attach_fds(siocb->scm, skb); - if (err) - goto out_free; - } + err = unix_scm_to_skb(siocb->scm, skb, true); + if (err < 0) + goto out_free; + max_level = err + 1; unix_get_secdata(siocb->scm, skb); skb_reset_transport_header(skb); @@ -1476,6 +1516,8 @@ } skb_queue_tail(&other->sk_receive_queue, skb); + if (max_level > unix_sk(other)->recursion_level) + unix_sk(other)->recursion_level = max_level; unix_state_unlock(other); other->sk_data_ready(other, len); sock_put(other); @@ -1506,6 +1548,7 @@ int sent = 0; struct scm_cookie tmp_scm; bool fds_sent = false; + int max_level; if (NULL == siocb->scm) siocb->scm = &tmp_scm; @@ -1566,16 +1609,15 @@ */ size = min_t(int, size, skb_tailroom(skb)); - memcpy(UNIXCREDS(skb), &siocb->scm->creds, sizeof(struct ucred)); + /* Only send the fds in the first buffer */ - if (siocb->scm->fp && !fds_sent) { - err = unix_attach_fds(siocb->scm, skb); - if (err) { - kfree_skb(skb); - goto out_err; - } - fds_sent = true; + err = unix_scm_to_skb(siocb->scm, skb, !fds_sent); + if (err < 0) { + kfree_skb(skb); + goto out_err; } + max_level = err + 1; + fds_sent = true; err = memcpy_fromiovec(skb_put(skb, size), msg->msg_iov, size); if (err) { @@ -1590,6 +1632,8 @@ goto pipe_err_free; skb_queue_tail(&other->sk_receive_queue, skb); + if (max_level > unix_sk(other)->recursion_level) + unix_sk(other)->recursion_level = max_level; unix_state_unlock(other); other->sk_data_ready(other, size); sent += size; @@ -1692,7 +1736,7 @@ siocb->scm = &tmp_scm; memset(&tmp_scm, 0, sizeof(tmp_scm)); } - siocb->scm->creds = *UNIXCREDS(skb); + scm_set_cred(siocb->scm, UNIXCB(skb).pid, UNIXCB(skb).cred); unix_set_secdata(siocb->scm, skb); if (!(flags & MSG_PEEK)) { @@ -1806,6 +1850,7 @@ unix_state_lock(sk); skb = skb_dequeue(&sk->sk_receive_queue); if (skb == NULL) { + unix_sk(sk)->recursion_level = 0; if (copied >= target) goto unlock; @@ -1841,14 +1886,14 @@ if (check_creds) { /* Never glue messages from different writers */ - if (memcmp(UNIXCREDS(skb), &siocb->scm->creds, - sizeof(siocb->scm->creds)) != 0) { + if ((UNIXCB(skb).pid != siocb->scm->pid) || + (UNIXCB(skb).cred != siocb->scm->cred)) { skb_queue_head(&sk->sk_receive_queue, skb); break; } } else { /* Copy credentials */ - siocb->scm->creds = *UNIXCREDS(skb); + scm_set_cred(siocb->scm, UNIXCB(skb).pid, UNIXCB(skb).cred); check_creds = 1; } --- linux-2.6.35.orig/net/core/ethtool.c +++ linux-2.6.35/net/core/ethtool.c @@ -366,7 +366,7 @@ if (info.cmd == ETHTOOL_GRXCLSRLALL) { if (info.rule_cnt > 0) { if (info.rule_cnt <= KMALLOC_MAX_SIZE / sizeof(u32)) - rule_buf = kmalloc(info.rule_cnt * sizeof(u32), + rule_buf = kzalloc(info.rule_cnt * sizeof(u32), GFP_USER); if (!rule_buf) return -ENOMEM; @@ -482,7 +482,7 @@ gstrings.len = ret; - data = kmalloc(gstrings.len * ETH_GSTRING_LEN, GFP_USER); + data = kzalloc(gstrings.len * ETH_GSTRING_LEN, GFP_USER); if (!data) return -ENOMEM; @@ -719,7 +719,7 @@ if (regs.len > reglen) regs.len = reglen; - regbuf = kmalloc(reglen, GFP_USER); + regbuf = kzalloc(reglen, GFP_USER); if (!regbuf) return -ENOMEM; --- linux-2.6.35.orig/net/core/iovec.c +++ linux-2.6.35/net/core/iovec.c @@ -59,14 +59,13 @@ err = 0; for (ct = 0; ct < m->msg_iovlen; ct++) { - err += iov[ct].iov_len; - /* - * Goal is not to verify user data, but to prevent returning - * negative value, which is interpreted as errno. - * Overflow is still possible, but it is harmless. - */ - if (err < 0) - return -EMSGSIZE; + size_t len = iov[ct].iov_len; + + if (len > INT_MAX - err) { + len = INT_MAX - err; + iov[ct].iov_len = len; + } + err += len; } return err; --- linux-2.6.35.orig/net/core/scm.c +++ linux-2.6.35/net/core/scm.c @@ -170,6 +170,30 @@ err = scm_check_creds(&p->creds); if (err) goto error; + + if (pid_vnr(p->pid) != p->creds.pid) { + struct pid *pid; + err = -ESRCH; + pid = find_get_pid(p->creds.pid); + if (!pid) + goto error; + put_pid(p->pid); + p->pid = pid; + } + + if ((p->cred->euid != p->creds.uid) || + (p->cred->egid != p->creds.gid)) { + struct cred *cred; + err = -ENOMEM; + cred = prepare_creds(); + if (!cred) + goto error; + + cred->uid = cred->euid = p->creds.uid; + cred->gid = cred->egid = p->creds.uid; + put_cred(p->cred); + p->cred = cred; + } break; default: goto error; --- linux-2.6.35.orig/net/core/filter.c +++ linux-2.6.35/net/core/filter.c @@ -112,104 +112,106 @@ */ unsigned int sk_run_filter(struct sk_buff *skb, struct sock_filter *filter, int flen) { - struct sock_filter *fentry; /* We walk down these */ void *ptr; u32 A = 0; /* Accumulator */ u32 X = 0; /* Index Register */ u32 mem[BPF_MEMWORDS]; /* Scratch Memory Store */ + unsigned long memvalid = 0; u32 tmp; int k; int pc; + BUILD_BUG_ON(BPF_MEMWORDS > BITS_PER_LONG); /* * Process array of filter instructions. */ for (pc = 0; pc < flen; pc++) { - fentry = &filter[pc]; + const struct sock_filter *fentry = &filter[pc]; + u32 f_k = fentry->k; switch (fentry->code) { - case BPF_ALU|BPF_ADD|BPF_X: + case BPF_S_ALU_ADD_X: A += X; continue; - case BPF_ALU|BPF_ADD|BPF_K: - A += fentry->k; + case BPF_S_ALU_ADD_K: + A += f_k; continue; - case BPF_ALU|BPF_SUB|BPF_X: + case BPF_S_ALU_SUB_X: A -= X; continue; - case BPF_ALU|BPF_SUB|BPF_K: - A -= fentry->k; + case BPF_S_ALU_SUB_K: + A -= f_k; continue; - case BPF_ALU|BPF_MUL|BPF_X: + case BPF_S_ALU_MUL_X: A *= X; continue; - case BPF_ALU|BPF_MUL|BPF_K: - A *= fentry->k; + case BPF_S_ALU_MUL_K: + A *= f_k; continue; - case BPF_ALU|BPF_DIV|BPF_X: + case BPF_S_ALU_DIV_X: if (X == 0) return 0; A /= X; continue; - case BPF_ALU|BPF_DIV|BPF_K: - A /= fentry->k; + case BPF_S_ALU_DIV_K: + A /= f_k; continue; - case BPF_ALU|BPF_AND|BPF_X: + case BPF_S_ALU_AND_X: A &= X; continue; - case BPF_ALU|BPF_AND|BPF_K: - A &= fentry->k; + case BPF_S_ALU_AND_K: + A &= f_k; continue; - case BPF_ALU|BPF_OR|BPF_X: + case BPF_S_ALU_OR_X: A |= X; continue; - case BPF_ALU|BPF_OR|BPF_K: - A |= fentry->k; + case BPF_S_ALU_OR_K: + A |= f_k; continue; - case BPF_ALU|BPF_LSH|BPF_X: + case BPF_S_ALU_LSH_X: A <<= X; continue; - case BPF_ALU|BPF_LSH|BPF_K: - A <<= fentry->k; + case BPF_S_ALU_LSH_K: + A <<= f_k; continue; - case BPF_ALU|BPF_RSH|BPF_X: + case BPF_S_ALU_RSH_X: A >>= X; continue; - case BPF_ALU|BPF_RSH|BPF_K: - A >>= fentry->k; + case BPF_S_ALU_RSH_K: + A >>= f_k; continue; - case BPF_ALU|BPF_NEG: + case BPF_S_ALU_NEG: A = -A; continue; - case BPF_JMP|BPF_JA: - pc += fentry->k; + case BPF_S_JMP_JA: + pc += f_k; continue; - case BPF_JMP|BPF_JGT|BPF_K: - pc += (A > fentry->k) ? fentry->jt : fentry->jf; + case BPF_S_JMP_JGT_K: + pc += (A > f_k) ? fentry->jt : fentry->jf; continue; - case BPF_JMP|BPF_JGE|BPF_K: - pc += (A >= fentry->k) ? fentry->jt : fentry->jf; + case BPF_S_JMP_JGE_K: + pc += (A >= f_k) ? fentry->jt : fentry->jf; continue; - case BPF_JMP|BPF_JEQ|BPF_K: - pc += (A == fentry->k) ? fentry->jt : fentry->jf; + case BPF_S_JMP_JEQ_K: + pc += (A == f_k) ? fentry->jt : fentry->jf; continue; - case BPF_JMP|BPF_JSET|BPF_K: - pc += (A & fentry->k) ? fentry->jt : fentry->jf; + case BPF_S_JMP_JSET_K: + pc += (A & f_k) ? fentry->jt : fentry->jf; continue; - case BPF_JMP|BPF_JGT|BPF_X: + case BPF_S_JMP_JGT_X: pc += (A > X) ? fentry->jt : fentry->jf; continue; - case BPF_JMP|BPF_JGE|BPF_X: + case BPF_S_JMP_JGE_X: pc += (A >= X) ? fentry->jt : fentry->jf; continue; - case BPF_JMP|BPF_JEQ|BPF_X: + case BPF_S_JMP_JEQ_X: pc += (A == X) ? fentry->jt : fentry->jf; continue; - case BPF_JMP|BPF_JSET|BPF_X: + case BPF_S_JMP_JSET_X: pc += (A & X) ? fentry->jt : fentry->jf; continue; - case BPF_LD|BPF_W|BPF_ABS: - k = fentry->k; + case BPF_S_LD_W_ABS: + k = f_k; load_w: ptr = load_pointer(skb, k, 4, &tmp); if (ptr != NULL) { @@ -217,8 +219,8 @@ continue; } break; - case BPF_LD|BPF_H|BPF_ABS: - k = fentry->k; + case BPF_S_LD_H_ABS: + k = f_k; load_h: ptr = load_pointer(skb, k, 2, &tmp); if (ptr != NULL) { @@ -226,8 +228,8 @@ continue; } break; - case BPF_LD|BPF_B|BPF_ABS: - k = fentry->k; + case BPF_S_LD_B_ABS: + k = f_k; load_b: ptr = load_pointer(skb, k, 1, &tmp); if (ptr != NULL) { @@ -235,55 +237,59 @@ continue; } break; - case BPF_LD|BPF_W|BPF_LEN: + case BPF_S_LD_W_LEN: A = skb->len; continue; - case BPF_LDX|BPF_W|BPF_LEN: + case BPF_S_LDX_W_LEN: X = skb->len; continue; - case BPF_LD|BPF_W|BPF_IND: - k = X + fentry->k; + case BPF_S_LD_W_IND: + k = X + f_k; goto load_w; - case BPF_LD|BPF_H|BPF_IND: - k = X + fentry->k; + case BPF_S_LD_H_IND: + k = X + f_k; goto load_h; - case BPF_LD|BPF_B|BPF_IND: - k = X + fentry->k; + case BPF_S_LD_B_IND: + k = X + f_k; goto load_b; - case BPF_LDX|BPF_B|BPF_MSH: - ptr = load_pointer(skb, fentry->k, 1, &tmp); + case BPF_S_LDX_B_MSH: + ptr = load_pointer(skb, f_k, 1, &tmp); if (ptr != NULL) { X = (*(u8 *)ptr & 0xf) << 2; continue; } return 0; - case BPF_LD|BPF_IMM: - A = fentry->k; + case BPF_S_LD_IMM: + A = f_k; continue; - case BPF_LDX|BPF_IMM: - X = fentry->k; + case BPF_S_LDX_IMM: + X = f_k; continue; - case BPF_LD|BPF_MEM: - A = mem[fentry->k]; + case BPF_S_LD_MEM: + A = (memvalid & (1UL << f_k)) ? + mem[f_k] : 0; continue; - case BPF_LDX|BPF_MEM: - X = mem[fentry->k]; + case BPF_S_LDX_MEM: + X = (memvalid & (1UL << f_k)) ? + mem[f_k] : 0; continue; - case BPF_MISC|BPF_TAX: + case BPF_S_MISC_TAX: X = A; continue; - case BPF_MISC|BPF_TXA: + case BPF_S_MISC_TXA: A = X; continue; - case BPF_RET|BPF_K: - return fentry->k; - case BPF_RET|BPF_A: + case BPF_S_RET_K: + return f_k; + case BPF_S_RET_A: return A; - case BPF_ST: - mem[fentry->k] = A; - continue; - case BPF_STX: - mem[fentry->k] = X; + case BPF_S_ST: + memvalid |= 1UL << f_k; + mem[f_k] = A; + continue; + case BPF_S_STX: + memvalid |= 1UL << f_k; + mem[f_k] = X; continue; default: WARN_ON(1); @@ -390,53 +396,128 @@ /* Only allow valid instructions */ switch (ftest->code) { case BPF_ALU|BPF_ADD|BPF_K: + ftest->code = BPF_S_ALU_ADD_K; + break; case BPF_ALU|BPF_ADD|BPF_X: + ftest->code = BPF_S_ALU_ADD_X; + break; case BPF_ALU|BPF_SUB|BPF_K: + ftest->code = BPF_S_ALU_SUB_K; + break; case BPF_ALU|BPF_SUB|BPF_X: + ftest->code = BPF_S_ALU_SUB_X; + break; case BPF_ALU|BPF_MUL|BPF_K: + ftest->code = BPF_S_ALU_MUL_K; + break; case BPF_ALU|BPF_MUL|BPF_X: + ftest->code = BPF_S_ALU_MUL_X; + break; case BPF_ALU|BPF_DIV|BPF_X: + ftest->code = BPF_S_ALU_DIV_X; + break; case BPF_ALU|BPF_AND|BPF_K: + ftest->code = BPF_S_ALU_AND_K; + break; case BPF_ALU|BPF_AND|BPF_X: + ftest->code = BPF_S_ALU_AND_X; + break; case BPF_ALU|BPF_OR|BPF_K: + ftest->code = BPF_S_ALU_OR_K; + break; case BPF_ALU|BPF_OR|BPF_X: + ftest->code = BPF_S_ALU_OR_X; + break; case BPF_ALU|BPF_LSH|BPF_K: + ftest->code = BPF_S_ALU_LSH_K; + break; case BPF_ALU|BPF_LSH|BPF_X: + ftest->code = BPF_S_ALU_LSH_X; + break; case BPF_ALU|BPF_RSH|BPF_K: + ftest->code = BPF_S_ALU_RSH_K; + break; case BPF_ALU|BPF_RSH|BPF_X: + ftest->code = BPF_S_ALU_RSH_X; + break; case BPF_ALU|BPF_NEG: + ftest->code = BPF_S_ALU_NEG; + break; case BPF_LD|BPF_W|BPF_ABS: + ftest->code = BPF_S_LD_W_ABS; + break; case BPF_LD|BPF_H|BPF_ABS: + ftest->code = BPF_S_LD_H_ABS; + break; case BPF_LD|BPF_B|BPF_ABS: + ftest->code = BPF_S_LD_B_ABS; + break; case BPF_LD|BPF_W|BPF_LEN: + ftest->code = BPF_S_LD_W_LEN; + break; case BPF_LD|BPF_W|BPF_IND: + ftest->code = BPF_S_LD_W_IND; + break; case BPF_LD|BPF_H|BPF_IND: + ftest->code = BPF_S_LD_H_IND; + break; case BPF_LD|BPF_B|BPF_IND: + ftest->code = BPF_S_LD_B_IND; + break; case BPF_LD|BPF_IMM: + ftest->code = BPF_S_LD_IMM; + break; case BPF_LDX|BPF_W|BPF_LEN: + ftest->code = BPF_S_LDX_W_LEN; + break; case BPF_LDX|BPF_B|BPF_MSH: + ftest->code = BPF_S_LDX_B_MSH; + break; case BPF_LDX|BPF_IMM: + ftest->code = BPF_S_LDX_IMM; + break; case BPF_MISC|BPF_TAX: + ftest->code = BPF_S_MISC_TAX; + break; case BPF_MISC|BPF_TXA: + ftest->code = BPF_S_MISC_TXA; + break; case BPF_RET|BPF_K: + ftest->code = BPF_S_RET_K; + break; case BPF_RET|BPF_A: + ftest->code = BPF_S_RET_A; break; /* Some instructions need special checks */ - case BPF_ALU|BPF_DIV|BPF_K: /* check for division by zero */ + case BPF_ALU|BPF_DIV|BPF_K: if (ftest->k == 0) return -EINVAL; + ftest->code = BPF_S_ALU_DIV_K; break; + /* check for invalid memory addresses */ case BPF_LD|BPF_MEM: + if (ftest->k >= BPF_MEMWORDS) + return -EINVAL; + ftest->code = BPF_S_LD_MEM; + break; case BPF_LDX|BPF_MEM: + if (ftest->k >= BPF_MEMWORDS) + return -EINVAL; + ftest->code = BPF_S_LDX_MEM; + break; case BPF_ST: + if (ftest->k >= BPF_MEMWORDS) + return -EINVAL; + ftest->code = BPF_S_ST; + break; case BPF_STX: - /* check for invalid memory addresses */ if (ftest->k >= BPF_MEMWORDS) return -EINVAL; + ftest->code = BPF_S_STX; break; case BPF_JMP|BPF_JA: @@ -447,49 +528,77 @@ */ if (ftest->k >= (unsigned)(flen-pc-1)) return -EINVAL; + ftest->code = BPF_S_JMP_JA; break; case BPF_JMP|BPF_JEQ|BPF_K: + ftest->code = BPF_S_JMP_JEQ_K; + break; case BPF_JMP|BPF_JEQ|BPF_X: + ftest->code = BPF_S_JMP_JEQ_X; + break; case BPF_JMP|BPF_JGE|BPF_K: + ftest->code = BPF_S_JMP_JGE_K; + break; case BPF_JMP|BPF_JGE|BPF_X: + ftest->code = BPF_S_JMP_JGE_X; + break; case BPF_JMP|BPF_JGT|BPF_K: + ftest->code = BPF_S_JMP_JGT_K; + break; case BPF_JMP|BPF_JGT|BPF_X: + ftest->code = BPF_S_JMP_JGT_X; + break; case BPF_JMP|BPF_JSET|BPF_K: + ftest->code = BPF_S_JMP_JSET_K; + break; case BPF_JMP|BPF_JSET|BPF_X: + ftest->code = BPF_S_JMP_JSET_X; + break; + + default: + return -EINVAL; + } + /* for conditionals both must be safe */ + switch (ftest->code) { + case BPF_S_JMP_JEQ_K: + case BPF_S_JMP_JEQ_X: + case BPF_S_JMP_JGE_K: + case BPF_S_JMP_JGE_X: + case BPF_S_JMP_JGT_K: + case BPF_S_JMP_JGT_X: + case BPF_S_JMP_JSET_X: + case BPF_S_JMP_JSET_K: if (pc + ftest->jt + 1 >= flen || pc + ftest->jf + 1 >= flen) return -EINVAL; - break; + } + } + /* last instruction must be a RET code */ + switch (filter[flen - 1].code) { + case BPF_S_RET_K: + case BPF_S_RET_A: + return 0; + break; default: return -EINVAL; } - } - - return (BPF_CLASS(filter[flen - 1].code) == BPF_RET) ? 0 : -EINVAL; } EXPORT_SYMBOL(sk_chk_filter); /** - * sk_filter_rcu_release: Release a socket filter by rcu_head + * sk_filter_release_rcu - Release a socket filter by rcu_head * @rcu: rcu_head that contains the sk_filter to free */ -static void sk_filter_rcu_release(struct rcu_head *rcu) +void sk_filter_release_rcu(struct rcu_head *rcu) { struct sk_filter *fp = container_of(rcu, struct sk_filter, rcu); - sk_filter_release(fp); -} - -static void sk_filter_delayed_uncharge(struct sock *sk, struct sk_filter *fp) -{ - unsigned int size = sk_filter_len(fp); - - atomic_sub(size, &sk->sk_omem_alloc); - call_rcu_bh(&fp->rcu, sk_filter_rcu_release); + kfree(fp); } +EXPORT_SYMBOL(sk_filter_release_rcu); /** * sk_attach_filter - attach a socket filter @@ -534,7 +643,7 @@ rcu_read_unlock_bh(); if (old_fp) - sk_filter_delayed_uncharge(sk, old_fp); + sk_filter_uncharge(sk, old_fp); return 0; } EXPORT_SYMBOL_GPL(sk_attach_filter); @@ -548,7 +657,7 @@ filter = rcu_dereference_bh(sk->sk_filter); if (filter) { rcu_assign_pointer(sk->sk_filter, NULL); - sk_filter_delayed_uncharge(sk, filter); + sk_filter_uncharge(sk, filter); ret = 0; } rcu_read_unlock_bh(); --- linux-2.6.35.orig/net/core/stream.c +++ linux-2.6.35/net/core/stream.c @@ -144,10 +144,10 @@ set_bit(SOCK_NOSPACE, &sk->sk_socket->flags); sk->sk_write_pending++; - sk_wait_event(sk, ¤t_timeo, !sk->sk_err && - !(sk->sk_shutdown & SEND_SHUTDOWN) && - sk_stream_memory_free(sk) && - vm_wait); + sk_wait_event(sk, ¤t_timeo, sk->sk_err || + (sk->sk_shutdown & SEND_SHUTDOWN) || + (sk_stream_memory_free(sk) && + !vm_wait)); sk->sk_write_pending--; if (vm_wait) { --- linux-2.6.35.orig/net/core/sock.c +++ linux-2.6.35/net/core/sock.c @@ -110,6 +110,7 @@ #include #include #include +#include #include #include @@ -749,6 +750,20 @@ EXPORT_SYMBOL(sock_setsockopt); +void cred_to_ucred(struct pid *pid, const struct cred *cred, + struct ucred *ucred) +{ + ucred->pid = pid_vnr(pid); + ucred->uid = ucred->gid = -1; + if (cred) { + struct user_namespace *current_ns = current_user_ns(); + + ucred->uid = user_ns_map_uid(current_ns, cred, cred->euid); + ucred->gid = user_ns_map_gid(current_ns, cred, cred->egid); + } +} +EXPORT_SYMBOL_GPL(cred_to_ucred); + int sock_getsockopt(struct socket *sock, int level, int optname, char __user *optval, int __user *optlen) { --- 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/dst.c +++ linux-2.6.35/net/core/dst.c @@ -343,6 +343,7 @@ static struct notifier_block dst_dev_notifier = { .notifier_call = dst_dev_event, + .priority = -10, /* must be called after other network notifiers */ }; void __init dst_init(void) --- linux-2.6.35.orig/net/core/dev.c +++ linux-2.6.35/net/core/dev.c @@ -1491,7 +1491,7 @@ nf_reset(skb); if (!(dev->flags & IFF_UP) || - (skb->len > (dev->mtu + dev->hard_header_len))) { + (skb->len > (dev->mtu + dev->hard_header_len + VLAN_HLEN))) { kfree_skb(skb); return NET_RX_DROP; } @@ -1653,10 +1653,10 @@ static bool can_checksum_protocol(unsigned long features, __be16 protocol) { - return ((features & NETIF_F_GEN_CSUM) || - ((features & NETIF_F_IP_CSUM) && + return ((features & NETIF_F_NO_CSUM) || + ((features & NETIF_F_V4_CSUM) && protocol == htons(ETH_P_IP)) || - ((features & NETIF_F_IPV6_CSUM) && + ((features & NETIF_F_V6_CSUM) && protocol == htons(ETH_P_IPV6)) || ((features & NETIF_F_FCOE_CRC) && protocol == htons(ETH_P_FCOE))); @@ -2110,6 +2110,9 @@ illegal_highdma(dev, skb))); } +static DEFINE_PER_CPU(int, xmit_recursion); +#define RECURSION_LIMIT 10 + /** * dev_queue_xmit - transmit a buffer * @skb: buffer to transmit @@ -2194,10 +2197,15 @@ if (txq->xmit_lock_owner != cpu) { + if (__this_cpu_read(xmit_recursion) > RECURSION_LIMIT) + goto recursion_alert; + HARD_TX_LOCK(dev, txq, cpu); if (!netif_tx_queue_stopped(txq)) { + __this_cpu_inc(xmit_recursion); rc = dev_hard_start_xmit(skb, dev, txq); + __this_cpu_dec(xmit_recursion); if (dev_xmit_complete(rc)) { HARD_TX_UNLOCK(dev, txq); goto out; @@ -2209,7 +2217,9 @@ "queue packet!\n", dev->name); } else { /* Recursion is detected! It is possible, - * unfortunately */ + * unfortunately + */ +recursion_alert: if (net_ratelimit()) printk(KERN_CRIT "Dead loop on virtual device " "%s, fix it urgently!\n", dev->name); @@ -2504,6 +2514,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 +2524,7 @@ ret = enqueue_to_backlog(skb, cpu, &rflow->last_qtail); rcu_read_unlock(); + preempt_enable(); } #else { @@ -3064,7 +3076,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 +3145,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 +3163,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/decnet/af_decnet.c +++ linux-2.6.35/net/decnet/af_decnet.c @@ -1556,6 +1556,8 @@ if (r_len > sizeof(struct linkinfo_dn)) r_len = sizeof(struct linkinfo_dn); + memset(&link, 0, sizeof(link)); + switch(sock->state) { case SS_CONNECTING: link.idn_linkstate = LL_CONNECTING; --- linux-2.6.35.orig/net/tipc/subscr.h +++ linux-2.6.35/net/tipc/subscr.h @@ -53,6 +53,7 @@ * @nameseq_list: adjacent subscriptions in name sequence's subscription list * @subscription_list: adjacent subscriptions in subscriber's subscription list * @server_ref: object reference of server port associated with subscription + * @swap: indicates if subscriber uses opposite endianness in its messages * @evt: template for events generated by subscription */ @@ -65,6 +66,7 @@ struct list_head nameseq_list; struct list_head subscription_list; u32 server_ref; + int swap; struct tipc_event evt; }; --- linux-2.6.35.orig/net/tipc/subscr.c +++ linux-2.6.35/net/tipc/subscr.c @@ -76,6 +76,19 @@ static struct top_srv topsrv = { 0 }; /** + * htohl - convert value to endianness used by destination + * @in: value to convert + * @swap: non-zero if endianness must be reversed + * + * Returns converted value + */ + +static u32 htohl(u32 in, int swap) +{ + return swap ? swab32(in) : in; +} + +/** * subscr_send_event - send a message containing a tipc_event to the subscriber * * Note: Must not hold subscriber's server port lock, since tipc_send() will @@ -94,11 +107,11 @@ msg_sect.iov_base = (void *)&sub->evt; msg_sect.iov_len = sizeof(struct tipc_event); - sub->evt.event = htonl(event); - sub->evt.found_lower = htonl(found_lower); - sub->evt.found_upper = htonl(found_upper); - sub->evt.port.ref = htonl(port_ref); - sub->evt.port.node = htonl(node); + sub->evt.event = htohl(event, sub->swap); + sub->evt.found_lower = htohl(found_lower, sub->swap); + sub->evt.found_upper = htohl(found_upper, sub->swap); + sub->evt.port.ref = htohl(port_ref, sub->swap); + sub->evt.port.node = htohl(node, sub->swap); tipc_send(sub->server_ref, 1, &msg_sect); } @@ -274,29 +287,16 @@ { struct subscription *sub; struct subscription *sub_temp; - __u32 type, lower, upper, timeout, filter; int found = 0; /* Find first matching subscription, exit if not found */ - type = ntohl(s->seq.type); - lower = ntohl(s->seq.lower); - upper = ntohl(s->seq.upper); - timeout = ntohl(s->timeout); - filter = ntohl(s->filter) & ~TIPC_SUB_CANCEL; - list_for_each_entry_safe(sub, sub_temp, &subscriber->subscription_list, subscription_list) { - if ((type == sub->seq.type) && - (lower == sub->seq.lower) && - (upper == sub->seq.upper) && - (timeout == sub->timeout) && - (filter == sub->filter) && - !memcmp(s->usr_handle,sub->evt.s.usr_handle, - sizeof(s->usr_handle)) ){ - found = 1; - break; - } + if (!memcmp(s, &sub->evt.s, sizeof(struct tipc_subscr))) { + found = 1; + break; + } } if (!found) return; @@ -310,7 +310,7 @@ k_term_timer(&sub->timer); spin_lock_bh(subscriber->lock); } - dbg("Cancel: removing sub %u,%u,%u from subscriber %p list\n", + dbg("Cancel: removing sub %u,%u,%u from subscriber %x list\n", sub->seq.type, sub->seq.lower, sub->seq.upper, subscriber); subscr_del(sub); } @@ -325,10 +325,16 @@ struct subscriber *subscriber) { struct subscription *sub; + int swap; + + /* Determine subscriber's endianness */ + + swap = !(s->filter & (TIPC_SUB_PORTS | TIPC_SUB_SERVICE)); /* Detect & process a subscription cancellation request */ - if (ntohl(s->filter) & TIPC_SUB_CANCEL) { + if (s->filter & htohl(TIPC_SUB_CANCEL, swap)) { + s->filter &= ~htohl(TIPC_SUB_CANCEL, swap); subscr_cancel(s, subscriber); return NULL; } @@ -353,12 +359,13 @@ /* Initialize subscription object */ - sub->seq.type = ntohl(s->seq.type); - sub->seq.lower = ntohl(s->seq.lower); - sub->seq.upper = ntohl(s->seq.upper); - sub->timeout = ntohl(s->timeout); - sub->filter = ntohl(s->filter); - if ((sub->filter && (sub->filter != TIPC_SUB_PORTS)) || + sub->seq.type = htohl(s->seq.type, swap); + sub->seq.lower = htohl(s->seq.lower, swap); + sub->seq.upper = htohl(s->seq.upper, swap); + sub->timeout = htohl(s->timeout, swap); + sub->filter = htohl(s->filter, swap); + if ((!(sub->filter & TIPC_SUB_PORTS) == + !(sub->filter & TIPC_SUB_SERVICE)) || (sub->seq.lower > sub->seq.upper)) { warn("Subscription rejected, illegal request\n"); kfree(sub); @@ -369,6 +376,7 @@ INIT_LIST_HEAD(&sub->nameseq_list); list_add(&sub->subscription_list, &subscriber->subscription_list); sub->server_ref = subscriber->port_ref; + sub->swap = swap; memcpy(&sub->evt.s, s, sizeof(struct tipc_subscr)); atomic_inc(&topsrv.subscription_count); if (sub->timeout != TIPC_WAIT_FOREVER) { --- linux-2.6.35.orig/net/tipc/socket.c +++ linux-2.6.35/net/tipc/socket.c @@ -395,6 +395,7 @@ struct sockaddr_tipc *addr = (struct sockaddr_tipc *)uaddr; struct tipc_sock *tsock = tipc_sk(sock->sk); + memset(addr, 0, sizeof(*addr)); if (peer) { if ((sock->state != SS_CONNECTED) && ((peer != 2) || (sock->state != SS_DISCONNECTING))) --- 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/net/l2tp/l2tp_ip.c +++ linux-2.6.35/net/l2tp/l2tp_ip.c @@ -676,4 +676,8 @@ MODULE_AUTHOR("James Chapman "); MODULE_DESCRIPTION("L2TP over IP"); MODULE_VERSION("1.0"); -MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET, SOCK_DGRAM, IPPROTO_L2TP); + +/* Use the value of SOCK_DGRAM (2) directory, because __stringify does't like + * enums + */ +MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET, 2, IPPROTO_L2TP); --- 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); @@ -272,6 +273,7 @@ setup_thread_stack(tsk, orig); clear_user_return_notifier(tsk); + clear_tsk_need_resched(tsk); stackend = end_of_stack(tsk); *stackend = STACK_END_MAGIC; /* for overflow detection */ @@ -300,7 +302,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 +330,7 @@ if (retval) goto out; + prev = NULL; for (mpnt = oldmm->mmap; mpnt; mpnt = mpnt->vm_next) { struct file *file; @@ -359,7 +362,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 +395,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/user_namespace.c +++ linux-2.6.35/kernel/user_namespace.c @@ -9,6 +9,7 @@ #include #include #include +#include #include /* @@ -82,3 +83,46 @@ schedule_work(&ns->destroyer); } EXPORT_SYMBOL(free_user_ns); + +uid_t user_ns_map_uid(struct user_namespace *to, const struct cred *cred, uid_t uid) +{ + struct user_namespace *tmp; + + if (likely(to == cred->user->user_ns)) + return uid; + + + /* Is cred->user the creator of the target user_ns + * or the creator of one of it's parents? + */ + for ( tmp = to; tmp != &init_user_ns; + tmp = tmp->creator->user_ns ) { + if (cred->user == tmp->creator) { + return (uid_t)0; + } + } + + /* No useful relationship so no mapping */ + return overflowuid; +} + +gid_t user_ns_map_gid(struct user_namespace *to, const struct cred *cred, gid_t gid) +{ + struct user_namespace *tmp; + + if (likely(to == cred->user->user_ns)) + return gid; + + /* Is cred->user the creator of the target user_ns + * or the creator of one of it's parents? + */ + for ( tmp = to; tmp != &init_user_ns; + tmp = tmp->creator->user_ns ) { + if (cred->user == tmp->creator) { + return (gid_t)0; + } + } + + /* No useful relationship so no mapping */ + return overflowgid; +} --- 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 @@ -564,7 +564,7 @@ * A queue event has occurred, and we're going to schedule. In * this case, we can save a useless back to back clock update. */ - if (test_tsk_need_resched(p)) + if (rq->curr->se.on_rq && test_tsk_need_resched(rq->curr)) rq->skip_clock_update = 1; } @@ -721,7 +721,7 @@ size_t cnt, loff_t *ppos) { char buf[64]; - char *cmp = buf; + char *cmp; int neg = 0; int i; @@ -732,6 +732,7 @@ return -EFAULT; buf[cnt] = 0; + cmp = strstrip(buf); if (strncmp(buf, "NO_", 3) == 0) { neg = 1; @@ -739,9 +740,7 @@ } for (i = 0; sched_feat_names[i]; i++) { - int len = strlen(sched_feat_names[i]); - - if (strncmp(cmp, sched_feat_names[i], len) == 0) { + if (strcmp(cmp, sched_feat_names[i]) == 0) { if (neg) sysctl_sched_features &= ~(1UL << i); else @@ -1232,16 +1231,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) @@ -1840,12 +1829,6 @@ static void set_load_weight(struct task_struct *p) { - if (task_has_rt_policy(p)) { - p->se.load.weight = 0; - p->se.load.inv_weight = WMULT_CONST; - return; - } - /* * SCHED_IDLE tasks get minimal weight: */ @@ -2907,6 +2890,15 @@ return delta; } +static unsigned long +calc_load(unsigned long load, unsigned long exp, unsigned long active) +{ + load *= exp; + load += active * (FIXED_1 - exp); + load += 1UL << (FSHIFT - 1); + return load >> FSHIFT; +} + #ifdef CONFIG_NO_HZ /* * For NO_HZ we delay the active fold to the next LOAD_FREQ update. @@ -2936,6 +2928,128 @@ return delta; } + +/** + * fixed_power_int - compute: x^n, in O(log n) time + * + * @x: base of the power + * @frac_bits: fractional bits of @x + * @n: power to raise @x to. + * + * By exploiting the relation between the definition of the natural power + * function: x^n := x*x*...*x (x multiplied by itself for n times), and + * the binary encoding of numbers used by computers: n := \Sum n_i * 2^i, + * (where: n_i \elem {0, 1}, the binary vector representing n), + * we find: x^n := x^(\Sum n_i * 2^i) := \Prod x^(n_i * 2^i), which is + * of course trivially computable in O(log_2 n), the length of our binary + * vector. + */ +static unsigned long +fixed_power_int(unsigned long x, unsigned int frac_bits, unsigned int n) +{ + unsigned long result = 1UL << frac_bits; + + if (n) for (;;) { + if (n & 1) { + result *= x; + result += 1UL << (frac_bits - 1); + result >>= frac_bits; + } + n >>= 1; + if (!n) + break; + x *= x; + x += 1UL << (frac_bits - 1); + x >>= frac_bits; + } + + return result; +} + +/* + * a1 = a0 * e + a * (1 - e) + * + * a2 = a1 * e + a * (1 - e) + * = (a0 * e + a * (1 - e)) * e + a * (1 - e) + * = a0 * e^2 + a * (1 - e) * (1 + e) + * + * a3 = a2 * e + a * (1 - e) + * = (a0 * e^2 + a * (1 - e) * (1 + e)) * e + a * (1 - e) + * = a0 * e^3 + a * (1 - e) * (1 + e + e^2) + * + * ... + * + * an = a0 * e^n + a * (1 - e) * (1 + e + ... + e^n-1) [1] + * = a0 * e^n + a * (1 - e) * (1 - e^n)/(1 - e) + * = a0 * e^n + a * (1 - e^n) + * + * [1] application of the geometric series: + * + * n 1 - x^(n+1) + * S_n := \Sum x^i = ------------- + * i=0 1 - x + */ +static unsigned long +calc_load_n(unsigned long load, unsigned long exp, + unsigned long active, unsigned int n) +{ + + return calc_load(load, fixed_power_int(exp, FSHIFT, n), active); +} + +/* + * NO_HZ can leave us missing all per-cpu ticks calling + * calc_load_account_active(), but since an idle CPU folds its delta into + * calc_load_tasks_idle per calc_load_account_idle(), all we need to do is fold + * in the pending idle delta if our idle period crossed a load cycle boundary. + * + * Once we've updated the global active value, we need to apply the exponential + * weights adjusted to the number of cycles missed. + */ +static void calc_global_nohz(unsigned long ticks) +{ + long delta, active, n; + + if (time_before(jiffies, calc_load_update)) + return; + + /* + * If we crossed a calc_load_update boundary, make sure to fold + * any pending idle changes, the respective CPUs might have + * missed the tick driven calc_load_account_active() update + * due to NO_HZ. + */ + delta = calc_load_fold_idle(); + if (delta) + atomic_long_add(delta, &calc_load_tasks); + + /* + * If we were idle for multiple load cycles, apply them. + */ + if (ticks >= LOAD_FREQ) { + n = ticks / LOAD_FREQ; + + active = atomic_long_read(&calc_load_tasks); + active = active > 0 ? active * FIXED_1 : 0; + + avenrun[0] = calc_load_n(avenrun[0], EXP_1, active, n); + avenrun[1] = calc_load_n(avenrun[1], EXP_5, active, n); + avenrun[2] = calc_load_n(avenrun[2], EXP_15, active, n); + + calc_load_update += n * LOAD_FREQ; + } + + /* + * Its possible the remainder of the above division also crosses + * a LOAD_FREQ period, the regular check in calc_global_load() + * which comes after this will take care of that. + * + * Consider us being 11 ticks before a cycle completion, and us + * sleeping for 4*LOAD_FREQ + 22 ticks, then the above code will + * age us 4 cycles, and the test in calc_global_load() will + * pick up the final one. + */ +} #else static void calc_load_account_idle(struct rq *this_rq) { @@ -2945,6 +3059,10 @@ { return 0; } + +static void calc_global_nohz(unsigned long ticks) +{ +} #endif /** @@ -2962,24 +3080,17 @@ loads[2] = (avenrun[2] + offset) << shift; } -static unsigned long -calc_load(unsigned long load, unsigned long exp, unsigned long active) -{ - load *= exp; - load += active * (FIXED_1 - exp); - return load >> FSHIFT; -} - /* * calc_load - update the avenrun load estimates 10 ticks after the * CPUs have updated calc_load_tasks. */ -void calc_global_load(void) +void calc_global_load(unsigned long ticks) { - unsigned long upd = calc_load_update + 10; long active; - if (time_before(jiffies, upd)) + calc_global_nohz(ticks); + + if (time_before(jiffies, calc_load_update + 10)) return; active = atomic_long_read(&calc_load_tasks); @@ -3359,9 +3470,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 +3503,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 @@ -3546,7 +3657,6 @@ { if (prev->se.on_rq) update_rq_clock(rq); - rq->skip_clock_update = 0; prev->sched_class->put_prev_task(rq, prev); } @@ -3609,7 +3719,6 @@ hrtick_clear(rq); raw_spin_lock_irq(&rq->lock); - clear_tsk_need_resched(prev); if (prev->state && !(preempt_count() & PREEMPT_ACTIVE)) { if (unlikely(signal_pending_state(prev->state, prev))) @@ -3626,6 +3735,8 @@ put_prev_task(rq, prev); next = pick_next_task(rq); + clear_tsk_need_resched(prev); + rq->skip_clock_update = 0; if (likely(prev != next)) { sched_info_switch(prev, next); @@ -3704,8 +3815,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? @@ -5166,7 +5285,19 @@ idle->se.exec_start = sched_clock(); cpumask_copy(&idle->cpus_allowed, cpumask_of(cpu)); + /* + * We're having a chicken and egg problem, even though we are + * holding rq->lock, the cpu isn't yet set to this cpu so the + * lockdep check in task_group() will fail. + * + * Similar case to sched_fork(). / Alternatively we could + * use task_rq_lock() here and obtain the other rq->lock. + * + * Silence PROVE_RCU + */ + rcu_read_lock(); __set_task_cpu(idle, cpu); + rcu_read_unlock(); rq->curr = rq->idle = idle; #if defined(CONFIG_SMP) && defined(__ARCH_WANT_UNLOCKED_CTXSW) --- linux-2.6.35.orig/kernel/latencytop.c +++ linux-2.6.35/kernel/latencytop.c @@ -194,14 +194,7 @@ account_global_scheduler_latency(tsk, &lat); - /* - * short term hack; if we're > 32 we stop; future we recycle: - */ - tsk->latency_record_count++; - if (tsk->latency_record_count >= LT_SAVECOUNT) - goto out_unlock; - - for (i = 0; i < LT_SAVECOUNT; i++) { + for (i = 0; i < tsk->latency_record_count; i++) { struct latency_record *mylat; int same = 1; @@ -227,8 +220,14 @@ } } + /* + * short term hack; if we're > 32 we stop; future we recycle: + */ + if (tsk->latency_record_count >= LT_SAVECOUNT) + goto out_unlock; + /* Allocated a new one: */ - i = tsk->latency_record_count; + i = tsk->latency_record_count++; memcpy(&tsk->latency_record[i], &lat, sizeof(struct latency_record)); out_unlock: --- 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/user.c +++ linux-2.6.35/kernel/user.c @@ -157,6 +157,7 @@ spin_lock_irq(&uidhash_lock); up = uid_hash_find(uid, hashent); if (up) { + put_user_ns(ns); key_put(new->uid_keyring); key_put(new->session_keyring); kmem_cache_free(uid_cachep, new); --- 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 @@ -1237,6 +1250,12 @@ struct tvec_base *base = __get_cpu_var(tvec_bases); unsigned long expires; + /* + * Pretend that there is no timer pending if the cpu is offline. + * Possible pending timers will be migrated later to an active cpu. + */ + if (cpu_is_offline(smp_processor_id())) + return now + NEXT_TIMER_MAX_DELTA; spin_lock(&base->lock); if (time_before_eq(base->next_timer, base->timer_jiffies)) base->next_timer = __next_timer_interrupt(base); @@ -1302,7 +1321,7 @@ { jiffies_64 += ticks; update_wall_time(); - calc_global_load(); + calc_global_load(ticks); } #ifdef __ARCH_WANT_SYS_ALARM --- linux-2.6.35.orig/kernel/printk.c +++ linux-2.6.35/kernel/printk.c @@ -1034,13 +1034,15 @@ int printk_needs_cpu(int cpu) { + if (unlikely(cpu_is_offline(cpu))) + printk_tick(); return per_cpu(printk_pending, cpu); } void wake_up_klogd(void) { if (waitqueue_active(&log_wait)) - __raw_get_cpu_var(printk_pending) = 1; + this_cpu_write(printk_pending, 1); } /** --- linux-2.6.35.orig/kernel/exit.c +++ linux-2.6.35/kernel/exit.c @@ -95,6 +95,14 @@ sig->tty = NULL; } else { /* + * This can only happen if the caller is de_thread(). + * FIXME: this is the temporary hack, we should teach + * posix-cpu-timers to handle this case correctly. + */ + if (unlikely(has_group_leader_pid(tsk))) + posix_cpu_timers_exit_group(tsk); + + /* * If there is any task waiting for the group exit * then notify it: */ @@ -900,6 +908,15 @@ if (unlikely(!tsk->pid)) panic("Attempted to kill the idle task!"); + /* + * If do_exit is called because this processes oopsed, it's possible + * that get_fs() was left as KERNEL_DS, so reset it to USER_DS before + * continuing. Amongst other possible reasons, this is to prevent + * mm_release()->clear_child_tid() from writing to a user-controlled + * kernel address. + */ + set_fs(USER_DS); + tracehook_report_exit(&code); validate_creds_for_do_exit(tsk); @@ -1383,8 +1400,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 +1473,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/perf_event.c +++ linux-2.6.35/kernel/perf_event.c @@ -1609,8 +1609,12 @@ { raw_spin_lock(&ctx->lock); - /* Rotate the first entry last of non-pinned groups */ - list_rotate_left(&ctx->flexible_groups); + /* + * Rotate the first entry last of non-pinned groups. Rotation might be + * disabled by the inheritance code. + */ + if (!ctx->rotate_disable) + list_rotate_left(&ctx->flexible_groups); raw_spin_unlock(&ctx->lock); } @@ -1757,7 +1761,13 @@ unsigned long flags; raw_spin_lock_irqsave(&ctx->lock, flags); - update_context_time(ctx); + /* + * may read while context is not active + * (e.g., thread is blocked), in that case + * we cannot update context time + */ + if (ctx->is_active) + update_context_time(ctx); update_event_times(event); raw_spin_unlock_irqrestore(&ctx->lock, flags); } @@ -5590,6 +5600,7 @@ struct perf_event *event; struct task_struct *parent = current; int inherited_all = 1; + unsigned long flags; int ret = 0; child->perf_event_ctxp = NULL; @@ -5630,6 +5641,15 @@ break; } + /* + * We can't hold ctx->lock when iterating the ->flexible_group list due + * to allocations, but we need to prevent rotation because + * rotate_ctx() will change the list from interrupt context. + */ + raw_spin_lock_irqsave(&parent_ctx->lock, flags); + parent_ctx->rotate_disable = 1; + raw_spin_unlock_irqrestore(&parent_ctx->lock, flags); + list_for_each_entry(event, &parent_ctx->flexible_groups, group_entry) { ret = inherit_task_group(event, parent, parent_ctx, child, &inherited_all); @@ -5637,6 +5657,10 @@ break; } + raw_spin_lock_irqsave(&parent_ctx->lock, flags); + parent_ctx->rotate_disable = 0; + raw_spin_unlock_irqrestore(&parent_ctx->lock, flags); + child_ctx = child->perf_event_ctxp; if (child_ctx && inherited_all) { --- linux-2.6.35.orig/kernel/futex.c +++ linux-2.6.35/kernel/futex.c @@ -1363,7 +1363,6 @@ { struct futex_hash_bucket *hb; - get_futex_key_refs(&q->key); hb = hash_futex(&q->key); q->lock_ptr = &hb->lock; @@ -1375,7 +1374,6 @@ queue_unlock(struct futex_q *q, struct futex_hash_bucket *hb) { spin_unlock(&hb->lock); - drop_futex_key_refs(&q->key); } /** @@ -1480,8 +1478,6 @@ q->pi_state = NULL; spin_unlock(q->lock_ptr); - - drop_futex_key_refs(&q->key); } /* @@ -1812,7 +1808,10 @@ } retry: - /* Prepare to wait on uaddr. */ + /* + * Prepare to wait on uaddr. On success, holds hb lock and increments + * q.key refs. + */ ret = futex_wait_setup(uaddr, val, fshared, &q, &hb); if (ret) goto out; @@ -1822,24 +1821,23 @@ /* If we were woken (and unqueued), we succeeded, whatever. */ ret = 0; + /* unqueue_me() drops q.key ref */ if (!unqueue_me(&q)) - goto out_put_key; + goto out; ret = -ETIMEDOUT; if (to && !to->task) - goto out_put_key; + goto out; /* * We expect signal_pending(current), but we might be the * victim of a spurious wakeup as well. */ - if (!signal_pending(current)) { - put_futex_key(fshared, &q.key); + if (!signal_pending(current)) goto retry; - } ret = -ERESTARTSYS; if (!abs_time) - goto out_put_key; + goto out; restart = ¤t_thread_info()->restart_block; restart->fn = futex_wait_restart; @@ -1856,8 +1854,6 @@ ret = -ERESTART_RESTARTBLOCK; -out_put_key: - put_futex_key(fshared, &q.key); out: if (to) { hrtimer_cancel(&to->timer); @@ -2236,7 +2232,10 @@ q.rt_waiter = &rt_waiter; q.requeue_pi_key = &key2; - /* Prepare to wait on uaddr. */ + /* + * Prepare to wait on uaddr. On success, increments q.key (key1) ref + * count. + */ ret = futex_wait_setup(uaddr, val, fshared, &q, &hb); if (ret) goto out_key2; @@ -2254,7 +2253,9 @@ * In order for us to be here, we know our q.key == key2, and since * we took the hb->lock above, we also know that futex_requeue() has * completed and we no longer have to concern ourselves with a wakeup - * race with the atomic proxy lock acquition by the requeue code. + * race with the atomic proxy lock acquisition by the requeue code. The + * futex_requeue dropped our key1 reference and incremented our key2 + * reference count. */ /* Check if the requeue code acquired the second futex for us. */ --- linux-2.6.35.orig/kernel/hrtimer.c +++ linux-2.6.35/kernel/hrtimer.c @@ -936,6 +936,7 @@ remove_hrtimer(struct hrtimer *timer, struct hrtimer_clock_base *base) { if (hrtimer_is_queued(timer)) { + unsigned long state; int reprogram; /* @@ -949,8 +950,13 @@ debug_deactivate(timer); timer_stats_hrtimer_clear_start_info(timer); reprogram = base->cpu_base == &__get_cpu_var(hrtimer_bases); - __remove_hrtimer(timer, base, HRTIMER_STATE_INACTIVE, - reprogram); + /* + * We must preserve the CALLBACK state flag here, + * otherwise we could move the timer base in + * switch_hrtimer_base. + */ + state = timer->state & HRTIMER_STATE_CALLBACK; + __remove_hrtimer(timer, base, state, reprogram); return 1; } return 0; @@ -1237,6 +1243,9 @@ BUG_ON(timer->state != HRTIMER_STATE_CALLBACK); enqueue_hrtimer(timer, base); } + + WARN_ON_ONCE(!(timer->state & HRTIMER_STATE_CALLBACK)); + timer->state &= ~HRTIMER_STATE_CALLBACK; } --- 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/user.c +++ linux-2.6.35/kernel/power/user.c @@ -137,7 +137,7 @@ free_all_swap_pages(data->swap); if (data->frozen) thaw_processes(); - pm_notifier_call_chain(data->mode == O_WRONLY ? + pm_notifier_call_chain(data->mode == O_RDONLY ? PM_POST_HIBERNATION : PM_POST_RESTORE); atomic_inc(&snapshot_device_available); @@ -263,6 +263,7 @@ case SNAPSHOT_UNFREEZE: if (!data->frozen || data->ready) break; + pm_restore_gfp_mask(); thaw_processes(); usermodehelper_enable(); data->frozen = 0; @@ -275,6 +276,7 @@ error = -EPERM; break; } + pm_restore_gfp_mask(); error = hibernation_snapshot(data->platform_support); if (!error) error = put_user(in_suspend, (int __user *)arg); --- linux-2.6.35.orig/kernel/power/suspend.c +++ linux-2.6.35/kernel/power/suspend.c @@ -196,7 +196,6 @@ int suspend_devices_and_enter(suspend_state_t state) { int error; - gfp_t saved_mask; if (!suspend_ops) return -ENOSYS; @@ -207,7 +206,7 @@ goto Close; } suspend_console(); - saved_mask = clear_gfp_allowed_mask(GFP_IOFS); + pm_restrict_gfp_mask(); suspend_test_start(); error = dpm_suspend_start(PMSG_SUSPEND); if (error) { @@ -224,7 +223,7 @@ suspend_test_start(); dpm_resume_end(PMSG_RESUME); suspend_test_finish("resume devices"); - set_gfp_allowed_mask(saved_mask); + pm_restore_gfp_mask(); resume_console(); Close: if (suspend_ops->end) --- 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/power/hibernate.c +++ linux-2.6.35/kernel/power/hibernate.c @@ -324,7 +324,6 @@ int hibernation_snapshot(int platform_mode) { int error; - gfp_t saved_mask; error = platform_begin(platform_mode); if (error) @@ -336,7 +335,7 @@ goto Close; suspend_console(); - saved_mask = clear_gfp_allowed_mask(GFP_IOFS); + pm_restrict_gfp_mask(); error = dpm_suspend_start(PMSG_FREEZE); if (error) goto Recover_platform; @@ -345,7 +344,10 @@ goto Recover_platform; error = create_image(platform_mode); - /* Control returns here after successful restore */ + /* + * Control returns here (1) after the image has been created or the + * image creation has failed and (2) after a successful restore. + */ Resume_devices: /* We may need to release the preallocated image pages here. */ @@ -354,7 +356,10 @@ dpm_resume_end(in_suspend ? (error ? PMSG_RECOVER : PMSG_THAW) : PMSG_RESTORE); - set_gfp_allowed_mask(saved_mask); + + if (error || !in_suspend) + pm_restore_gfp_mask(); + resume_console(); Close: platform_end(platform_mode); @@ -449,17 +454,16 @@ int hibernation_restore(int platform_mode) { int error; - gfp_t saved_mask; pm_prepare_console(); suspend_console(); - saved_mask = clear_gfp_allowed_mask(GFP_IOFS); + pm_restrict_gfp_mask(); error = dpm_suspend_start(PMSG_QUIESCE); if (!error) { error = resume_target_kernel(platform_mode); dpm_resume_end(PMSG_RECOVER); } - set_gfp_allowed_mask(saved_mask); + pm_restore_gfp_mask(); resume_console(); pm_restore_console(); return error; @@ -473,7 +477,6 @@ int hibernation_platform_enter(void) { int error; - gfp_t saved_mask; if (!hibernation_ops) return -ENOSYS; @@ -489,7 +492,6 @@ entering_platform_hibernation = true; suspend_console(); - saved_mask = clear_gfp_allowed_mask(GFP_IOFS); error = dpm_suspend_start(PMSG_HIBERNATE); if (error) { if (hibernation_ops->recover) @@ -527,7 +529,6 @@ Resume_devices: entering_platform_hibernation = false; dpm_resume_end(PMSG_RESTORE); - set_gfp_allowed_mask(saved_mask); resume_console(); Close: @@ -635,6 +636,7 @@ swsusp_free(); if (!error) power_down(); + pm_restore_gfp_mask(); } else { pr_debug("PM: Image restored successfully.\n"); } --- linux-2.6.35.orig/kernel/trace/ring_buffer.c +++ linux-2.6.35/kernel/trace/ring_buffer.c @@ -405,7 +405,7 @@ #define BUF_MAX_DATA_SIZE (BUF_PAGE_SIZE - (sizeof(u32) * 2)) /* Max number of timestamps that can fit on a page */ -#define RB_TIMESTAMPS_PER_PAGE (BUF_PAGE_SIZE / RB_LEN_TIME_STAMP) +#define RB_TIMESTAMPS_PER_PAGE (BUF_PAGE_SIZE / RB_LEN_TIME_EXTEND) int ring_buffer_print_page_header(struct trace_seq *s) { @@ -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/trace/trace.c +++ linux-2.6.35/kernel/trace/trace.c @@ -2382,11 +2382,19 @@ return count; } +static loff_t tracing_seek(struct file *file, loff_t offset, int origin) +{ + if (file->f_mode & FMODE_READ) + return seq_lseek(file, offset, origin); + else + return 0; +} + static const struct file_operations tracing_fops = { .open = tracing_open, .read = seq_read, .write = tracing_write_stub, - .llseek = seq_lseek, + .llseek = tracing_seek, .release = tracing_release, }; --- 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/proc.c +++ linux-2.6.35/kernel/irq/proc.c @@ -214,7 +214,7 @@ static int irq_spurious_proc_open(struct inode *inode, struct file *file) { - return single_open(file, irq_spurious_proc_show, NULL); + return single_open(file, irq_spurious_proc_show, PDE(inode)->data); } static const struct file_operations irq_spurious_proc_fops = { --- 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. @@ -920,6 +921,7 @@ i8042.panicblink= [HW] Frequency with which keyboard LEDs should blink when kernel panics (default is 0.5 sec) + i8042.notimeout [HW] Ignore timeout condition signalled by conroller i8042.reset [HW] Reset the controller during init and cleanup i8042.unlock [HW] Unlock (ignore) the keylock @@ -2312,6 +2314,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/power/runtime_pm.txt +++ linux-2.6.35/Documentation/power/runtime_pm.txt @@ -336,8 +336,8 @@ zero) bool pm_runtime_suspended(struct device *dev); - - return true if the device's runtime PM status is 'suspended', or false - otherwise + - return true if the device's runtime PM status is 'suspended' and its + 'power.disable_depth' field is equal to zero, or false otherwise void pm_runtime_allow(struct device *dev); - set the power.runtime_auto flag for the device and decrease its usage --- 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/block/scsi_ioctl.c +++ linux-2.6.35/block/scsi_ioctl.c @@ -321,33 +321,47 @@ if (hdr->iovec_count) { const int size = sizeof(struct sg_iovec) * hdr->iovec_count; size_t iov_data_len; - struct sg_iovec *iov; + struct sg_iovec *sg_iov; + struct iovec *iov; + int i; - iov = kmalloc(size, GFP_KERNEL); - if (!iov) { + sg_iov = kmalloc(size, GFP_KERNEL); + if (!sg_iov) { ret = -ENOMEM; goto out; } - if (copy_from_user(iov, hdr->dxferp, size)) { - kfree(iov); + if (copy_from_user(sg_iov, hdr->dxferp, size)) { + kfree(sg_iov); ret = -EFAULT; goto out; } + /* + * Sum up the vecs, making sure they don't overflow + */ + iov = (struct iovec *) sg_iov; + iov_data_len = 0; + for (i = 0; i < hdr->iovec_count; i++) { + if (iov_data_len + iov[i].iov_len < iov_data_len) { + kfree(sg_iov); + ret = -EINVAL; + goto out; + } + iov_data_len += iov[i].iov_len; + } + /* SG_IO howto says that the shorter of the two wins */ - iov_data_len = iov_length((struct iovec *)iov, - hdr->iovec_count); if (hdr->dxfer_len < iov_data_len) { - hdr->iovec_count = iov_shorten((struct iovec *)iov, + hdr->iovec_count = iov_shorten(iov, hdr->iovec_count, hdr->dxfer_len); iov_data_len = hdr->dxfer_len; } - ret = blk_rq_map_user_iov(q, rq, NULL, iov, hdr->iovec_count, + ret = blk_rq_map_user_iov(q, rq, NULL, sg_iov, hdr->iovec_count, iov_data_len, GFP_KERNEL); - kfree(iov); + kfree(sg_iov); } else if (hdr->dxfer_len) ret = blk_rq_map_user(q, rq, NULL, hdr->dxferp, hdr->dxfer_len, GFP_KERNEL); --- linux-2.6.35.orig/block/blk-settings.c +++ linux-2.6.35/block/blk-settings.c @@ -108,7 +108,7 @@ lim->alignment_offset = 0; lim->io_opt = 0; lim->misaligned = 0; - lim->no_cluster = 0; + lim->cluster = 1; } EXPORT_SYMBOL(blk_set_default_limits); @@ -326,7 +326,7 @@ * hardware can operate on without reverting to read-modify-write * operations. */ -void blk_queue_physical_block_size(struct request_queue *q, unsigned short size) +void blk_queue_physical_block_size(struct request_queue *q, unsigned int size) { q->limits.physical_block_size = size; @@ -451,15 +451,6 @@ void blk_queue_stack_limits(struct request_queue *t, struct request_queue *b) { blk_stack_limits(&t->limits, &b->limits, 0); - - if (!t->queue_lock) - WARN_ON_ONCE(1); - else if (!test_bit(QUEUE_FLAG_CLUSTER, &b->queue_flags)) { - unsigned long flags; - spin_lock_irqsave(t->queue_lock, flags); - queue_flag_clear(QUEUE_FLAG_CLUSTER, t); - spin_unlock_irqrestore(t->queue_lock, flags); - } } EXPORT_SYMBOL(blk_queue_stack_limits); @@ -530,7 +521,7 @@ t->io_min = max(t->io_min, b->io_min); t->io_opt = lcm(t->io_opt, b->io_opt); - t->no_cluster |= b->no_cluster; + t->cluster &= b->cluster; t->discard_zeroes_data &= b->discard_zeroes_data; /* Physical block size a multiple of the logical block size? */ @@ -626,7 +617,6 @@ sector_t offset) { struct request_queue *t = disk->queue; - struct request_queue *b = bdev_get_queue(bdev); if (bdev_stack_limits(&t->limits, bdev, offset >> 9) < 0) { char top[BDEVNAME_SIZE], bottom[BDEVNAME_SIZE]; @@ -637,17 +627,6 @@ printk(KERN_NOTICE "%s: Warning: Device %s is misaligned\n", top, bottom); } - - if (!t->queue_lock) - WARN_ON_ONCE(1); - else if (!test_bit(QUEUE_FLAG_CLUSTER, &b->queue_flags)) { - unsigned long flags; - - spin_lock_irqsave(t->queue_lock, flags); - if (!test_bit(QUEUE_FLAG_CLUSTER, &b->queue_flags)) - queue_flag_clear(QUEUE_FLAG_CLUSTER, t); - spin_unlock_irqrestore(t->queue_lock, flags); - } } EXPORT_SYMBOL(disk_stack_limits); --- linux-2.6.35.orig/block/bsg.c +++ linux-2.6.35/block/bsg.c @@ -426,7 +426,7 @@ /* * fill in all the output members */ - hdr->device_status = status_byte(rq->errors); + hdr->device_status = rq->errors & 0xff; hdr->transport_status = host_byte(rq->errors); hdr->driver_status = driver_byte(rq->errors); hdr->info = 0; --- linux-2.6.35.orig/block/genhd.c +++ linux-2.6.35/block/genhd.c @@ -541,13 +541,15 @@ disk->major = MAJOR(devt); disk->first_minor = MINOR(devt); + /* Register BDI before referencing it from bdev */ + bdi = &disk->queue->backing_dev_info; + bdi_register_dev(bdi, disk_devt(disk)); + blk_register_region(disk_devt(disk), disk->minors, NULL, exact_match, exact_lock, disk); register_disk(disk); blk_register_queue(disk); - bdi = &disk->queue->backing_dev_info; - bdi_register_dev(bdi, disk_devt(disk)); retval = sysfs_create_link(&disk_to_dev(disk)->kobj, &bdi->dev->kobj, "bdi"); WARN_ON(retval); --- linux-2.6.35.orig/block/blk-sysfs.c +++ linux-2.6.35/block/blk-sysfs.c @@ -114,7 +114,7 @@ static ssize_t queue_max_segment_size_show(struct request_queue *q, char *page) { - if (test_bit(QUEUE_FLAG_CLUSTER, &q->queue_flags)) + if (blk_queue_cluster(q)) return queue_var_show(queue_max_segment_size(q), (page)); return queue_var_show(PAGE_CACHE_SIZE, (page)); --- linux-2.6.35.orig/block/blk-merge.c +++ linux-2.6.35/block/blk-merge.c @@ -22,7 +22,7 @@ return 0; fbio = bio; - cluster = test_bit(QUEUE_FLAG_CLUSTER, &q->queue_flags); + cluster = blk_queue_cluster(q); seg_size = 0; phys_size = nr_phys_segs = 0; for_each_bio(bio) { @@ -88,7 +88,7 @@ static int blk_phys_contig_segment(struct request_queue *q, struct bio *bio, struct bio *nxt) { - if (!test_bit(QUEUE_FLAG_CLUSTER, &q->queue_flags)) + if (!blk_queue_cluster(q)) return 0; if (bio->bi_seg_back_size + nxt->bi_seg_front_size > @@ -124,7 +124,7 @@ int nsegs, cluster; nsegs = 0; - cluster = test_bit(QUEUE_FLAG_CLUSTER, &q->queue_flags); + cluster = blk_queue_cluster(q); /* * for each bio in rq --- linux-2.6.35.orig/block/blk-map.c +++ linux-2.6.35/block/blk-map.c @@ -201,6 +201,9 @@ for (i = 0; i < iov_count; i++) { unsigned long uaddr = (unsigned long)iov[i].iov_base; + if (!iov[i].iov_len) + return -EINVAL; + if (uaddr & queue_dma_alignment(q)) { unaligned = 1; break; --- 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. */ @@ -659,7 +659,7 @@ * Scanning pfn is much easier than scanning lru list. * Scan pfn from start to end and Find LRU page. */ -int scan_lru_pages(unsigned long start, unsigned long end) +unsigned long scan_lru_pages(unsigned long start, unsigned long end) { unsigned long pfn; struct page *page; --- linux-2.6.35.orig/mm/page_alloc.c +++ linux-2.6.35/mm/page_alloc.c @@ -103,19 +103,24 @@ * only be modified with pm_mutex held, unless the suspend/hibernate code is * guaranteed not to run in parallel with that modification). */ -void set_gfp_allowed_mask(gfp_t mask) + +static gfp_t saved_gfp_mask; + +void pm_restore_gfp_mask(void) { WARN_ON(!mutex_is_locked(&pm_mutex)); - gfp_allowed_mask = mask; + if (saved_gfp_mask) { + gfp_allowed_mask = saved_gfp_mask; + saved_gfp_mask = 0; + } } -gfp_t clear_gfp_allowed_mask(gfp_t mask) +void pm_restrict_gfp_mask(void) { - gfp_t ret = gfp_allowed_mask; - WARN_ON(!mutex_is_locked(&pm_mutex)); - gfp_allowed_mask &= ~mask; - return ret; + WARN_ON(saved_gfp_mask); + saved_gfp_mask = gfp_allowed_mask; + gfp_allowed_mask &= ~GFP_IOFS; } #endif /* CONFIG_PM_SLEEP */ @@ -530,7 +535,7 @@ * so it's less likely to be used soon and more likely to be merged * as a higher order page */ - if ((order < MAX_ORDER-1) && pfn_valid_within(page_to_pfn(buddy))) { + if ((order < MAX_ORDER-2) && pfn_valid_within(page_to_pfn(buddy))) { struct page *higher_page, *higher_buddy; combined_idx = __find_combined_index(page_idx, order); higher_page = page + combined_idx - page_idx; @@ -588,13 +593,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 +624,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 +637,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 +1467,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 +1849,7 @@ struct page *page = NULL; struct reclaim_state reclaim_state; struct task_struct *p = current; + bool drained = false; cond_resched(); @@ -1861,14 +1868,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 +2430,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/mempolicy.c +++ linux-2.6.35/mm/mempolicy.c @@ -1576,7 +1576,7 @@ (void)first_zones_zonelist(zonelist, highest_zoneidx, &policy->v.nodes, &zone); - return zone->node; + return zone ? zone->node : numa_node_id(); } default: --- 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 @@ -631,7 +631,9 @@ pagep = radix_tree_lookup_slot(&mapping->page_tree, offset); if (pagep) { page = radix_tree_deref_slot(pagep); - if (unlikely(!page || page == RADIX_TREE_RETRY)) + if (unlikely(!page)) + goto out; + if (radix_tree_deref_retry(page)) goto repeat; if (!page_cache_get_speculative(page)) @@ -647,6 +649,7 @@ goto repeat; } } +out: rcu_read_unlock(); return page; @@ -764,12 +767,11 @@ page = radix_tree_deref_slot((void **)pages[i]); if (unlikely(!page)) continue; - /* - * this can only trigger if nr_found == 1, making livelock - * a non issue. - */ - if (unlikely(page == RADIX_TREE_RETRY)) + if (radix_tree_deref_retry(page)) { + if (ret) + start = pages[ret-1]->index; goto restart; + } if (!page_cache_get_speculative(page)) goto repeat; @@ -817,11 +819,7 @@ page = radix_tree_deref_slot((void **)pages[i]); if (unlikely(!page)) continue; - /* - * this can only trigger if nr_found == 1, making livelock - * a non issue. - */ - if (unlikely(page == RADIX_TREE_RETRY)) + if (radix_tree_deref_retry(page)) goto restart; if (page->mapping == NULL || page->index != index) @@ -874,11 +872,7 @@ page = radix_tree_deref_slot((void **)pages[i]); if (unlikely(!page)) continue; - /* - * this can only trigger if nr_found == 1, making livelock - * a non issue. - */ - if (unlikely(page == RADIX_TREE_RETRY)) + if (radix_tree_deref_retry(page)) goto restart; if (!page_cache_get_speculative(page)) @@ -1016,6 +1010,9 @@ goto page_not_up_to_date; if (!trylock_page(page)) goto page_not_up_to_date; + /* Did it get truncated before we got the lock? */ + if (!page->mapping) + goto page_not_up_to_date_locked; if (!mapping->a_ops->is_partially_uptodate(page, desc, offset)) goto page_not_up_to_date_locked; @@ -1192,6 +1189,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 @@ -731,7 +731,7 @@ if (!ptep) goto out; - if (pte_write(*ptep)) { + if (pte_write(*ptep) || pte_dirty(*ptep)) { pte_t entry; swapped = PageSwapCache(page); @@ -754,7 +754,9 @@ set_pte_at(mm, addr, ptep, entry); goto out_unlock; } - entry = pte_wrprotect(entry); + if (pte_dirty(entry)) + set_page_dirty(page); + entry = pte_mkclean(pte_wrprotect(entry)); set_pte_at_notify(mm, addr, ptep, entry); } *orig_pte = *ptep; @@ -1523,8 +1525,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 +1540,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, @@ -2433,6 +2557,7 @@ unsigned long addr, unsigned long len, unsigned long vm_flags, struct page **pages) { + int ret; struct vm_area_struct *vma; vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL); @@ -2450,16 +2575,23 @@ vma->vm_ops = &special_mapping_vmops; vma->vm_private_data = pages; - if (unlikely(insert_vm_struct(mm, vma))) { - kmem_cache_free(vm_area_cachep, vma); - return -ENOMEM; - } + ret = security_file_mmap(NULL, 0, 0, 0, vma->vm_start, 1); + if (ret) + goto out; + + ret = insert_vm_struct(mm, vma); + if (ret) + goto out; mm->total_vm += len >> PAGE_SHIFT; perf_event_mmap(vma); return 0; + +out: + kmem_cache_free(vm_area_cachep, vma); + return ret; } static DEFINE_MUTEX(mm_all_locks_mutex); --- 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; } /* @@ -1670,6 +1673,7 @@ mm->mmap = vma->vm_next; delete_vma_from_mm(vma); delete_vma(mm, vma); + cond_resched(); } kleave(""); --- 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/vmalloc.c +++ linux-2.6.35/mm/vmalloc.c @@ -513,6 +513,15 @@ static void purge_fragmented_blocks_allcpus(void); /* + * called before a call to iounmap() if the caller wants vm_area_struct's + * immediately freed. + */ +void set_iounmap_nonlazy(void) +{ + atomic_set(&vmap_lazy_nr, lazy_max_pages()+1); +} + +/* * Purges all lazily-freed vmap areas. * * If sync is 0 then don't purge if there is already a purge in progress. --- linux-2.6.35.orig/mm/internal.h +++ linux-2.6.35/mm/internal.h @@ -62,7 +62,7 @@ */ static inline unsigned long page_order(struct page *page) { - VM_BUG_ON(!PageBuddy(page)); + /* PageBuddy() must be checked by the caller */ return page_private(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); @@ -211,6 +219,7 @@ mmu_notifier_invalidate_range_end(mm, start, end); vm_stat_account(mm, oldflags, vma->vm_file, -nrpages); vm_stat_account(mm, newflags, vma->vm_file, nrpages); + perf_event_mmap(vma); return 0; fail: @@ -299,7 +308,6 @@ error = mprotect_fixup(vma, &prev, nstart, tmp, newflags); if (error) goto out; - perf_event_mmap(vma); nstart = tmp; if (nstart < prev->vm_end) --- 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/lib/radix-tree.c +++ linux-2.6.35/lib/radix-tree.c @@ -82,6 +82,16 @@ }; static DEFINE_PER_CPU(struct radix_tree_preload, radix_tree_preloads) = { 0, }; +static inline void *ptr_to_indirect(void *ptr) +{ + return (void *)((unsigned long)ptr | RADIX_TREE_INDIRECT_PTR); +} + +static inline void *indirect_to_ptr(void *ptr) +{ + return (void *)((unsigned long)ptr & ~RADIX_TREE_INDIRECT_PTR); +} + static inline gfp_t root_gfp_mask(struct radix_tree_root *root) { return root->gfp_mask & __GFP_BITS_MASK; @@ -263,7 +273,7 @@ return -ENOMEM; /* Increase the height. */ - node->slots[0] = radix_tree_indirect_to_ptr(root->rnode); + node->slots[0] = indirect_to_ptr(root->rnode); /* Propagate the aggregated tag info into the new root */ for (tag = 0; tag < RADIX_TREE_MAX_TAGS; tag++) { @@ -274,7 +284,7 @@ newheight = root->height+1; node->height = newheight; node->count = 1; - node = radix_tree_ptr_to_indirect(node); + node = ptr_to_indirect(node); rcu_assign_pointer(root->rnode, node); root->height = newheight; } while (height > root->height); @@ -307,7 +317,7 @@ return error; } - slot = radix_tree_indirect_to_ptr(root->rnode); + slot = indirect_to_ptr(root->rnode); height = root->height; shift = (height-1) * RADIX_TREE_MAP_SHIFT; @@ -323,8 +333,7 @@ rcu_assign_pointer(node->slots[offset], slot); node->count++; } else - rcu_assign_pointer(root->rnode, - radix_tree_ptr_to_indirect(slot)); + rcu_assign_pointer(root->rnode, ptr_to_indirect(slot)); } /* Go a level down */ @@ -372,7 +381,7 @@ return NULL; return is_slot ? (void *)&root->rnode : node; } - node = radix_tree_indirect_to_ptr(node); + node = indirect_to_ptr(node); height = node->height; if (index > radix_tree_maxindex(height)) @@ -391,7 +400,7 @@ height--; } while (height > 0); - return is_slot ? (void *)slot:node; + return is_slot ? (void *)slot : indirect_to_ptr(node); } /** @@ -453,7 +462,7 @@ height = root->height; BUG_ON(index > radix_tree_maxindex(height)); - slot = radix_tree_indirect_to_ptr(root->rnode); + slot = indirect_to_ptr(root->rnode); shift = (height - 1) * RADIX_TREE_MAP_SHIFT; while (height > 0) { @@ -507,7 +516,7 @@ shift = (height - 1) * RADIX_TREE_MAP_SHIFT; pathp->node = NULL; - slot = radix_tree_indirect_to_ptr(root->rnode); + slot = indirect_to_ptr(root->rnode); while (height > 0) { int offset; @@ -577,7 +586,7 @@ if (!radix_tree_is_indirect_ptr(node)) return (index == 0); - node = radix_tree_indirect_to_ptr(node); + node = indirect_to_ptr(node); height = node->height; if (index > radix_tree_maxindex(height)) @@ -767,7 +776,7 @@ results[0] = node; return 1; } - node = radix_tree_indirect_to_ptr(node); + node = indirect_to_ptr(node); max_index = radix_tree_maxindex(node->height); @@ -835,7 +844,7 @@ results[0] = (void **)&root->rnode; return 1; } - node = radix_tree_indirect_to_ptr(node); + node = indirect_to_ptr(node); max_index = radix_tree_maxindex(node->height); @@ -960,7 +969,7 @@ results[0] = node; return 1; } - node = radix_tree_indirect_to_ptr(node); + node = indirect_to_ptr(node); max_index = radix_tree_maxindex(node->height); @@ -979,7 +988,8 @@ slot = *(((void ***)results)[ret + i]); if (!slot) continue; - results[ret + nr_found] = rcu_dereference_raw(slot); + results[ret + nr_found] = + indirect_to_ptr(rcu_dereference_raw(slot)); nr_found++; } ret += nr_found; @@ -1029,7 +1039,7 @@ results[0] = (void **)&root->rnode; return 1; } - node = radix_tree_indirect_to_ptr(node); + node = indirect_to_ptr(node); max_index = radix_tree_maxindex(node->height); @@ -1065,7 +1075,7 @@ void *newptr; BUG_ON(!radix_tree_is_indirect_ptr(to_free)); - to_free = radix_tree_indirect_to_ptr(to_free); + to_free = indirect_to_ptr(to_free); /* * The candidate node has more than one child, or its child @@ -1078,16 +1088,39 @@ /* * We don't need rcu_assign_pointer(), since we are simply - * moving the node from one part of the tree to another. If - * it was safe to dereference the old pointer to it + * moving the node from one part of the tree to another: if it + * was safe to dereference the old pointer to it * (to_free->slots[0]), it will be safe to dereference the new - * one (root->rnode). + * one (root->rnode) as far as dependent read barriers go. */ newptr = to_free->slots[0]; if (root->height > 1) - newptr = radix_tree_ptr_to_indirect(newptr); + newptr = ptr_to_indirect(newptr); root->rnode = newptr; root->height--; + + /* + * We have a dilemma here. The node's slot[0] must not be + * NULLed in case there are concurrent lookups expecting to + * find the item. However if this was a bottom-level node, + * then it may be subject to the slot pointer being visible + * to callers dereferencing it. If item corresponding to + * slot[0] is subsequently deleted, these callers would expect + * their slot to become empty sooner or later. + * + * For example, lockless pagecache will look up a slot, deref + * the page pointer, and if the page is 0 refcount it means it + * was concurrently deleted from pagecache so try the deref + * again. Fortunately there is already a requirement for logic + * to retry the entire slot lookup -- the indirect pointer + * problem (replacing direct root node with an indirect pointer + * also results in a stale slot). So tag the slot as indirect + * to force callers to retry. + */ + if (root->height == 0) + *((unsigned long *)&to_free->slots[0]) |= + RADIX_TREE_INDIRECT_PTR; + radix_tree_node_free(to_free); } } @@ -1124,7 +1157,7 @@ root->rnode = NULL; goto out; } - slot = radix_tree_indirect_to_ptr(slot); + slot = indirect_to_ptr(slot); shift = (height - 1) * RADIX_TREE_MAP_SHIFT; pathp->node = NULL; @@ -1166,8 +1199,7 @@ radix_tree_node_free(to_free); if (pathp->node->count) { - if (pathp->node == - radix_tree_indirect_to_ptr(root->rnode)) + if (pathp->node == indirect_to_ptr(root->rnode)) radix_tree_shrink(root); goto out; } --- linux-2.6.35.orig/lib/percpu_counter.c +++ linux-2.6.35/lib/percpu_counter.c @@ -76,6 +76,7 @@ if (!fbc->counters) return -ENOMEM; #ifdef CONFIG_HOTPLUG_CPU + INIT_LIST_HEAD(&fbc->list); mutex_lock(&percpu_counters_lock); list_add(&fbc->list, &percpu_counters); mutex_unlock(&percpu_counters_lock); --- linux-2.6.35.orig/lib/list_sort.c +++ linux-2.6.35/lib/list_sort.c @@ -70,7 +70,7 @@ * element comparison is needed, so the client's cmp() * routine can invoke cond_resched() periodically. */ - (*cmp)(priv, tail, tail); + (*cmp)(priv, tail->next, tail->next); tail->next->prev = tail; tail = tail->next; --- 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/wmi.c +++ linux-2.6.35/drivers/platform/x86/wmi.c @@ -68,6 +68,7 @@ wmi_notify_handler handler; void *handler_data; struct device *dev; + bool first_instance; }; static struct wmi_block wmi_blocks; @@ -241,13 +242,16 @@ char tmp[16], guid_input[16]; struct wmi_block *wblock; struct guid_block *block; - struct list_head *p; wmi_parse_guid(guid_string, tmp); wmi_swap_bytes(tmp, guid_input); - list_for_each(p, &wmi_blocks.list) { - wblock = list_entry(p, struct wmi_block, list); + if ((out == NULL) || (*out == NULL)) + wblock = list_entry(&wmi_blocks.list, struct wmi_block, list); + else + wblock = *out; + + list_for_each_entry_continue(wblock, &wmi_blocks.list, list) { block = &wblock->gblock; if (memcmp(block->guid, guid_input, 16) == 0) { @@ -555,22 +559,26 @@ acpi_status wmi_install_notify_handler(const char *guid, wmi_notify_handler handler, void *data) { - struct wmi_block *block; - acpi_status status; + struct wmi_block *block = NULL; + acpi_status status = AE_NOT_EXIST; if (!guid || !handler) return AE_BAD_PARAMETER; - if (!find_guid(guid, &block)) - return AE_NOT_EXIST; + while (find_guid(guid, &block)) { + acpi_status wmi_status; - if (block->handler && block->handler != wmi_notify_debug) - return AE_ALREADY_ACQUIRED; + if (block->handler && block->handler != wmi_notify_debug) + return AE_ALREADY_ACQUIRED; - block->handler = handler; - block->handler_data = data; + block->handler = handler; + block->handler_data = data; - status = wmi_method_enable(block, 1); + wmi_status = wmi_method_enable(block, 1); + if ((wmi_status != AE_OK) || + ((wmi_status == AE_OK) && (status == AE_NOT_EXIST))) + status = wmi_status; + } return status; } @@ -583,24 +591,29 @@ */ acpi_status wmi_remove_notify_handler(const char *guid) { - struct wmi_block *block; - acpi_status status = AE_OK; + struct wmi_block *block = NULL; + acpi_status status = AE_NOT_EXIST; if (!guid) return AE_BAD_PARAMETER; - if (!find_guid(guid, &block)) - return AE_NOT_EXIST; + while (find_guid(guid, &block)) { + acpi_status wmi_status; - if (!block->handler || block->handler == wmi_notify_debug) - return AE_NULL_ENTRY; + if (!block->handler || block->handler == wmi_notify_debug) + return AE_NULL_ENTRY; - if (debug_event) { - block->handler = wmi_notify_debug; - } else { - status = wmi_method_enable(block, 0); - block->handler = NULL; - block->handler_data = NULL; + if (debug_event) { + block->handler = wmi_notify_debug; + status = AE_OK; + } else { + wmi_status = wmi_method_enable(block, 0); + block->handler = NULL; + block->handler_data = NULL; + if ((wmi_status != AE_OK) || + ((wmi_status == AE_OK) && (status == AE_NOT_EXIST))) + status = wmi_status; + } } return status; } @@ -717,28 +730,35 @@ /* Create devices for all the GUIDs */ list_for_each(p, &wmi_blocks.list) { wblock = list_entry(p, struct wmi_block, list); + /* + * Only create device on first instance, as subsequent + * instances share the same GUID and we need to avoid + * creating multiple devices with the same GUID + */ + if (wblock->first_instance) { + guid_dev = kzalloc(sizeof(struct device), GFP_KERNEL); + if (!guid_dev) + return -ENOMEM; - guid_dev = kzalloc(sizeof(struct device), GFP_KERNEL); - if (!guid_dev) - return -ENOMEM; + wblock->dev = guid_dev; - wblock->dev = guid_dev; + guid_dev->class = &wmi_class; + dev_set_drvdata(guid_dev, wblock); - guid_dev->class = &wmi_class; - dev_set_drvdata(guid_dev, wblock); + gblock = &wblock->gblock; - gblock = &wblock->gblock; + wmi_gtoa(gblock->guid, guid_string); + dev_set_name(guid_dev, guid_string); - wmi_gtoa(gblock->guid, guid_string); - dev_set_name(guid_dev, guid_string); + result = device_register(guid_dev); + if (result) + return result; - result = device_register(guid_dev); - if (result) - return result; - - result = device_create_file(guid_dev, &dev_attr_modalias); - if (result) - return result; + result = device_create_file(guid_dev, + &dev_attr_modalias); + if (result) + return result; + } } return 0; @@ -755,12 +775,14 @@ list_for_each(p, &wmi_blocks.list) { wblock = list_entry(p, struct wmi_block, list); - guid_dev = wblock->dev; - gblock = &wblock->gblock; + if (wblock->first_instance) { + guid_dev = wblock->dev; + gblock = &wblock->gblock; - device_remove_file(guid_dev, &dev_attr_modalias); + device_remove_file(guid_dev, &dev_attr_modalias); - device_unregister(guid_dev); + device_unregister(guid_dev); + } } } @@ -795,7 +817,7 @@ wblock = list_entry(p, struct wmi_block, list); gblock = &wblock->gblock; - if (strncmp(gblock->guid, guid_string, 16) == 0) + if (memcmp(gblock->guid, guid_string, 16) == 0) return true; } return false; @@ -810,7 +832,6 @@ union acpi_object *obj; struct guid_block *gblock; struct wmi_block *wblock; - char guid_string[37]; acpi_status status; u32 i, total; @@ -831,19 +852,6 @@ return AE_NO_MEMORY; for (i = 0; i < total; i++) { - /* - Some WMI devices, like those for nVidia hooks, have a - duplicate GUID. It's not clear what we should do in this - case yet, so for now, we'll just ignore the duplicate. - Anyone who wants to add support for that device can come - up with a better workaround for the mess then. - */ - if (guid_already_parsed(gblock[i].guid) == true) { - wmi_gtoa(gblock[i].guid, guid_string); - printk(KERN_INFO PREFIX "Skipping duplicate GUID %s\n", - guid_string); - continue; - } if (debug_dump_wdg) wmi_dump_wdg(&gblock[i]); @@ -851,6 +859,7 @@ if (!wblock) return AE_NO_MEMORY; + wblock->first_instance = !guid_already_parsed(gblock[i].guid); wblock->gblock = gblock[i]; wblock->handle = handle; if (debug_event) { --- 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/eeepc-wmi.c +++ linux-2.6.35/drivers/platform/x86/eeepc-wmi.c @@ -62,13 +62,19 @@ static const struct key_entry eeepc_wmi_keymap[] = { /* Sleep already handled via generic ACPI code */ - { KE_KEY, 0x5d, { KEY_WLAN } }, - { KE_KEY, 0x32, { KEY_MUTE } }, - { KE_KEY, 0x31, { KEY_VOLUMEDOWN } }, - { KE_KEY, 0x30, { KEY_VOLUMEUP } }, { KE_IGNORE, NOTIFY_BRNDOWN_MIN, { KEY_BRIGHTNESSDOWN } }, { KE_IGNORE, NOTIFY_BRNUP_MIN, { KEY_BRIGHTNESSUP } }, + { KE_KEY, 0x30, { KEY_VOLUMEUP } }, + { KE_KEY, 0x31, { KEY_VOLUMEDOWN } }, + { KE_KEY, 0x32, { KEY_MUTE } }, + { KE_KEY, 0x5c, { KEY_F15 } }, + { KE_KEY, 0x5d, { KEY_WLAN } }, + { KE_KEY, 0x6b, { KEY_F22 } }, /* Disable Touchpad */ + { KE_KEY, 0x88, { KEY_WLAN } }, { KE_KEY, 0xcc, { KEY_SWITCHVIDEOMODE } }, + { KE_KEY, 0xe0, { KEY_PROG1 } }, + { KE_KEY, 0xe1, { KEY_F14 } }, + { KE_KEY, 0xe9, { KEY_DISPLAY_OFF } }, { KE_END, 0}, }; --- linux-2.6.35.orig/drivers/platform/x86/dell-laptop.c +++ linux-2.6.35/drivers/platform/x86/dell-laptop.c @@ -83,6 +83,12 @@ }, }, { + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_CHASSIS_TYPE, "9"), /*Laptop*/ + }, + }, + { .ident = "Dell Computer Corporation", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"), @@ -116,6 +122,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."), @@ -621,4 +634,5 @@ MODULE_DESCRIPTION("Dell laptop driver"); MODULE_LICENSE("GPL"); MODULE_ALIAS("dmi:*svnDellInc.:*:ct8:*"); +MODULE_ALIAS("dmi:*svnDellInc.:*:ct9:*"); MODULE_ALIAS("dmi:*svnDellComputerCorporation.:*:ct8:*"); --- 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/asus-laptop.c +++ linux-2.6.35/drivers/platform/x86/asus-laptop.c @@ -1064,9 +1064,9 @@ */ static int asus_gps_rfkill_set(void *data, bool blocked) { - acpi_handle handle = data; + struct asus_laptop *asus = data; - return asus_gps_switch(handle, !blocked); + return asus_gps_switch(asus, !blocked); } static const struct rfkill_ops asus_gps_rfkill_ops = { @@ -1093,7 +1093,7 @@ asus->gps_rfkill = rfkill_alloc("asus-gps", &asus->platform_device->dev, RFKILL_TYPE_GPS, - &asus_gps_rfkill_ops, NULL); + &asus_gps_rfkill_ops, asus); if (!asus->gps_rfkill) return -EINVAL; --- 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/thinkpad_acpi.c +++ linux-2.6.35/drivers/platform/x86/thinkpad_acpi.c @@ -1911,6 +1911,17 @@ TP_ACPI_HOTKEYSCAN_VOLUMEDOWN, TP_ACPI_HOTKEYSCAN_MUTE, TP_ACPI_HOTKEYSCAN_THINKPAD, + TP_ACPI_HOTKEYSCAN_UNK1, + TP_ACPI_HOTKEYSCAN_UNK2, + TP_ACPI_HOTKEYSCAN_UNK3, + TP_ACPI_HOTKEYSCAN_UNK4, + TP_ACPI_HOTKEYSCAN_UNK5, + TP_ACPI_HOTKEYSCAN_UNK6, + TP_ACPI_HOTKEYSCAN_UNK7, + TP_ACPI_HOTKEYSCAN_UNK8, + + /* Hotkey keymap size */ + TPACPI_HOTKEY_MAP_LEN }; enum { /* Keys/events available through NVRAM polling */ @@ -3082,6 +3093,9 @@ TPACPI_Q_IBM('1', 'D', TPACPI_HK_Q_INIMASK), /* X22, X23, X24 */ }; +typedef u16 tpacpi_keymap_entry_t; +typedef tpacpi_keymap_entry_t tpacpi_keymap_t[TPACPI_HOTKEY_MAP_LEN]; + static int __init hotkey_init(struct ibm_init_struct *iibm) { /* Requirements for changing the default keymaps: @@ -3113,9 +3127,17 @@ * If the above is too much to ask, don't change the keymap. * Ask the thinkpad-acpi maintainer to do it, instead. */ - static u16 ibm_keycode_map[] __initdata = { + + enum keymap_index { + TPACPI_KEYMAP_IBM_GENERIC = 0, + TPACPI_KEYMAP_LENOVO_GENERIC, + }; + + static const tpacpi_keymap_t tpacpi_keymaps[] __initconst = { + /* Generic keymap for IBM ThinkPads */ + [TPACPI_KEYMAP_IBM_GENERIC] = { /* Scan Codes 0x00 to 0x0B: ACPI HKEY FN+F1..F12 */ - KEY_FN_F1, KEY_FN_F2, KEY_COFFEE, KEY_SLEEP, + KEY_FN_F1, KEY_BATTERY, KEY_COFFEE, KEY_SLEEP, KEY_WLAN, KEY_FN_F6, KEY_SWITCHVIDEOMODE, KEY_FN_F8, KEY_FN_F9, KEY_FN_F10, KEY_FN_F11, KEY_SUSPEND, @@ -3146,11 +3168,13 @@ /* (assignments unknown, please report if found) */ KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, - }; - static u16 lenovo_keycode_map[] __initdata = { + }, + + /* Generic keymap for Lenovo ThinkPads */ + [TPACPI_KEYMAP_LENOVO_GENERIC] = { /* Scan Codes 0x00 to 0x0B: ACPI HKEY FN+F1..F12 */ KEY_FN_F1, KEY_COFFEE, KEY_BATTERY, KEY_SLEEP, - KEY_WLAN, KEY_FN_F6, KEY_SWITCHVIDEOMODE, KEY_FN_F8, + KEY_WLAN, KEY_CAMERA, KEY_SWITCHVIDEOMODE, KEY_FN_F8, KEY_FN_F9, KEY_FN_F10, KEY_FN_F11, KEY_SUSPEND, /* Scan codes 0x0C to 0x1F: Other ACPI HKEY hot keys */ @@ -3189,11 +3213,25 @@ /* (assignments unknown, please report if found) */ KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, + }, }; -#define TPACPI_HOTKEY_MAP_LEN ARRAY_SIZE(ibm_keycode_map) -#define TPACPI_HOTKEY_MAP_SIZE sizeof(ibm_keycode_map) -#define TPACPI_HOTKEY_MAP_TYPESIZE sizeof(ibm_keycode_map[0]) + static const struct tpacpi_quirk tpacpi_keymap_qtable[] __initconst = { + /* Generic maps (fallback) */ + { + .vendor = PCI_VENDOR_ID_IBM, + .bios = TPACPI_MATCH_ANY, .ec = TPACPI_MATCH_ANY, + .quirks = TPACPI_KEYMAP_IBM_GENERIC, + }, + { + .vendor = PCI_VENDOR_ID_LENOVO, + .bios = TPACPI_MATCH_ANY, .ec = TPACPI_MATCH_ANY, + .quirks = TPACPI_KEYMAP_LENOVO_GENERIC, + }, + }; + +#define TPACPI_HOTKEY_MAP_SIZE sizeof(tpacpi_keymap_t) +#define TPACPI_HOTKEY_MAP_TYPESIZE sizeof(tpacpi_keymap_entry_t) int res, i; int status; @@ -3202,6 +3240,7 @@ bool tabletsw_state = false; unsigned long quirks; + unsigned long keymap_id; vdbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_HKEY, "initializing hotkey subdriver\n"); @@ -3342,7 +3381,6 @@ goto err_exit; /* Set up key map */ - hotkey_keycode_map = kmalloc(TPACPI_HOTKEY_MAP_SIZE, GFP_KERNEL); if (!hotkey_keycode_map) { @@ -3352,17 +3390,14 @@ goto err_exit; } - if (tpacpi_is_lenovo()) { - dbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_HKEY, - "using Lenovo default hot key map\n"); - memcpy(hotkey_keycode_map, &lenovo_keycode_map, - TPACPI_HOTKEY_MAP_SIZE); - } else { - dbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_HKEY, - "using IBM default hot key map\n"); - memcpy(hotkey_keycode_map, &ibm_keycode_map, - TPACPI_HOTKEY_MAP_SIZE); - } + keymap_id = tpacpi_check_quirks(tpacpi_keymap_qtable, + ARRAY_SIZE(tpacpi_keymap_qtable)); + BUG_ON(keymap_id >= ARRAY_SIZE(tpacpi_keymaps)); + dbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_HKEY, + "using keymap number %lu\n", keymap_id); + + memcpy(hotkey_keycode_map, &tpacpi_keymaps[keymap_id], + TPACPI_HOTKEY_MAP_SIZE); input_set_capability(tpacpi_inputdev, EV_MSC, MSC_SCAN); tpacpi_inputdev->keycodesize = TPACPI_HOTKEY_MAP_TYPESIZE; @@ -3469,7 +3504,8 @@ *send_acpi_ev = true; *ignore_acpi_ev = false; - if (scancode > 0 && scancode < 0x21) { + /* HKEY event 0x1001 is scancode 0x00 */ + if (scancode > 0 && scancode <= TPACPI_HOTKEY_MAP_LEN) { scancode--; if (!(hotkey_source_mask & (1 << scancode))) { tpacpi_input_send_key_masked(scancode); --- 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/dell-wmi-aio.c +++ linux-2.6.35/drivers/platform/x86/dell-wmi-aio.c @@ -0,0 +1,173 @@ +/* + * WMI hotkeys support for Dell All-In-One series + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 AIO_PREFIX "dell-wmi-aio: " + +MODULE_DESCRIPTION("WMI hotkeys driver for Dell All-In-One series"); +MODULE_LICENSE("GPL"); + +#define EVENT_GUID1 "284A0E6B-380E-472A-921F-E52786257FB4" +#define EVENT_GUID2 "02314822-307C-4F66-BF0E-48AEAEB26CC8" + +static char *dell_wmi_aio_guids[] = { + EVENT_GUID1, + EVENT_GUID2, + NULL +}; + +MODULE_ALIAS("wmi:"EVENT_GUID1); +MODULE_ALIAS("wmi:"EVENT_GUID2); + +static struct key_entry dell_wmi_aio_keymap[] = { + { KE_KEY, 0xc0, { KEY_VOLUMEUP } }, + { KE_KEY, 0xc1, { KEY_VOLUMEDOWN } }, + { KE_END, 0 } +}; + +static struct input_dev *dell_wmi_aio_input_dev; + +static void dell_wmi_aio_notify(u32 value, void *context) +{ + struct acpi_buffer response = { ACPI_ALLOCATE_BUFFER, NULL }; + union acpi_object *obj; + acpi_status status; + + status = wmi_get_event_data(value, &response); + if (status != AE_OK) { + pr_info(AIO_PREFIX "bad event status 0x%x\n", status); + return; + } + + obj = (union acpi_object *)response.pointer; + if (obj) { + unsigned int scancode; + + switch (obj->type) { + case ACPI_TYPE_INTEGER: + /* Most All-In-One correctly return integer scancode */ + scancode = obj->integer.value; + sparse_keymap_report_event(dell_wmi_aio_input_dev, + scancode, 1, true); + break; + case ACPI_TYPE_BUFFER: + /* Broken machines return the scancode in a buffer */ + if (obj->buffer.pointer && obj->buffer.length > 0) { + scancode = obj->buffer.pointer[0]; + sparse_keymap_report_event( + dell_wmi_aio_input_dev, + scancode, 1, true); + } + break; + } + } + kfree(obj); +} + +static int __init dell_wmi_aio_input_setup(void) +{ + int err; + + dell_wmi_aio_input_dev = input_allocate_device(); + + if (!dell_wmi_aio_input_dev) + return -ENOMEM; + + dell_wmi_aio_input_dev->name = "Dell AIO WMI hotkeys"; + dell_wmi_aio_input_dev->phys = "wmi/input0"; + dell_wmi_aio_input_dev->id.bustype = BUS_HOST; + + err = sparse_keymap_setup(dell_wmi_aio_input_dev, + dell_wmi_aio_keymap, NULL); + if (err) { + pr_err("Unable to setup input device keymap\n"); + goto err_free_dev; + } + err = input_register_device(dell_wmi_aio_input_dev); + if (err) { + pr_info("Unable to register input device\n"); + goto err_free_keymap; + } + return 0; + +err_free_keymap: + sparse_keymap_free(dell_wmi_aio_input_dev); +err_free_dev: + input_free_device(dell_wmi_aio_input_dev); + return err; +} + +static char *dell_wmi_aio_find(void) +{ + int i; + + for (i = 0; dell_wmi_aio_guids[i] != NULL; i++) + if (wmi_has_guid(dell_wmi_aio_guids[i])) + return dell_wmi_aio_guids[i]; + + return NULL; +} + +static int __init dell_wmi_aio_init(void) +{ + int err; + char *guid; + + guid = dell_wmi_aio_find(); + if (guid) { + err = dell_wmi_aio_input_setup(); + + if (err) + return err; + + err = wmi_install_notify_handler(guid, + dell_wmi_aio_notify, NULL); + if (err) { + input_unregister_device(dell_wmi_aio_input_dev); + pr_err(AIO_PREFIX "Unable to register" + " notify handler - %d\n", err); + return err; + } + } else + pr_warning(AIO_PREFIX "No known WMI GUID found\n"); + + return 0; +} + +static void __exit dell_wmi_aio_exit(void) +{ + char *guid; + + guid = dell_wmi_aio_find(); + if (guid) { + wmi_remove_notify_handler(guid); + input_unregister_device(dell_wmi_aio_input_dev); + } +} + +module_init(dell_wmi_aio_init); +module_exit(dell_wmi_aio_exit); --- linux-2.6.35.orig/drivers/platform/x86/Kconfig +++ linux-2.6.35/drivers/platform/x86/Kconfig @@ -97,6 +97,18 @@ To compile this driver as a module, choose M here: the module will be called dell-wmi. +config DELL_WMI_AIO + tristate "WMI Hotkeys for Dell All-In-One series" + depends on ACPI_WMI + depends on INPUT + ---help--- + Say Y here if you want to support WMI-based hotkeys on Dell + All-In-One machines. + + To compile this driver as a module, choose M here: the module will + be called dell-wmi. + + config FUJITSU_LAPTOP tristate "Fujitsu Laptop Extras" depends on ACPI @@ -537,4 +549,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 @@ -10,6 +10,7 @@ obj-$(CONFIG_COMPAL_LAPTOP) += compal-laptop.o obj-$(CONFIG_DELL_LAPTOP) += dell-laptop.o obj-$(CONFIG_DELL_WMI) += dell-wmi.o +obj-$(CONFIG_DELL_WMI_AIO) += dell-wmi-aio.o obj-$(CONFIG_ACER_WMI) += acer-wmi.o obj-$(CONFIG_ACERHDF) += acerhdf.o obj-$(CONFIG_HP_WMI) += hp-wmi.o @@ -26,3 +27,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/adm1026.c +++ linux-2.6.35/drivers/hwmon/adm1026.c @@ -916,27 +916,27 @@ int nr = sensor_attr->index; struct i2c_client *client = to_i2c_client(dev); struct adm1026_data *data = i2c_get_clientdata(client); - int val, orig_div, new_div, shift; + int val, orig_div, new_div; val = simple_strtol(buf, NULL, 10); new_div = DIV_TO_REG(val); - if (new_div == 0) { - return -EINVAL; - } + mutex_lock(&data->update_lock); orig_div = data->fan_div[nr]; data->fan_div[nr] = DIV_FROM_REG(new_div); if (nr < 4) { /* 0 <= nr < 4 */ - shift = 2 * nr; adm1026_write_value(client, ADM1026_REG_FAN_DIV_0_3, - ((DIV_TO_REG(orig_div) & (~(0x03 << shift))) | - (new_div << shift))); + (DIV_TO_REG(data->fan_div[0]) << 0) | + (DIV_TO_REG(data->fan_div[1]) << 2) | + (DIV_TO_REG(data->fan_div[2]) << 4) | + (DIV_TO_REG(data->fan_div[3]) << 6)); } else { /* 3 < nr < 8 */ - shift = 2 * (nr - 4); adm1026_write_value(client, ADM1026_REG_FAN_DIV_4_7, - ((DIV_TO_REG(orig_div) & (~(0x03 << (2 * shift)))) | - (new_div << shift))); + (DIV_TO_REG(data->fan_div[4]) << 0) | + (DIV_TO_REG(data->fan_div[5]) << 2) | + (DIV_TO_REG(data->fan_div[6]) << 4) | + (DIV_TO_REG(data->fan_div[7]) << 6)); } if (data->fan_div[nr] != orig_div) { --- 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/lm85.c +++ linux-2.6.35/drivers/hwmon/lm85.c @@ -1259,6 +1259,7 @@ switch (data->type) { case adm1027: case adt7463: + case adt7468: case emc6d100: case emc6d102: data->freq_map = adm1027_freq_map; --- 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/lis3lv02d.c +++ linux-2.6.35/drivers/hwmon/lis3lv02d.c @@ -277,7 +277,7 @@ wake_up_interruptible(&lis3_dev.misc_wait); kill_fasync(&lis3_dev.async_queue, SIGIO, POLL_IN); out: - if (lis3_dev.whoami == WAI_8B && lis3_dev.idev && + if (lis3_dev.pdata && lis3_dev.whoami == WAI_8B && lis3_dev.idev && lis3_dev.idev->input->users) return IRQ_WAKE_THREAD; return IRQ_HANDLED; @@ -718,7 +718,7 @@ * io-apic is not configurable (and generates a warning) but I keep it * in case of support for other hardware. */ - if (dev->whoami == WAI_8B) + if (dev->pdata && dev->whoami == WAI_8B) thread_fn = lis302dl_interrupt_thread1_8b; else thread_fn = NULL; --- 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/cpuidle/cpuidle.c +++ linux-2.6.35/drivers/cpuidle/cpuidle.c @@ -74,6 +74,17 @@ */ hrtimer_peek_ahead_timers(); #endif + + /* + * Call the device's prepare function before calling the + * governor's select function. ->prepare gives the device's + * cpuidle driver a chance to update any dynamic information + * of its cpuidle states for the current idle period, e.g. + * state availability, latencies, residencies, etc. + */ + if (dev->prepare) + dev->prepare(dev); + /* ask the governor for the next state */ next_state = cpuidle_curr_governor->select(dev); if (need_resched()) { @@ -282,6 +293,26 @@ poll_idle_init(dev); + /* + * cpuidle driver should set the dev->power_specified bit + * before registering the device if the driver provides + * power_usage numbers. + * + * For those devices whose ->power_specified is not set, + * we fill in power_usage with decreasing values as the + * cpuidle code has an implicit assumption that state Cn + * uses less power than C(n-1). + * + * With CONFIG_ARCH_HAS_CPU_RELAX, C0 is already assigned + * an power value of -1. So we use -2, -3, etc, for other + * c-states. + */ + if (!dev->power_specified) { + int i; + for (i = CPUIDLE_DRIVER_STATE_START; i < dev->state_count; i++) + dev->states[i].power_usage = -1 - i; + } + per_cpu(cpuidle_devices, dev->cpu) = dev; list_add(&dev->device_list, &cpuidle_detected_devices); if ((ret = cpuidle_add_sysfs(sys_dev))) { --- linux-2.6.35.orig/drivers/cpuidle/governors/menu.c +++ linux-2.6.35/drivers/cpuidle/governors/menu.c @@ -234,6 +234,7 @@ { struct menu_device *data = &__get_cpu_var(menu_devices); int latency_req = pm_qos_request(PM_QOS_CPU_DMA_LATENCY); + unsigned int power_usage = -1; int i; int multiplier; @@ -278,19 +279,27 @@ if (data->expected_us > 5) data->last_state_idx = CPUIDLE_DRIVER_STATE_START; - - /* find the deepest idle state that satisfies our constraints */ + /* + * Find the idle state with the lowest power while satisfying + * our constraints. + */ for (i = CPUIDLE_DRIVER_STATE_START; i < dev->state_count; i++) { struct cpuidle_state *s = &dev->states[i]; + if (s->flags & CPUIDLE_FLAG_IGNORE) + continue; if (s->target_residency > data->predicted_us) - break; + continue; if (s->exit_latency > latency_req) - break; + continue; if (s->exit_latency * multiplier > data->predicted_us) - break; - data->exit_us = s->exit_latency; - data->last_state_idx = i; + continue; + + if (s->power_usage < power_usage) { + power_usage = s->power_usage; + data->last_state_idx = i; + data->exit_us = s->exit_latency; + } } return data->last_state_idx; --- linux-2.6.35.orig/drivers/crypto/padlock-aes.c +++ linux-2.6.35/drivers/crypto/padlock-aes.c @@ -286,7 +286,7 @@ if (initial) asm volatile (".byte 0xf3,0x0f,0xa7,0xd0" /* rep xcryptcbc */ : "+S" (input), "+D" (output), "+a" (iv) - : "d" (control_word), "b" (key), "c" (count)); + : "d" (control_word), "b" (key), "c" (initial)); asm volatile (".byte 0xf3,0x0f,0xa7,0xd0" /* rep xcryptcbc */ : "+S" (input), "+D" (output), "+a" (iv) --- 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/gpio/cs5535-gpio.c +++ linux-2.6.35/drivers/gpio/cs5535-gpio.c @@ -56,6 +56,29 @@ * registers, see include/linux/cs5535.h. */ +static void errata_outl(struct cs5535_gpio_chip *chip, u32 val, + unsigned int reg) +{ + unsigned long addr = chip->base + 0x80 + reg; + + /* + * According to the CS5536 errata (#36), after suspend + * a write to the high bank GPIO register will clear all + * non-selected bits; the recommended workaround is a + * read-modify-write operation. + * + * Don't apply this errata to the edge status GPIOs, as writing + * to their lower bits will clear them. + */ + if (reg != GPIO_POSITIVE_EDGE_STS && reg != GPIO_NEGATIVE_EDGE_STS) { + if (val & 0xffff) + val |= (inl(addr) & 0xffff); /* ignore the high bits */ + else + val |= (inl(addr) ^ (val >> 16)); + } + outl(val, addr); +} + static void __cs5535_gpio_set(struct cs5535_gpio_chip *chip, unsigned offset, unsigned int reg) { @@ -64,7 +87,7 @@ outl(1 << offset, chip->base + reg); else /* high bank register */ - outl(1 << (offset - 16), chip->base + 0x80 + reg); + errata_outl(chip, 1 << (offset - 16), reg); } void cs5535_gpio_set(unsigned offset, unsigned int reg) @@ -86,7 +109,7 @@ outl(1 << (offset + 16), chip->base + reg); else /* high bank register */ - outl(1 << offset, chip->base + 0x80 + reg); + errata_outl(chip, 1 << offset, reg); } void cs5535_gpio_clear(unsigned offset, unsigned int reg) --- linux-2.6.35.orig/drivers/gpio/rdc321x-gpio.c +++ linux-2.6.35/drivers/gpio/rdc321x-gpio.c @@ -135,7 +135,7 @@ struct rdc321x_gpio *rdc321x_gpio_dev; struct rdc321x_gpio_pdata *pdata; - pdata = pdev->dev.platform_data; + pdata = platform_get_drvdata(pdev); if (!pdata) { dev_err(&pdev->dev, "no platform data supplied\n"); return -ENODEV; --- 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/rtc/rtc-rs5c372.c +++ linux-2.6.35/drivers/rtc/rtc-rs5c372.c @@ -207,7 +207,7 @@ static int rs5c372_set_datetime(struct i2c_client *client, struct rtc_time *tm) { struct rs5c372 *rs5c = i2c_get_clientdata(client); - unsigned char buf[8]; + unsigned char buf[7]; int addr; dev_dbg(&client->dev, "%s: tm is secs=%d, mins=%d, hours=%d " --- 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) @@ -255,7 +256,7 @@ } #endif - memset(cpu_evtchn_mask(0), ~0, sizeof(cpu_evtchn_mask(0))); + memset(cpu_evtchn_mask(0), ~0, sizeof(struct cpu_evtchn_s)); } static inline void clear_evtchn(int port) @@ -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/mv_xor.c +++ linux-2.6.35/drivers/dma/mv_xor.c @@ -162,7 +162,7 @@ static void mv_xor_device_clear_eoc_cause(struct mv_xor_chan *chan) { - u32 val = (1 << (1 + (chan->idx * 16))); + u32 val = ~(1 << (chan->idx * 16)); dev_dbg(chan->device->common.dev, "%s, val 0x%08x\n", __func__, val); __raw_writel(val, XOR_INTR_CAUSE(chan)); } @@ -449,7 +449,7 @@ static void mv_xor_tasklet(unsigned long data) { struct mv_xor_chan *chan = (struct mv_xor_chan *) data; - __mv_xor_slot_cleanup(chan); + mv_xor_slot_cleanup(chan); } static struct mv_xor_desc_slot * --- 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); @@ -859,7 +879,7 @@ dma->device_issue_pending = ioat2_issue_pending; dma->device_alloc_chan_resources = ioat2_alloc_chan_resources; dma->device_free_chan_resources = ioat2_free_chan_resources; - dma->device_tx_status = ioat_tx_status; + dma->device_tx_status = ioat_dma_tx_status; err = ioat_probe(device); if (err) --- 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/bluetooth/hci_ldisc.c +++ linux-2.6.35/drivers/bluetooth/hci_ldisc.c @@ -258,9 +258,16 @@ BT_DBG("tty %p", tty); + /* FIXME: This btw is bogus, nothing requires the old ldisc to clear + the pointer */ if (hu) return -EEXIST; + /* Error if the tty has no write op instead of leaving an exploitable + hole */ + if (tty->ops->write == NULL) + return -EOPNOTSUPP; + if (!(hu = kzalloc(sizeof(struct hci_uart), GFP_KERNEL))) { BT_ERR("Can't allocate control structure"); return -ENFILE; --- 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; @@ -503,6 +505,7 @@ struct kbd_struct * kbd; unsigned int console; unsigned char ucval; + unsigned int uival; void __user *up = (void __user *)arg; int i, perm; int ret = 0; @@ -657,7 +660,7 @@ break; case KDGETMODE: - ucval = vc->vc_mode; + uival = vc->vc_mode; goto setint; case KDMAPDISP: @@ -695,7 +698,7 @@ break; case KDGKBMODE: - ucval = ((kbd->kbdmode == VC_RAW) ? K_RAW : + uival = ((kbd->kbdmode == VC_RAW) ? K_RAW : (kbd->kbdmode == VC_MEDIUMRAW) ? K_MEDIUMRAW : (kbd->kbdmode == VC_UNICODE) ? K_UNICODE : K_XLATE); @@ -717,9 +720,9 @@ break; case KDGKBMETA: - ucval = (vc_kbd_mode(kbd, VC_META) ? K_ESCPREFIX : K_METABIT); + uival = (vc_kbd_mode(kbd, VC_META) ? K_ESCPREFIX : K_METABIT); setint: - ret = put_user(ucval, (int __user *)arg); + ret = put_user(uival, (int __user *)arg); break; case KDGETKEYCODE: @@ -949,7 +952,7 @@ for (i = 0; i < MAX_NR_CONSOLES; ++i) if (! VT_IS_IN_USE(i)) break; - ucval = i < MAX_NR_CONSOLES ? (i+1) : -1; + uival = i < MAX_NR_CONSOLES ? (i+1) : -1; goto setint; /* @@ -1343,9 +1346,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 +1379,7 @@ */ if (tty) __do_SAK(tty); - reset_vc(vc); + reset_vc(vc, KD_TEXT); } release_console_sem(); } @@ -1591,6 +1594,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 +1603,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 +1666,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 +1738,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/hpet.c +++ linux-2.6.35/drivers/char/hpet.c @@ -479,6 +479,21 @@ if (irq) { unsigned long irq_flags; + if (devp->hd_flags & HPET_SHARED_IRQ) { + /* + * To prevent the interrupt handler from seeing an + * unwanted interrupt status bit, program the timer + * so that it will not fire in the near future ... + */ + writel(readl(&timer->hpet_config) & ~Tn_TYPE_CNF_MASK, + &timer->hpet_config); + write_counter(read_counter(&hpet->hpet_mc), + &timer->hpet_compare); + /* ... and clear any left-over status. */ + isr = 1 << (devp - devp->hd_hpets->hp_dev); + writel(isr, &hpet->hpet_isr); + } + sprintf(devp->hd_name, "hpet%d", (int)(devp - hpetp->hp_dev)); irq_flags = devp->hd_flags & HPET_SHARED_IRQ ? IRQF_SHARED : IRQF_DISABLED; @@ -970,6 +985,8 @@ return -ENODEV; if (!data.hd_address || !data.hd_nirqs) { + if (data.hd_address) + iounmap(data.hd_address); printk("%s: no address or irqs in _CRS\n", __func__); return -ENODEV; } --- linux-2.6.35.orig/drivers/char/ramoops.c +++ linux-2.6.35/drivers/char/ramoops.c @@ -27,7 +27,6 @@ #include #define RAMOOPS_KERNMSG_HDR "====" -#define RAMOOPS_HEADER_SIZE (5 + sizeof(struct timeval)) #define RECORD_SIZE 4096 @@ -63,8 +62,8 @@ struct ramoops_context, dump); unsigned long s1_start, s2_start; unsigned long l1_cpy, l2_cpy; - int res; - char *buf; + int res, hdr_size; + char *buf, *buf_orig; struct timeval timestamp; /* Only dump oopses if dump_oops is set */ @@ -72,6 +71,8 @@ return; buf = (char *)(cxt->virt_addr + (cxt->count * RECORD_SIZE)); + buf_orig = buf; + memset(buf, '\0', RECORD_SIZE); res = sprintf(buf, "%s", RAMOOPS_KERNMSG_HDR); buf += res; @@ -79,8 +80,9 @@ res = sprintf(buf, "%lu.%lu\n", (long)timestamp.tv_sec, (long)timestamp.tv_usec); buf += res; - l2_cpy = min(l2, (unsigned long)(RECORD_SIZE - RAMOOPS_HEADER_SIZE)); - l1_cpy = min(l1, (unsigned long)(RECORD_SIZE - RAMOOPS_HEADER_SIZE) - l2_cpy); + hdr_size = buf - buf_orig; + l2_cpy = min(l2, (unsigned long)(RECORD_SIZE - hdr_size)); + l1_cpy = min(l1, (unsigned long)(RECORD_SIZE - hdr_size) - l2_cpy); s2_start = l2 - l2_cpy; s1_start = l1 - l1_cpy; --- linux-2.6.35.orig/drivers/char/tty_ldisc.c +++ linux-2.6.35/drivers/char/tty_ldisc.c @@ -47,6 +47,7 @@ static DEFINE_SPINLOCK(tty_ldisc_lock); static DECLARE_WAIT_QUEUE_HEAD(tty_ldisc_wait); +static DECLARE_WAIT_QUEUE_HEAD(tty_ldisc_idle); /* Line disc dispatch table */ static struct tty_ldisc_ops *tty_ldiscs[NR_LDISCS]; @@ -83,6 +84,7 @@ return; } local_irq_restore(flags); + wake_up(&tty_ldisc_idle); } /** @@ -450,6 +452,8 @@ /* BKL here locks verus a hangup event */ lock_kernel(); ret = ld->ops->open(tty); + if (ret) + clear_bit(TTY_LDISC_OPEN, &tty->flags); unlock_kernel(); return ret; } @@ -530,6 +534,23 @@ } /** + * tty_ldisc_wait_idle - wait for the ldisc to become idle + * @tty: tty to wait for + * + * Wait for the line discipline to become idle. The discipline must + * have been halted for this to guarantee it remains idle. + */ +static int tty_ldisc_wait_idle(struct tty_struct *tty) +{ + int ret; + ret = wait_event_interruptible_timeout(tty_ldisc_idle, + atomic_read(&tty->ldisc->users) == 1, 5 * HZ); + if (ret < 0) + return ret; + return ret > 0 ? 0 : -EBUSY; +} + +/** * tty_set_ldisc - set line discipline * @tty: the terminal to set * @ldisc: the line discipline @@ -632,8 +653,17 @@ flush_scheduled_work(); + retval = tty_ldisc_wait_idle(tty); + mutex_lock(&tty->ldisc_mutex); lock_kernel(); + + /* handle wait idle failure locked */ + if (retval) { + tty_ldisc_put(new_ldisc); + goto enable; + } + if (test_bit(TTY_HUPPED, &tty->flags)) { /* We were raced by the hangup method. It will have stomped the ldisc data and closed the ldisc down */ @@ -667,6 +697,7 @@ tty_ldisc_put(o_ldisc); +enable: /* * Allow ldisc referencing to occur again */ @@ -712,9 +743,12 @@ * state closed */ -static void tty_ldisc_reinit(struct tty_struct *tty, int ldisc) +static int tty_ldisc_reinit(struct tty_struct *tty, int ldisc) { - struct tty_ldisc *ld; + struct tty_ldisc *ld = tty_ldisc_get(ldisc); + + if (IS_ERR(ld)) + return -1; tty_ldisc_close(tty, tty->ldisc); tty_ldisc_put(tty->ldisc); @@ -722,10 +756,10 @@ /* * Switch the line discipline back */ - ld = tty_ldisc_get(ldisc); - BUG_ON(IS_ERR(ld)); tty_ldisc_assign(tty, ld); tty_set_termios_ldisc(tty, ldisc); + + return 0; } /** @@ -787,13 +821,16 @@ a FIXME */ if (tty->ldisc) { /* Not yet closed */ if (reset == 0) { - tty_ldisc_reinit(tty, tty->termios->c_line); - err = tty_ldisc_open(tty, tty->ldisc); + + if (!tty_ldisc_reinit(tty, tty->termios->c_line)) + err = tty_ldisc_open(tty, tty->ldisc); + else + err = 1; } /* If the re-open fails or we reset then go to N_TTY. The N_TTY open cannot fail */ if (reset || err) { - tty_ldisc_reinit(tty, N_TTY); + BUG_ON(tty_ldisc_reinit(tty, N_TTY)); WARN_ON(tty_ldisc_open(tty, tty->ldisc)); } tty_ldisc_enable(tty); --- linux-2.6.35.orig/drivers/char/virtio_console.c +++ linux-2.6.35/drivers/char/virtio_console.c @@ -459,9 +459,12 @@ /* * Wait till the host acknowledges it pushed out the data we - * sent. This is done for ports in blocking mode or for data - * from the hvc_console; the tty operations are performed with - * spinlocks held so we can't sleep here. + * sent. This is done for data from the hvc_console; the tty + * operations are performed with spinlocks held so we can't + * sleep here. An alternative would be to copy the data to a + * buffer and relax the spinning requirement. The downside is + * we need to kmalloc a GFP_ATOMIC buffer each time the + * console driver writes something out. */ while (!virtqueue_get_buf(out_vq, &len)) cpu_relax(); @@ -596,6 +599,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; @@ -622,6 +629,14 @@ goto free_buf; } + /* + * We now ask send_buf() to not spin for generic ports -- we + * can re-use the same code path that non-blocking file + * descriptors take for blocking file descriptors since the + * wait is already done and we're certain the write will go + * through to the host. + */ + nonblock = true; ret = send_buf(port, buf, count, nonblock); if (nonblock && ret > 0) @@ -642,7 +657,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_buffer.c +++ linux-2.6.35/drivers/char/tty_buffer.c @@ -413,7 +413,8 @@ spin_lock_irqsave(&tty->buf.lock, flags); if (!test_and_set_bit(TTY_FLUSHING, &tty->flags)) { - struct tty_buffer *head; + struct tty_buffer *head, *tail = tty->buf.tail; + int seen_tail = 0; while ((head = tty->buf.head) != NULL) { int count; char *char_buf; @@ -423,6 +424,15 @@ if (!count) { if (head->next == NULL) break; + /* + There's a possibility tty might get new buffer + added during the unlock window below. We could + end up spinning in here forever hogging the CPU + completely. To avoid this let's have a rest each + time we processed the tail buffer. + */ + if (tail == head) + seen_tail = 1; tty->buf.head = head->next; tty_buffer_free(tty, head); continue; @@ -432,7 +442,7 @@ line discipline as we want to empty the queue */ if (test_bit(TTY_FLUSHPENDING, &tty->flags)) break; - if (!tty->receive_room) { + if (!tty->receive_room || seen_tail) { schedule_delayed_work(&tty->buf.work, 1); break; } --- linux-2.6.35.orig/drivers/char/tty_io.c +++ linux-2.6.35/drivers/char/tty_io.c @@ -96,6 +96,7 @@ #include #include #include +#include #include #include @@ -2456,6 +2457,20 @@ return tty->ops->tiocmset(tty, file, set, clear); } +static int tty_tiocgicount(struct tty_struct *tty, void __user *arg) +{ + int retval = -EINVAL; + struct serial_icounter_struct icount; + memset(&icount, 0, sizeof(icount)); + if (tty->ops->get_icount) + retval = tty->ops->get_icount(tty, &icount); + if (retval != 0) + return retval; + if (copy_to_user(arg, &icount, sizeof(icount))) + return -EFAULT; + return 0; +} + struct tty_struct *tty_pair_get_tty(struct tty_struct *tty) { if (tty->driver->type == TTY_DRIVER_TYPE_PTY && @@ -2576,6 +2591,12 @@ case TIOCMBIC: case TIOCMBIS: return tty_tiocmset(tty, file, cmd, p); + case TIOCGICOUNT: + retval = tty_tiocgicount(tty, p); + /* For the moment allow fall through to the old method */ + if (retval != -EINVAL) + return retval; + break; case TCFLSH: switch (arg) { case TCIFLUSH: @@ -3128,7 +3149,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 +3170,4 @@ #endif return 0; } -module_init(tty_init); + --- linux-2.6.35.orig/drivers/char/n_gsm.c +++ linux-2.6.35/drivers/char/n_gsm.c @@ -717,8 +717,8 @@ if (msg->len < 128) *--dp = (msg->len << 1) | EA; else { - *--dp = (msg->len >> 6) | EA; - *--dp = (msg->len & 127) << 1; + *--dp = (msg->len >> 7); /* bits 7 - 15 */ + *--dp = (msg->len & 127) << 1; /* bits 0 - 6 */ } } @@ -969,6 +969,8 @@ { struct gsm_msg *msg; msg = gsm_data_alloc(gsm, 0, dlen + 2, gsm->ftype); + if (msg == NULL) + return; msg->data[0] = (cmd & 0xFE) << 1 | EA; /* Clear C/R */ msg->data[1] = (dlen << 1) | EA; memcpy(msg->data + 2, data, dlen); --- linux-2.6.35.orig/drivers/char/agp/intel-agp.c +++ linux-2.6.35/drivers/char/agp/intel-agp.c @@ -12,6 +12,7 @@ #include #include "agp.h" #include "intel-agp.h" +#include #include "intel-gtt.c" @@ -805,6 +806,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 +818,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 +858,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; } @@ -1030,12 +1048,14 @@ ID(PCI_DEVICE_ID_INTEL_G45_HB), ID(PCI_DEVICE_ID_INTEL_G41_HB), ID(PCI_DEVICE_ID_INTEL_B43_HB), + ID(PCI_DEVICE_ID_INTEL_B43_1_HB), ID(PCI_DEVICE_ID_INTEL_IRONLAKE_D_HB), ID(PCI_DEVICE_ID_INTEL_IRONLAKE_M_HB), ID(PCI_DEVICE_ID_INTEL_IRONLAKE_MA_HB), 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 @@ -60,6 +60,12 @@ #define I810_PTE_LOCAL 0x00000002 #define I810_PTE_VALID 0x00000001 #define I830_PTE_SYSTEM_CACHED 0x00000006 +/* GT PTE cache control fields */ +#define GEN6_PTE_UNCACHED 0x00000002 +#define GEN6_PTE_LLC 0x00000004 +#define GEN6_PTE_LLC_MLC 0x00000006 +#define GEN6_PTE_GFDT 0x00000008 + #define I810_SMRAM_MISCC 0x70 #define I810_GFX_MEM_WIN_SIZE 0x00010000 #define I810_GFX_MEM_WIN_32M 0x00010000 @@ -178,6 +184,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 +202,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 +238,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}, @@ -45,6 +49,26 @@ .type = INTEL_AGP_CACHED_MEMORY} }; +#define INTEL_AGP_UNCACHED_MEMORY 0 +#define INTEL_AGP_CACHED_MEMORY_LLC 1 +#define INTEL_AGP_CACHED_MEMORY_LLC_GFDT 2 +#define INTEL_AGP_CACHED_MEMORY_LLC_MLC 3 +#define INTEL_AGP_CACHED_MEMORY_LLC_MLC_GFDT 4 + +static struct gatt_mask intel_gen6_masks[] = +{ + {.mask = I810_PTE_VALID | GEN6_PTE_UNCACHED, + .type = INTEL_AGP_UNCACHED_MEMORY }, + {.mask = I810_PTE_VALID | GEN6_PTE_LLC, + .type = INTEL_AGP_CACHED_MEMORY_LLC }, + {.mask = I810_PTE_VALID | GEN6_PTE_LLC | GEN6_PTE_GFDT, + .type = INTEL_AGP_CACHED_MEMORY_LLC_GFDT }, + {.mask = I810_PTE_VALID | GEN6_PTE_LLC_MLC, + .type = INTEL_AGP_CACHED_MEMORY_LLC_MLC }, + {.mask = I810_PTE_VALID | GEN6_PTE_LLC_MLC | GEN6_PTE_GFDT, + .type = INTEL_AGP_CACHED_MEMORY_LLC_MLC_GFDT }, +}; + static struct _intel_private { struct pci_dev *pcidev; /* device one */ u8 __iomem *registers; @@ -171,13 +195,6 @@ off_t pg_start, int mask_type) { int i, j; - u32 cache_bits = 0; - - if (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB || - agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB) - { - cache_bits = I830_PTE_SYSTEM_CACHED; - } for (i = 0, j = pg_start; i < mem->page_count; i++, j++) { writel(agp_bridge->driver->mask_memory(agp_bridge, @@ -310,6 +327,23 @@ return 0; } +static int intel_gen6_type_to_mask_type(struct agp_bridge_data *bridge, + int type) +{ + unsigned int type_mask = type & ~AGP_USER_CACHED_MEMORY_GFDT; + unsigned int gfdt = type & AGP_USER_CACHED_MEMORY_GFDT; + + if (type_mask == AGP_USER_UNCACHED_MEMORY) + return INTEL_AGP_UNCACHED_MEMORY; + else if (type_mask == AGP_USER_CACHED_MEMORY_LLC_MLC) + return gfdt ? INTEL_AGP_CACHED_MEMORY_LLC_MLC_GFDT : + INTEL_AGP_CACHED_MEMORY_LLC_MLC; + else /* set 'normal'/'cached' to LLC by default */ + return gfdt ? INTEL_AGP_CACHED_MEMORY_LLC_GFDT : + INTEL_AGP_CACHED_MEMORY_LLC; +} + + static int intel_i810_insert_entries(struct agp_memory *mem, off_t pg_start, int type) { @@ -497,7 +531,7 @@ pci_read_config_word(agp_bridge->dev, I830_GMCH_CTRL, &gmch_ctrl); - if (IS_I965) { + if (IS_G33 || IS_I965) { u32 pgetbl_ctl; pgetbl_ctl = readl(intel_private.registers+I810_PGETBL_CTL); @@ -530,22 +564,6 @@ size = 512; } size += 4; /* add in BIOS popup space */ - } else if (IS_G33 && !IS_PINEVIEW) { - /* G33's GTT size defined in gmch_ctrl */ - switch (gmch_ctrl & G33_PGETBL_SIZE_MASK) { - case G33_PGETBL_SIZE_1M: - size = 1024; - break; - case G33_PGETBL_SIZE_2M: - size = 2048; - break; - default: - dev_info(&agp_bridge->dev->dev, - "unknown page table size 0x%x, assuming 512KB\n", - (gmch_ctrl & G33_PGETBL_SIZE_MASK)); - size = 512; - } - size += 4; } else if (IS_G4X || IS_PINEVIEW) { /* On 4 series hardware, GTT stolen is separate from graphics * stolen, ignore it in stolen gtt entries counting. However, @@ -581,8 +599,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 +727,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 +1074,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) @@ -1147,7 +1169,7 @@ mask_type = agp_bridge->driver->agp_type_to_mask_type(agp_bridge, type); - if (mask_type != 0 && mask_type != AGP_PHYS_MEMORY && + if (!IS_SNB && mask_type != 0 && mask_type != AGP_PHYS_MEMORY && mask_type != INTEL_AGP_CACHED_MEMORY) goto out_err; @@ -1212,24 +1234,31 @@ int size; if (IS_G33) { - u16 gmch_ctrl; + u32 pgetbl_ctl; + pgetbl_ctl = readl(intel_private.registers+I810_PGETBL_CTL); - /* G33's GTT size defined in gmch_ctrl */ - pci_read_config_word(agp_bridge->dev, I830_GMCH_CTRL, &gmch_ctrl); - switch (gmch_ctrl & I830_GMCH_GMS_MASK) { - case I830_GMCH_GMS_STOLEN_512: + switch (pgetbl_ctl & I965_PGETBL_SIZE_MASK) { + case I965_PGETBL_SIZE_128KB: + size = 128; + break; + case I965_PGETBL_SIZE_256KB: + size = 256; + break; + case I965_PGETBL_SIZE_512KB: size = 512; break; - case I830_GMCH_GMS_STOLEN_1024: + case I965_PGETBL_SIZE_1MB: size = 1024; break; - case I830_GMCH_GMS_STOLEN_8192: - size = 8*1024; + case I965_PGETBL_SIZE_2MB: + size = 2048; + break; + case I965_PGETBL_SIZE_1_5MB: + size = 1024 + 512; break; default: - dev_info(&agp_bridge->dev->dev, - "unknown page table size 0x%x, assuming 512KB\n", - (gmch_ctrl & I830_GMCH_GMS_MASK)); + dev_info(&intel_private.pcidev->dev, + "unknown page table size, assuming 512KB\n"); size = 512; } } else { @@ -1261,14 +1290,6 @@ pci_read_config_dword(intel_private.pcidev, I915_MMADDR, &temp); pci_read_config_dword(intel_private.pcidev, I915_PTEADDR, &temp2); - gtt_map_size = intel_i915_get_gtt_size(); - - intel_private.gtt = ioremap(temp2, gtt_map_size); - if (!intel_private.gtt) - return -ENOMEM; - - intel_private.gtt_total_size = gtt_map_size / 4; - temp &= 0xfff80000; intel_private.registers = ioremap(temp, 128 * 4096); @@ -1277,6 +1298,14 @@ return -ENOMEM; } + gtt_map_size = intel_i915_get_gtt_size(); + + intel_private.gtt = ioremap(temp2, gtt_map_size); + if (!intel_private.gtt) + return -ENOMEM; + + intel_private.gtt_total_size = gtt_map_size / 4; + temp = readl(intel_private.registers+I810_PGETBL_CTL) & 0xfffff000; global_cache_flush(); /* FIXME: ? */ @@ -1309,6 +1338,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 +1367,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 +1557,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_gen6_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_gen6_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/pcmcia/synclink_cs.c +++ linux-2.6.35/drivers/char/pcmcia/synclink_cs.c @@ -4132,6 +4132,8 @@ if (cmd != SIOCWANDEV) return hdlc_ioctl(dev, ifr, cmd); + memset(&new_line, 0, size); + switch(ifr->ifr_settings.type) { case IF_GET_IFACE: /* return current sync_serial_settings */ --- linux-2.6.35.orig/drivers/char/tpm/tpm_tis.c +++ linux-2.6.35/drivers/char/tpm/tpm_tis.c @@ -25,6 +25,7 @@ #include #include #include +#include #include "tpm.h" #define TPM_HEADER_SIZE 10 @@ -78,6 +79,26 @@ static LIST_HEAD(tis_chips); static DEFINE_SPINLOCK(tis_lock); +#ifdef CONFIG_ACPI +static int is_itpm(struct pnp_dev *dev) +{ + struct acpi_device *acpi = pnp_acpi_device(dev); + struct acpi_hardware_id *id; + + list_for_each_entry(id, &acpi->pnp.ids, list) { + if (!strcmp("INTC0102", id->id)) + return 1; + } + + return 0; +} +#else +static int is_itpm(struct pnp_dev *dev) +{ + return 0; +} +#endif + static int check_locality(struct tpm_chip *chip, int l) { if ((ioread8(chip->vendor.iobase + TPM_ACCESS(l)) & @@ -613,6 +634,9 @@ else interrupts = 0; + if (is_itpm(pnp_dev)) + itpm = 1; + return tpm_tis_init(&pnp_dev->dev, start, len, irq); } --- linux-2.6.35.orig/drivers/char/ipmi/ipmi_si_intf.c +++ linux-2.6.35/drivers/char/ipmi/ipmi_si_intf.c @@ -1662,6 +1662,17 @@ return 0; } +static struct smi_info *smi_info_alloc(void) +{ + struct smi_info *info = kzalloc(sizeof(*info), GFP_KERNEL); + + if (info) { + spin_lock_init(&info->si_lock); + spin_lock_init(&info->msg_lock); + } + return info; +} + static int hotmod_handler(const char *val, struct kernel_param *kp) { char *str = kstrdup(val, GFP_KERNEL); @@ -1776,7 +1787,7 @@ } if (op == HM_ADD) { - info = kzalloc(sizeof(*info), GFP_KERNEL); + info = smi_info_alloc(); if (!info) { rv = -ENOMEM; goto out; @@ -1838,7 +1849,7 @@ if (!ports[i] && !addrs[i]) continue; - info = kzalloc(sizeof(*info), GFP_KERNEL); + info = smi_info_alloc(); if (!info) return; @@ -2025,7 +2036,7 @@ else addr_space = IPMI_IO_ADDR_SPACE; - info = kzalloc(sizeof(*info), GFP_KERNEL); + info = smi_info_alloc(); if (!info) { printk(KERN_ERR PFX "Could not allocate SI data (3)\n"); return -ENOMEM; @@ -2129,7 +2140,7 @@ if (!acpi_dev) return -ENODEV; - info = kzalloc(sizeof(*info), GFP_KERNEL); + info = smi_info_alloc(); if (!info) return -ENOMEM; @@ -2176,6 +2187,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; @@ -2299,7 +2318,7 @@ { struct smi_info *info; - info = kzalloc(sizeof(*info), GFP_KERNEL); + info = smi_info_alloc(); if (!info) { printk(KERN_ERR PFX "Could not allocate SI data\n"); return; @@ -2400,7 +2419,7 @@ int class_type = pdev->class & PCI_ERMC_CLASSCODE_TYPE_MASK; struct smi_info *info; - info = kzalloc(sizeof(*info), GFP_KERNEL); + info = smi_info_alloc(); if (!info) return -ENOMEM; @@ -2538,7 +2557,7 @@ return -EINVAL; } - info = kzalloc(sizeof(*info), GFP_KERNEL); + info = smi_info_alloc(); if (!info) { dev_err(&dev->dev, @@ -2980,7 +2999,7 @@ if (check_legacy_ioport(ipmi_defaults[i].port)) continue; #endif - info = kzalloc(sizeof(*info), GFP_KERNEL); + info = smi_info_alloc(); if (!info) return; @@ -3103,9 +3122,6 @@ goto out_err; } - spin_lock_init(&(new_smi->si_lock)); - spin_lock_init(&(new_smi->msg_lock)); - /* Do low-level detection first. */ if (new_smi->handlers->detect(new_smi->si_sm)) { if (new_smi->addr_source) --- 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/power/olpc_battery.c +++ linux-2.6.35/drivers/power/olpc_battery.c @@ -271,14 +271,14 @@ if (ret) return ret; - val->intval = (int)be16_to_cpu(ec_word) * 9760L / 32; + val->intval = (s16)be16_to_cpu(ec_word) * 9760L / 32; break; case POWER_SUPPLY_PROP_CURRENT_AVG: ret = olpc_ec_cmd(EC_BAT_CURRENT, NULL, 0, (void *)&ec_word, 2); if (ret) return ret; - val->intval = (int)be16_to_cpu(ec_word) * 15625L / 120; + val->intval = (s16)be16_to_cpu(ec_word) * 15625L / 120; break; case POWER_SUPPLY_PROP_CAPACITY: ret = olpc_ec_cmd(EC_BAT_SOC, NULL, 0, &ec_byte, 1); @@ -299,7 +299,7 @@ if (ret) return ret; - val->intval = (int)be16_to_cpu(ec_word) * 100 / 256; + val->intval = (s16)be16_to_cpu(ec_word) * 100 / 256; break; case POWER_SUPPLY_PROP_TEMP_AMBIENT: ret = olpc_ec_cmd(EC_AMB_TEMP, NULL, 0, (void *)&ec_word, 2); @@ -313,7 +313,7 @@ if (ret) return ret; - val->intval = (int)be16_to_cpu(ec_word) * 6250 / 15; + val->intval = (s16)be16_to_cpu(ec_word) * 6250 / 15; break; case POWER_SUPPLY_PROP_SERIAL_NUMBER: ret = olpc_ec_cmd(EC_BAT_SERIAL, NULL, 0, (void *)&ser_buf, 8); --- 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/ssb/b43_pci_bridge.c +++ linux-2.6.35/drivers/ssb/b43_pci_bridge.c @@ -24,6 +24,7 @@ { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4312) }, { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4315) }, { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4318) }, + { PCI_DEVICE(PCI_VENDOR_ID_BCM_GVC, 0x4318) }, { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4319) }, { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4320) }, { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4321) }, --- linux-2.6.35.orig/drivers/firewire/ohci.c +++ linux-2.6.35/drivers/firewire/ohci.c @@ -684,7 +684,7 @@ d = &ab->descriptor; if (d->res_count == 0) { - size_t size, rest, offset; + size_t size, size2, rest, pktsize, size3, offset; dma_addr_t start_bus; void *start; @@ -695,25 +695,61 @@ */ offset = offsetof(struct ar_buffer, data); - start = buffer = ab; + start = ab; start_bus = le32_to_cpu(ab->descriptor.data_address) - offset; + buffer = ab->data; ab = ab->next; d = &ab->descriptor; - size = buffer + PAGE_SIZE - ctx->pointer; + size = start + PAGE_SIZE - ctx->pointer; + /* valid buffer data in the next page */ rest = le16_to_cpu(d->req_count) - le16_to_cpu(d->res_count); + /* what actually fits in this page */ + size2 = min(rest, (size_t)PAGE_SIZE - offset - size); memmove(buffer, ctx->pointer, size); - memcpy(buffer + size, ab->data, rest); - ctx->current_buffer = ab; - ctx->pointer = (void *) ab->data + rest; - end = buffer + size + rest; + memcpy(buffer + size, ab->data, size2); - while (buffer < end) - buffer = handle_ar_packet(ctx, buffer); + while (size > 0) { + void *next = handle_ar_packet(ctx, buffer); + pktsize = next - buffer; + if (pktsize >= size) { + /* + * We have handled all the data that was + * originally in this page, so we can now + * continue in the next page. + */ + buffer = next; + break; + } + /* move the next packet to the start of the buffer */ + memmove(buffer, next, size + size2 - pktsize); + size -= pktsize; + /* fill up this page again */ + size3 = min(rest - size2, + (size_t)PAGE_SIZE - offset - size - size2); + memcpy(buffer + size + size2, + (void *) ab->data + size2, size3); + size2 += size3; + } - dma_free_coherent(ohci->card.device, PAGE_SIZE, - start, start_bus); - ar_context_add_page(ctx); + if (rest > 0) { + /* handle the packets that are fully in the next page */ + buffer = (void *) ab->data + + (buffer - (start + offset + size)); + end = (void *) ab->data + rest; + + while (buffer < end) + buffer = handle_ar_packet(ctx, buffer); + + ctx->current_buffer = ab; + ctx->pointer = end; + + dma_free_coherent(ohci->card.device, PAGE_SIZE, + start, start_bus); + ar_context_add_page(ctx); + } else { + ctx->pointer = start + PAGE_SIZE; + } } else { buffer = ctx->pointer; ctx->pointer = end = @@ -2439,7 +2475,7 @@ const struct pci_device_id *ent) { struct fw_ohci *ohci; - u32 bus_options, max_receive, link_speed, version, link_enh; + u32 bus_options, max_receive, link_speed, version; u64 guid; int i, err, n_ir, n_it; size_t size; @@ -2492,23 +2528,6 @@ if (param_quirks) ohci->quirks = param_quirks; - /* TI OHCI-Lynx and compatible: set recommended configuration bits. */ - if (dev->vendor == PCI_VENDOR_ID_TI) { - pci_read_config_dword(dev, PCI_CFG_TI_LinkEnh, &link_enh); - - /* adjust latency of ATx FIFO: use 1.7 KB threshold */ - link_enh &= ~TI_LinkEnh_atx_thresh_mask; - link_enh |= TI_LinkEnh_atx_thresh_1_7K; - - /* use priority arbitration for asynchronous responses */ - link_enh |= TI_LinkEnh_enab_unfair; - - /* required for aPhyEnhanceEnable to work */ - link_enh |= TI_LinkEnh_enab_accel; - - pci_write_config_dword(dev, PCI_CFG_TI_LinkEnh, link_enh); - } - ar_context_init(&ohci->ar_request_ctx, ohci, OHCI1394_AsReqRcvContextControlSet); --- linux-2.6.35.orig/drivers/firewire/ohci.h +++ linux-2.6.35/drivers/firewire/ohci.h @@ -154,12 +154,4 @@ #define OHCI1394_phy_tcode 0xe -/* TI extensions */ - -#define PCI_CFG_TI_LinkEnh 0xf4 -#define TI_LinkEnh_enab_accel 0x00000002 -#define TI_LinkEnh_enab_unfair 0x00000080 -#define TI_LinkEnh_atx_thresh_mask 0x00003000 -#define TI_LinkEnh_atx_thresh_1_7K 0x00001000 - #endif /* _FIREWIRE_OHCI_H */ --- 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/rtl8187se/r8185b_init.c +++ linux-2.6.35/drivers/staging/rtl8187se/r8185b_init.c @@ -268,8 +268,12 @@ } udelay(10); } - if (TryCnt == TC_3W_POLL_MAX_TRY_CNT) - panic("HwThreeWire(): CmdReg: %#X RE|WE bits are not clear!!\n", u1bTmp); + if (TryCnt == TC_3W_POLL_MAX_TRY_CNT) { + printk(KERN_ERR "rtl8187se: HwThreeWire(): CmdReg:" + " %#X RE|WE bits are not clear!!\n", u1bTmp); + dump_stack(); + return 0; + } // RTL8187S HSSI Read/Write Function u1bTmp = read_nic_byte(dev, RF_SW_CONFIG); @@ -309,13 +313,23 @@ int idx; int ByteCnt = nDataBufBitCnt / 8; //printk("%d\n",nDataBufBitCnt); - if ((nDataBufBitCnt % 8) != 0) - panic("HwThreeWire(): nDataBufBitCnt(%d) should be multiple of 8!!!\n", - nDataBufBitCnt); - - if (nDataBufBitCnt > 64) - panic("HwThreeWire(): nDataBufBitCnt(%d) should <= 64!!!\n", - nDataBufBitCnt); + if ((nDataBufBitCnt % 8) != 0) { + printk(KERN_ERR "rtl8187se: " + "HwThreeWire(): nDataBufBitCnt(%d)" + " should be multiple of 8!!!\n", + nDataBufBitCnt); + dump_stack(); + nDataBufBitCnt += 8; + nDataBufBitCnt &= ~7; + } + + if (nDataBufBitCnt > 64) { + printk(KERN_ERR "rtl8187se: HwThreeWire():" + " nDataBufBitCnt(%d) should <= 64!!!\n", + nDataBufBitCnt); + dump_stack(); + nDataBufBitCnt = 64; + } for(idx = 0; idx < ByteCnt; idx++) { --- 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,8 @@ {USB_DEVICE(0x14B2, 0x3C07)}, /* AL */ {USB_DEVICE(0x050D, 0x8053)}, /* Belkin */ {USB_DEVICE(0x050D, 0x825B)}, /* Belkin */ + {USB_DEVICE(0x050D, 0x935A)}, /* Belkin F6D4050 v1 */ + {USB_DEVICE(0x050D, 0x935B)}, /* Belkin F6D4050 v2 */ {USB_DEVICE(0x14B2, 0x3C23)}, /* Airlink */ {USB_DEVICE(0x14B2, 0x3C27)}, /* Airlink */ {USB_DEVICE(0x07AA, 0x002F)}, /* Corega */ @@ -94,7 +97,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 +108,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 +148,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/samsung-laptop/samsung-laptop.c +++ linux-2.6.35/drivers/staging/samsung-laptop/samsung-laptop.c @@ -356,7 +356,7 @@ } return count; } -static DEVICE_ATTR(silent, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(silent, S_IWUSR | S_IRUGO, get_silent_state, set_silent_state); --- 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/udlfb/udlfb.c +++ linux-2.6.35/drivers/staging/udlfb/udlfb.c @@ -1143,7 +1143,7 @@ __ATTR_RO(metrics_bytes_sent), __ATTR_RO(metrics_cpu_kcycles_used), __ATTR_RO(metrics_misc), - __ATTR(metrics_reset, S_IWUGO, NULL, metrics_reset_store), + __ATTR(metrics_reset, S_IWUSR, NULL, metrics_reset_store), __ATTR_RW(use_defio), }; --- linux-2.6.35.orig/drivers/staging/frontier/tranzport.c +++ linux-2.6.35/drivers/staging/frontier/tranzport.c @@ -204,7 +204,7 @@ t->value = temp; \ return count; \ } \ - static DEVICE_ATTR(value, S_IWUGO | S_IRUGO, show_##value, set_##value); + static DEVICE_ATTR(value, S_IWUSR | S_IRUGO, show_##value, set_##value); show_int(enable); show_int(offline); --- linux-2.6.35.orig/drivers/staging/phison/phison.c +++ linux-2.6.35/drivers/staging/phison/phison.c @@ -62,7 +62,7 @@ }; const struct ata_port_info *ppi[] = { &info, NULL }; - ret = ata_pci_sff_init_one(pdev, ppi, &phison_sht, NULL, 0); + ret = ata_pci_bmdma_init_one(pdev, ppi, &phison_sht, NULL, 0); dev_dbg(&pdev->dev, "phison_init_one(), ret = %x\n", ret); --- linux-2.6.35.orig/drivers/staging/iio/accel/adis16220_core.c +++ linux-2.6.35/drivers/staging/iio/accel/adis16220_core.c @@ -506,7 +506,7 @@ adis16220_write_reset, 0); #define IIO_DEV_ATTR_CAPTURE(_store) \ - IIO_DEVICE_ATTR(capture, S_IWUGO, NULL, _store, 0) + IIO_DEVICE_ATTR(capture, S_IWUSR, NULL, _store, 0) static IIO_DEV_ATTR_CAPTURE(adis16220_write_capture); --- 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/batman-adv/soft-interface.c +++ linux-2.6.35/drivers/staging/batman-adv/soft-interface.c @@ -295,6 +295,10 @@ skb_pull_rcsum(skb, hdr_size); /* skb_set_mac_header(skb, -sizeof(struct ethhdr));*/ + if (unlikely(!pskb_may_pull(skb, ETH_HLEN))) { + kfree_skb(skb); + return; + } skb->dev = dev; skb->protocol = eth_type_trans(skb, dev); --- linux-2.6.35.orig/drivers/staging/asus_oled/asus_oled.c +++ linux-2.6.35/drivers/staging/asus_oled/asus_oled.c @@ -620,13 +620,13 @@ #define ASUS_OLED_DEVICE_ATTR(_file) dev_attr_asus_oled_##_file -static DEVICE_ATTR(asus_oled_enabled, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(asus_oled_enabled, S_IWUSR | S_IRUGO, get_enabled, set_enabled); -static DEVICE_ATTR(asus_oled_picture, S_IWUGO , NULL, set_picture); +static DEVICE_ATTR(asus_oled_picture, S_IWUSR , NULL, set_picture); -static DEVICE_ATTR(enabled, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(enabled, S_IWUSR | S_IRUGO, class_get_enabled, class_set_enabled); -static DEVICE_ATTR(picture, S_IWUGO, NULL, class_set_picture); +static DEVICE_ATTR(picture, S_IWUSR, NULL, class_set_picture); static int asus_oled_probe(struct usb_interface *interface, const struct usb_device_id *id) --- linux-2.6.35.orig/drivers/staging/line6/pod.c +++ linux-2.6.35/drivers/staging/line6/pod.c @@ -952,33 +952,33 @@ #undef GET_SYSTEM_PARAM /* POD special files: */ -static DEVICE_ATTR(channel, S_IWUGO | S_IRUGO, pod_get_channel, pod_set_channel); +static DEVICE_ATTR(channel, S_IWUSR | S_IRUGO, pod_get_channel, pod_set_channel); static DEVICE_ATTR(clip, S_IRUGO, pod_wait_for_clip, line6_nop_write); static DEVICE_ATTR(device_id, S_IRUGO, pod_get_device_id, line6_nop_write); static DEVICE_ATTR(dirty, S_IRUGO, pod_get_dirty, line6_nop_write); -static DEVICE_ATTR(dump, S_IWUGO | S_IRUGO, pod_get_dump, pod_set_dump); -static DEVICE_ATTR(dump_buf, S_IWUGO | S_IRUGO, pod_get_dump_buf, pod_set_dump_buf); -static DEVICE_ATTR(finish, S_IWUGO, line6_nop_read, pod_set_finish); +static DEVICE_ATTR(dump, S_IWUSR | S_IRUGO, pod_get_dump, pod_set_dump); +static DEVICE_ATTR(dump_buf, S_IWUSR | S_IRUGO, pod_get_dump_buf, pod_set_dump_buf); +static DEVICE_ATTR(finish, S_IWUSR, line6_nop_read, pod_set_finish); static DEVICE_ATTR(firmware_version, S_IRUGO, pod_get_firmware_version, line6_nop_write); -static DEVICE_ATTR(midi_postprocess, S_IWUGO | S_IRUGO, pod_get_midi_postprocess, pod_set_midi_postprocess); -static DEVICE_ATTR(monitor_level, S_IWUGO | S_IRUGO, pod_get_monitor_level, pod_set_monitor_level); +static DEVICE_ATTR(midi_postprocess, S_IWUSR | S_IRUGO, pod_get_midi_postprocess, pod_set_midi_postprocess); +static DEVICE_ATTR(monitor_level, S_IWUSR | S_IRUGO, pod_get_monitor_level, pod_set_monitor_level); static DEVICE_ATTR(name, S_IRUGO, pod_get_name, line6_nop_write); static DEVICE_ATTR(name_buf, S_IRUGO, pod_get_name_buf, line6_nop_write); -static DEVICE_ATTR(retrieve_amp_setup, S_IWUGO, line6_nop_read, pod_set_retrieve_amp_setup); -static DEVICE_ATTR(retrieve_channel, S_IWUGO, line6_nop_read, pod_set_retrieve_channel); -static DEVICE_ATTR(retrieve_effects_setup, S_IWUGO, line6_nop_read, pod_set_retrieve_effects_setup); -static DEVICE_ATTR(routing, S_IWUGO | S_IRUGO, pod_get_routing, pod_set_routing); +static DEVICE_ATTR(retrieve_amp_setup, S_IWUSR, line6_nop_read, pod_set_retrieve_amp_setup); +static DEVICE_ATTR(retrieve_channel, S_IWUSR, line6_nop_read, pod_set_retrieve_channel); +static DEVICE_ATTR(retrieve_effects_setup, S_IWUSR, line6_nop_read, pod_set_retrieve_effects_setup); +static DEVICE_ATTR(routing, S_IWUSR | S_IRUGO, pod_get_routing, pod_set_routing); static DEVICE_ATTR(serial_number, S_IRUGO, pod_get_serial_number, line6_nop_write); -static DEVICE_ATTR(store_amp_setup, S_IWUGO, line6_nop_read, pod_set_store_amp_setup); -static DEVICE_ATTR(store_channel, S_IWUGO, line6_nop_read, pod_set_store_channel); -static DEVICE_ATTR(store_effects_setup, S_IWUGO, line6_nop_read, pod_set_store_effects_setup); -static DEVICE_ATTR(tuner_freq, S_IWUGO | S_IRUGO, pod_get_tuner_freq, pod_set_tuner_freq); -static DEVICE_ATTR(tuner_mute, S_IWUGO | S_IRUGO, pod_get_tuner_mute, pod_set_tuner_mute); +static DEVICE_ATTR(store_amp_setup, S_IWUSR, line6_nop_read, pod_set_store_amp_setup); +static DEVICE_ATTR(store_channel, S_IWUSR, line6_nop_read, pod_set_store_channel); +static DEVICE_ATTR(store_effects_setup, S_IWUSR, line6_nop_read, pod_set_store_effects_setup); +static DEVICE_ATTR(tuner_freq, S_IWUSR | S_IRUGO, pod_get_tuner_freq, pod_set_tuner_freq); +static DEVICE_ATTR(tuner_mute, S_IWUSR | S_IRUGO, pod_get_tuner_mute, pod_set_tuner_mute); static DEVICE_ATTR(tuner_note, S_IRUGO, pod_get_tuner_note, line6_nop_write); static DEVICE_ATTR(tuner_pitch, S_IRUGO, pod_get_tuner_pitch, line6_nop_write); #if CREATE_RAW_FILE -static DEVICE_ATTR(raw, S_IWUGO, line6_nop_read, line6_set_raw); +static DEVICE_ATTR(raw, S_IWUSR, line6_nop_read, line6_set_raw); #endif /* --- linux-2.6.35.orig/drivers/staging/line6/midi.c +++ linux-2.6.35/drivers/staging/line6/midi.c @@ -362,8 +362,8 @@ return count; } -static DEVICE_ATTR(midi_mask_transmit, S_IWUGO | S_IRUGO, midi_get_midi_mask_transmit, midi_set_midi_mask_transmit); -static DEVICE_ATTR(midi_mask_receive, S_IWUGO | S_IRUGO, midi_get_midi_mask_receive, midi_set_midi_mask_receive); +static DEVICE_ATTR(midi_mask_transmit, S_IWUSR | S_IRUGO, midi_get_midi_mask_transmit, midi_set_midi_mask_transmit); +static DEVICE_ATTR(midi_mask_receive, S_IWUSR | S_IRUGO, midi_get_midi_mask_receive, midi_set_midi_mask_receive); /* MIDI device destructor */ static int snd_line6_midi_free(struct snd_device *device) --- linux-2.6.35.orig/drivers/staging/line6/toneport.c +++ linux-2.6.35/drivers/staging/line6/toneport.c @@ -124,9 +124,9 @@ return count; } -static DEVICE_ATTR(led_red, S_IWUGO | S_IRUGO, line6_nop_read, +static DEVICE_ATTR(led_red, S_IWUSR | S_IRUGO, line6_nop_read, toneport_set_led_red); -static DEVICE_ATTR(led_green, S_IWUGO | S_IRUGO, line6_nop_read, +static DEVICE_ATTR(led_green, S_IWUSR | S_IRUGO, line6_nop_read, toneport_set_led_green); static int toneport_send_cmd(struct usb_device *usbdev, int cmd1, int cmd2) --- linux-2.6.35.orig/drivers/staging/line6/variax.c +++ linux-2.6.35/drivers/staging/line6/variax.c @@ -389,17 +389,17 @@ #endif /* Variax workbench special files: */ -static DEVICE_ATTR(model, S_IWUGO | S_IRUGO, variax_get_model, variax_set_model); -static DEVICE_ATTR(volume, S_IWUGO | S_IRUGO, variax_get_volume, variax_set_volume); -static DEVICE_ATTR(tone, S_IWUGO | S_IRUGO, variax_get_tone, variax_set_tone); +static DEVICE_ATTR(model, S_IWUSR | S_IRUGO, variax_get_model, variax_set_model); +static DEVICE_ATTR(volume, S_IWUSR | S_IRUGO, variax_get_volume, variax_set_volume); +static DEVICE_ATTR(tone, S_IWUSR | S_IRUGO, variax_get_tone, variax_set_tone); static DEVICE_ATTR(name, S_IRUGO, variax_get_name, line6_nop_write); static DEVICE_ATTR(bank, S_IRUGO, variax_get_bank, line6_nop_write); static DEVICE_ATTR(dump, S_IRUGO, variax_get_dump, line6_nop_write); -static DEVICE_ATTR(active, S_IWUGO | S_IRUGO, variax_get_active, variax_set_active); +static DEVICE_ATTR(active, S_IWUSR | S_IRUGO, variax_get_active, variax_set_active); #if CREATE_RAW_FILE -static DEVICE_ATTR(raw, S_IWUGO, line6_nop_read, line6_set_raw); -static DEVICE_ATTR(raw2, S_IWUGO, line6_nop_read, variax_set_raw2); +static DEVICE_ATTR(raw, S_IWUSR, line6_nop_read, line6_set_raw); +static DEVICE_ATTR(raw2, S_IWUSR, line6_nop_read, variax_set_raw2); #endif --- linux-2.6.35.orig/drivers/staging/line6/control.c +++ linux-2.6.35/drivers/staging/line6/control.c @@ -268,210 +268,210 @@ VARIAX_PARAM_R(float, mix1); VARIAX_PARAM_R(int, pickup_wiring); -static DEVICE_ATTR(tweak, S_IWUGO | S_IRUGO, pod_get_tweak, pod_set_tweak); -static DEVICE_ATTR(wah_position, S_IWUGO | S_IRUGO, pod_get_wah_position, +static DEVICE_ATTR(tweak, S_IWUSR | S_IRUGO, pod_get_tweak, pod_set_tweak); +static DEVICE_ATTR(wah_position, S_IWUSR | S_IRUGO, pod_get_wah_position, pod_set_wah_position); -static DEVICE_ATTR(compression_gain, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(compression_gain, S_IWUSR | S_IRUGO, pod_get_compression_gain, pod_set_compression_gain); -static DEVICE_ATTR(vol_pedal_position, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(vol_pedal_position, S_IWUSR | S_IRUGO, pod_get_vol_pedal_position, pod_set_vol_pedal_position); -static DEVICE_ATTR(compression_threshold, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(compression_threshold, S_IWUSR | S_IRUGO, pod_get_compression_threshold, pod_set_compression_threshold); -static DEVICE_ATTR(pan, S_IWUGO | S_IRUGO, pod_get_pan, pod_set_pan); -static DEVICE_ATTR(amp_model_setup, S_IWUGO | S_IRUGO, pod_get_amp_model_setup, +static DEVICE_ATTR(pan, S_IWUSR | S_IRUGO, pod_get_pan, pod_set_pan); +static DEVICE_ATTR(amp_model_setup, S_IWUSR | S_IRUGO, pod_get_amp_model_setup, pod_set_amp_model_setup); -static DEVICE_ATTR(amp_model, S_IWUGO | S_IRUGO, pod_get_amp_model, +static DEVICE_ATTR(amp_model, S_IWUSR | S_IRUGO, pod_get_amp_model, pod_set_amp_model); -static DEVICE_ATTR(drive, S_IWUGO | S_IRUGO, pod_get_drive, pod_set_drive); -static DEVICE_ATTR(bass, S_IWUGO | S_IRUGO, pod_get_bass, pod_set_bass); -static DEVICE_ATTR(mid, S_IWUGO | S_IRUGO, pod_get_mid, pod_set_mid); -static DEVICE_ATTR(lowmid, S_IWUGO | S_IRUGO, pod_get_lowmid, pod_set_lowmid); -static DEVICE_ATTR(treble, S_IWUGO | S_IRUGO, pod_get_treble, pod_set_treble); -static DEVICE_ATTR(highmid, S_IWUGO | S_IRUGO, pod_get_highmid, +static DEVICE_ATTR(drive, S_IWUSR | S_IRUGO, pod_get_drive, pod_set_drive); +static DEVICE_ATTR(bass, S_IWUSR | S_IRUGO, pod_get_bass, pod_set_bass); +static DEVICE_ATTR(mid, S_IWUSR | S_IRUGO, pod_get_mid, pod_set_mid); +static DEVICE_ATTR(lowmid, S_IWUSR | S_IRUGO, pod_get_lowmid, pod_set_lowmid); +static DEVICE_ATTR(treble, S_IWUSR | S_IRUGO, pod_get_treble, pod_set_treble); +static DEVICE_ATTR(highmid, S_IWUSR | S_IRUGO, pod_get_highmid, pod_set_highmid); -static DEVICE_ATTR(chan_vol, S_IWUGO | S_IRUGO, pod_get_chan_vol, +static DEVICE_ATTR(chan_vol, S_IWUSR | S_IRUGO, pod_get_chan_vol, pod_set_chan_vol); -static DEVICE_ATTR(reverb_mix, S_IWUGO | S_IRUGO, pod_get_reverb_mix, +static DEVICE_ATTR(reverb_mix, S_IWUSR | S_IRUGO, pod_get_reverb_mix, pod_set_reverb_mix); -static DEVICE_ATTR(effect_setup, S_IWUGO | S_IRUGO, pod_get_effect_setup, +static DEVICE_ATTR(effect_setup, S_IWUSR | S_IRUGO, pod_get_effect_setup, pod_set_effect_setup); -static DEVICE_ATTR(band_1_frequency, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(band_1_frequency, S_IWUSR | S_IRUGO, pod_get_band_1_frequency, pod_set_band_1_frequency); -static DEVICE_ATTR(presence, S_IWUGO | S_IRUGO, pod_get_presence, +static DEVICE_ATTR(presence, S_IWUSR | S_IRUGO, pod_get_presence, pod_set_presence); -static DEVICE_ATTR2(treble__bass, treble, S_IWUGO | S_IRUGO, +static DEVICE_ATTR2(treble__bass, treble, S_IWUSR | S_IRUGO, pod_get_treble__bass, pod_set_treble__bass); -static DEVICE_ATTR(noise_gate_enable, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(noise_gate_enable, S_IWUSR | S_IRUGO, pod_get_noise_gate_enable, pod_set_noise_gate_enable); -static DEVICE_ATTR(gate_threshold, S_IWUGO | S_IRUGO, pod_get_gate_threshold, +static DEVICE_ATTR(gate_threshold, S_IWUSR | S_IRUGO, pod_get_gate_threshold, pod_set_gate_threshold); -static DEVICE_ATTR(gate_decay_time, S_IWUGO | S_IRUGO, pod_get_gate_decay_time, +static DEVICE_ATTR(gate_decay_time, S_IWUSR | S_IRUGO, pod_get_gate_decay_time, pod_set_gate_decay_time); -static DEVICE_ATTR(stomp_enable, S_IWUGO | S_IRUGO, pod_get_stomp_enable, +static DEVICE_ATTR(stomp_enable, S_IWUSR | S_IRUGO, pod_get_stomp_enable, pod_set_stomp_enable); -static DEVICE_ATTR(comp_enable, S_IWUGO | S_IRUGO, pod_get_comp_enable, +static DEVICE_ATTR(comp_enable, S_IWUSR | S_IRUGO, pod_get_comp_enable, pod_set_comp_enable); -static DEVICE_ATTR(stomp_time, S_IWUGO | S_IRUGO, pod_get_stomp_time, +static DEVICE_ATTR(stomp_time, S_IWUSR | S_IRUGO, pod_get_stomp_time, pod_set_stomp_time); -static DEVICE_ATTR(delay_enable, S_IWUGO | S_IRUGO, pod_get_delay_enable, +static DEVICE_ATTR(delay_enable, S_IWUSR | S_IRUGO, pod_get_delay_enable, pod_set_delay_enable); -static DEVICE_ATTR(mod_param_1, S_IWUGO | S_IRUGO, pod_get_mod_param_1, +static DEVICE_ATTR(mod_param_1, S_IWUSR | S_IRUGO, pod_get_mod_param_1, pod_set_mod_param_1); -static DEVICE_ATTR(delay_param_1, S_IWUGO | S_IRUGO, pod_get_delay_param_1, +static DEVICE_ATTR(delay_param_1, S_IWUSR | S_IRUGO, pod_get_delay_param_1, pod_set_delay_param_1); -static DEVICE_ATTR(delay_param_1_note_value, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(delay_param_1_note_value, S_IWUSR | S_IRUGO, pod_get_delay_param_1_note_value, pod_set_delay_param_1_note_value); -static DEVICE_ATTR2(band_2_frequency__bass, band_2_frequency, S_IWUGO | S_IRUGO, +static DEVICE_ATTR2(band_2_frequency__bass, band_2_frequency, S_IWUSR | S_IRUGO, pod_get_band_2_frequency__bass, pod_set_band_2_frequency__bass); -static DEVICE_ATTR(delay_param_2, S_IWUGO | S_IRUGO, pod_get_delay_param_2, +static DEVICE_ATTR(delay_param_2, S_IWUSR | S_IRUGO, pod_get_delay_param_2, pod_set_delay_param_2); -static DEVICE_ATTR(delay_volume_mix, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(delay_volume_mix, S_IWUSR | S_IRUGO, pod_get_delay_volume_mix, pod_set_delay_volume_mix); -static DEVICE_ATTR(delay_param_3, S_IWUGO | S_IRUGO, pod_get_delay_param_3, +static DEVICE_ATTR(delay_param_3, S_IWUSR | S_IRUGO, pod_get_delay_param_3, pod_set_delay_param_3); -static DEVICE_ATTR(reverb_enable, S_IWUGO | S_IRUGO, pod_get_reverb_enable, +static DEVICE_ATTR(reverb_enable, S_IWUSR | S_IRUGO, pod_get_reverb_enable, pod_set_reverb_enable); -static DEVICE_ATTR(reverb_type, S_IWUGO | S_IRUGO, pod_get_reverb_type, +static DEVICE_ATTR(reverb_type, S_IWUSR | S_IRUGO, pod_get_reverb_type, pod_set_reverb_type); -static DEVICE_ATTR(reverb_decay, S_IWUGO | S_IRUGO, pod_get_reverb_decay, +static DEVICE_ATTR(reverb_decay, S_IWUSR | S_IRUGO, pod_get_reverb_decay, pod_set_reverb_decay); -static DEVICE_ATTR(reverb_tone, S_IWUGO | S_IRUGO, pod_get_reverb_tone, +static DEVICE_ATTR(reverb_tone, S_IWUSR | S_IRUGO, pod_get_reverb_tone, pod_set_reverb_tone); -static DEVICE_ATTR(reverb_pre_delay, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(reverb_pre_delay, S_IWUSR | S_IRUGO, pod_get_reverb_pre_delay, pod_set_reverb_pre_delay); -static DEVICE_ATTR(reverb_pre_post, S_IWUGO | S_IRUGO, pod_get_reverb_pre_post, +static DEVICE_ATTR(reverb_pre_post, S_IWUSR | S_IRUGO, pod_get_reverb_pre_post, pod_set_reverb_pre_post); -static DEVICE_ATTR(band_2_frequency, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(band_2_frequency, S_IWUSR | S_IRUGO, pod_get_band_2_frequency, pod_set_band_2_frequency); -static DEVICE_ATTR2(band_3_frequency__bass, band_3_frequency, S_IWUGO | S_IRUGO, +static DEVICE_ATTR2(band_3_frequency__bass, band_3_frequency, S_IWUSR | S_IRUGO, pod_get_band_3_frequency__bass, pod_set_band_3_frequency__bass); -static DEVICE_ATTR(wah_enable, S_IWUGO | S_IRUGO, pod_get_wah_enable, +static DEVICE_ATTR(wah_enable, S_IWUSR | S_IRUGO, pod_get_wah_enable, pod_set_wah_enable); -static DEVICE_ATTR(modulation_lo_cut, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(modulation_lo_cut, S_IWUSR | S_IRUGO, pod_get_modulation_lo_cut, pod_set_modulation_lo_cut); -static DEVICE_ATTR(delay_reverb_lo_cut, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(delay_reverb_lo_cut, S_IWUSR | S_IRUGO, pod_get_delay_reverb_lo_cut, pod_set_delay_reverb_lo_cut); -static DEVICE_ATTR(volume_pedal_minimum, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(volume_pedal_minimum, S_IWUSR | S_IRUGO, pod_get_volume_pedal_minimum, pod_set_volume_pedal_minimum); -static DEVICE_ATTR(eq_pre_post, S_IWUGO | S_IRUGO, pod_get_eq_pre_post, +static DEVICE_ATTR(eq_pre_post, S_IWUSR | S_IRUGO, pod_get_eq_pre_post, pod_set_eq_pre_post); -static DEVICE_ATTR(volume_pre_post, S_IWUGO | S_IRUGO, pod_get_volume_pre_post, +static DEVICE_ATTR(volume_pre_post, S_IWUSR | S_IRUGO, pod_get_volume_pre_post, pod_set_volume_pre_post); -static DEVICE_ATTR(di_model, S_IWUGO | S_IRUGO, pod_get_di_model, +static DEVICE_ATTR(di_model, S_IWUSR | S_IRUGO, pod_get_di_model, pod_set_di_model); -static DEVICE_ATTR(di_delay, S_IWUGO | S_IRUGO, pod_get_di_delay, +static DEVICE_ATTR(di_delay, S_IWUSR | S_IRUGO, pod_get_di_delay, pod_set_di_delay); -static DEVICE_ATTR(mod_enable, S_IWUGO | S_IRUGO, pod_get_mod_enable, +static DEVICE_ATTR(mod_enable, S_IWUSR | S_IRUGO, pod_get_mod_enable, pod_set_mod_enable); -static DEVICE_ATTR(mod_param_1_note_value, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(mod_param_1_note_value, S_IWUSR | S_IRUGO, pod_get_mod_param_1_note_value, pod_set_mod_param_1_note_value); -static DEVICE_ATTR(mod_param_2, S_IWUGO | S_IRUGO, pod_get_mod_param_2, +static DEVICE_ATTR(mod_param_2, S_IWUSR | S_IRUGO, pod_get_mod_param_2, pod_set_mod_param_2); -static DEVICE_ATTR(mod_param_3, S_IWUGO | S_IRUGO, pod_get_mod_param_3, +static DEVICE_ATTR(mod_param_3, S_IWUSR | S_IRUGO, pod_get_mod_param_3, pod_set_mod_param_3); -static DEVICE_ATTR(mod_param_4, S_IWUGO | S_IRUGO, pod_get_mod_param_4, +static DEVICE_ATTR(mod_param_4, S_IWUSR | S_IRUGO, pod_get_mod_param_4, pod_set_mod_param_4); -static DEVICE_ATTR(mod_param_5, S_IWUGO | S_IRUGO, pod_get_mod_param_5, +static DEVICE_ATTR(mod_param_5, S_IWUSR | S_IRUGO, pod_get_mod_param_5, pod_set_mod_param_5); -static DEVICE_ATTR(mod_volume_mix, S_IWUGO | S_IRUGO, pod_get_mod_volume_mix, +static DEVICE_ATTR(mod_volume_mix, S_IWUSR | S_IRUGO, pod_get_mod_volume_mix, pod_set_mod_volume_mix); -static DEVICE_ATTR(mod_pre_post, S_IWUGO | S_IRUGO, pod_get_mod_pre_post, +static DEVICE_ATTR(mod_pre_post, S_IWUSR | S_IRUGO, pod_get_mod_pre_post, pod_set_mod_pre_post); -static DEVICE_ATTR(modulation_model, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(modulation_model, S_IWUSR | S_IRUGO, pod_get_modulation_model, pod_set_modulation_model); -static DEVICE_ATTR(band_3_frequency, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(band_3_frequency, S_IWUSR | S_IRUGO, pod_get_band_3_frequency, pod_set_band_3_frequency); -static DEVICE_ATTR2(band_4_frequency__bass, band_4_frequency, S_IWUGO | S_IRUGO, +static DEVICE_ATTR2(band_4_frequency__bass, band_4_frequency, S_IWUSR | S_IRUGO, pod_get_band_4_frequency__bass, pod_set_band_4_frequency__bass); -static DEVICE_ATTR(mod_param_1_double_precision, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(mod_param_1_double_precision, S_IWUSR | S_IRUGO, pod_get_mod_param_1_double_precision, pod_set_mod_param_1_double_precision); -static DEVICE_ATTR(delay_param_1_double_precision, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(delay_param_1_double_precision, S_IWUSR | S_IRUGO, pod_get_delay_param_1_double_precision, pod_set_delay_param_1_double_precision); -static DEVICE_ATTR(eq_enable, S_IWUGO | S_IRUGO, pod_get_eq_enable, +static DEVICE_ATTR(eq_enable, S_IWUSR | S_IRUGO, pod_get_eq_enable, pod_set_eq_enable); -static DEVICE_ATTR(tap, S_IWUGO | S_IRUGO, pod_get_tap, pod_set_tap); -static DEVICE_ATTR(volume_tweak_pedal_assign, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(tap, S_IWUSR | S_IRUGO, pod_get_tap, pod_set_tap); +static DEVICE_ATTR(volume_tweak_pedal_assign, S_IWUSR | S_IRUGO, pod_get_volume_tweak_pedal_assign, pod_set_volume_tweak_pedal_assign); -static DEVICE_ATTR(band_5_frequency, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(band_5_frequency, S_IWUSR | S_IRUGO, pod_get_band_5_frequency, pod_set_band_5_frequency); -static DEVICE_ATTR(tuner, S_IWUGO | S_IRUGO, pod_get_tuner, pod_set_tuner); -static DEVICE_ATTR(mic_selection, S_IWUGO | S_IRUGO, pod_get_mic_selection, +static DEVICE_ATTR(tuner, S_IWUSR | S_IRUGO, pod_get_tuner, pod_set_tuner); +static DEVICE_ATTR(mic_selection, S_IWUSR | S_IRUGO, pod_get_mic_selection, pod_set_mic_selection); -static DEVICE_ATTR(cabinet_model, S_IWUGO | S_IRUGO, pod_get_cabinet_model, +static DEVICE_ATTR(cabinet_model, S_IWUSR | S_IRUGO, pod_get_cabinet_model, pod_set_cabinet_model); -static DEVICE_ATTR(stomp_model, S_IWUGO | S_IRUGO, pod_get_stomp_model, +static DEVICE_ATTR(stomp_model, S_IWUSR | S_IRUGO, pod_get_stomp_model, pod_set_stomp_model); -static DEVICE_ATTR(roomlevel, S_IWUGO | S_IRUGO, pod_get_roomlevel, +static DEVICE_ATTR(roomlevel, S_IWUSR | S_IRUGO, pod_get_roomlevel, pod_set_roomlevel); -static DEVICE_ATTR(band_4_frequency, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(band_4_frequency, S_IWUSR | S_IRUGO, pod_get_band_4_frequency, pod_set_band_4_frequency); -static DEVICE_ATTR(band_6_frequency, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(band_6_frequency, S_IWUSR | S_IRUGO, pod_get_band_6_frequency, pod_set_band_6_frequency); -static DEVICE_ATTR(stomp_param_1_note_value, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(stomp_param_1_note_value, S_IWUSR | S_IRUGO, pod_get_stomp_param_1_note_value, pod_set_stomp_param_1_note_value); -static DEVICE_ATTR(stomp_param_2, S_IWUGO | S_IRUGO, pod_get_stomp_param_2, +static DEVICE_ATTR(stomp_param_2, S_IWUSR | S_IRUGO, pod_get_stomp_param_2, pod_set_stomp_param_2); -static DEVICE_ATTR(stomp_param_3, S_IWUGO | S_IRUGO, pod_get_stomp_param_3, +static DEVICE_ATTR(stomp_param_3, S_IWUSR | S_IRUGO, pod_get_stomp_param_3, pod_set_stomp_param_3); -static DEVICE_ATTR(stomp_param_4, S_IWUGO | S_IRUGO, pod_get_stomp_param_4, +static DEVICE_ATTR(stomp_param_4, S_IWUSR | S_IRUGO, pod_get_stomp_param_4, pod_set_stomp_param_4); -static DEVICE_ATTR(stomp_param_5, S_IWUGO | S_IRUGO, pod_get_stomp_param_5, +static DEVICE_ATTR(stomp_param_5, S_IWUSR | S_IRUGO, pod_get_stomp_param_5, pod_set_stomp_param_5); -static DEVICE_ATTR(stomp_param_6, S_IWUGO | S_IRUGO, pod_get_stomp_param_6, +static DEVICE_ATTR(stomp_param_6, S_IWUSR | S_IRUGO, pod_get_stomp_param_6, pod_set_stomp_param_6); -static DEVICE_ATTR(amp_switch_select, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(amp_switch_select, S_IWUSR | S_IRUGO, pod_get_amp_switch_select, pod_set_amp_switch_select); -static DEVICE_ATTR(delay_param_4, S_IWUGO | S_IRUGO, pod_get_delay_param_4, +static DEVICE_ATTR(delay_param_4, S_IWUSR | S_IRUGO, pod_get_delay_param_4, pod_set_delay_param_4); -static DEVICE_ATTR(delay_param_5, S_IWUGO | S_IRUGO, pod_get_delay_param_5, +static DEVICE_ATTR(delay_param_5, S_IWUSR | S_IRUGO, pod_get_delay_param_5, pod_set_delay_param_5); -static DEVICE_ATTR(delay_pre_post, S_IWUGO | S_IRUGO, pod_get_delay_pre_post, +static DEVICE_ATTR(delay_pre_post, S_IWUSR | S_IRUGO, pod_get_delay_pre_post, pod_set_delay_pre_post); -static DEVICE_ATTR(delay_model, S_IWUGO | S_IRUGO, pod_get_delay_model, +static DEVICE_ATTR(delay_model, S_IWUSR | S_IRUGO, pod_get_delay_model, pod_set_delay_model); -static DEVICE_ATTR(delay_verb_model, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(delay_verb_model, S_IWUSR | S_IRUGO, pod_get_delay_verb_model, pod_set_delay_verb_model); -static DEVICE_ATTR(tempo_msb, S_IWUGO | S_IRUGO, pod_get_tempo_msb, +static DEVICE_ATTR(tempo_msb, S_IWUSR | S_IRUGO, pod_get_tempo_msb, pod_set_tempo_msb); -static DEVICE_ATTR(tempo_lsb, S_IWUGO | S_IRUGO, pod_get_tempo_lsb, +static DEVICE_ATTR(tempo_lsb, S_IWUSR | S_IRUGO, pod_get_tempo_lsb, pod_set_tempo_lsb); -static DEVICE_ATTR(wah_model, S_IWUGO | S_IRUGO, pod_get_wah_model, +static DEVICE_ATTR(wah_model, S_IWUSR | S_IRUGO, pod_get_wah_model, pod_set_wah_model); -static DEVICE_ATTR(bypass_volume, S_IWUGO | S_IRUGO, pod_get_bypass_volume, +static DEVICE_ATTR(bypass_volume, S_IWUSR | S_IRUGO, pod_get_bypass_volume, pod_set_bypass_volume); -static DEVICE_ATTR(fx_loop_on_off, S_IWUGO | S_IRUGO, pod_get_fx_loop_on_off, +static DEVICE_ATTR(fx_loop_on_off, S_IWUSR | S_IRUGO, pod_get_fx_loop_on_off, pod_set_fx_loop_on_off); -static DEVICE_ATTR(tweak_param_select, S_IWUGO | S_IRUGO, +static DEVICE_ATTR(tweak_param_select, S_IWUSR | S_IRUGO, pod_get_tweak_param_select, pod_set_tweak_param_select); -static DEVICE_ATTR(amp1_engage, S_IWUGO | S_IRUGO, pod_get_amp1_engage, +static DEVICE_ATTR(amp1_engage, S_IWUSR | S_IRUGO, pod_get_amp1_engage, pod_set_amp1_engage); -static DEVICE_ATTR(band_1_gain, S_IWUGO | S_IRUGO, pod_get_band_1_gain, +static DEVICE_ATTR(band_1_gain, S_IWUSR | S_IRUGO, pod_get_band_1_gain, pod_set_band_1_gain); -static DEVICE_ATTR2(band_2_gain__bass, band_2_gain, S_IWUGO | S_IRUGO, +static DEVICE_ATTR2(band_2_gain__bass, band_2_gain, S_IWUSR | S_IRUGO, pod_get_band_2_gain__bass, pod_set_band_2_gain__bass); -static DEVICE_ATTR(band_2_gain, S_IWUGO | S_IRUGO, pod_get_band_2_gain, +static DEVICE_ATTR(band_2_gain, S_IWUSR | S_IRUGO, pod_get_band_2_gain, pod_set_band_2_gain); -static DEVICE_ATTR2(band_3_gain__bass, band_3_gain, S_IWUGO | S_IRUGO, +static DEVICE_ATTR2(band_3_gain__bass, band_3_gain, S_IWUSR | S_IRUGO, pod_get_band_3_gain__bass, pod_set_band_3_gain__bass); -static DEVICE_ATTR(band_3_gain, S_IWUGO | S_IRUGO, pod_get_band_3_gain, +static DEVICE_ATTR(band_3_gain, S_IWUSR | S_IRUGO, pod_get_band_3_gain, pod_set_band_3_gain); -static DEVICE_ATTR2(band_4_gain__bass, band_4_gain, S_IWUGO | S_IRUGO, +static DEVICE_ATTR2(band_4_gain__bass, band_4_gain, S_IWUSR | S_IRUGO, pod_get_band_4_gain__bass, pod_set_band_4_gain__bass); -static DEVICE_ATTR2(band_5_gain__bass, band_5_gain, S_IWUGO | S_IRUGO, +static DEVICE_ATTR2(band_5_gain__bass, band_5_gain, S_IWUSR | S_IRUGO, pod_get_band_5_gain__bass, pod_set_band_5_gain__bass); -static DEVICE_ATTR(band_4_gain, S_IWUGO | S_IRUGO, pod_get_band_4_gain, +static DEVICE_ATTR(band_4_gain, S_IWUSR | S_IRUGO, pod_get_band_4_gain, pod_set_band_4_gain); -static DEVICE_ATTR2(band_6_gain__bass, band_6_gain, S_IWUGO | S_IRUGO, +static DEVICE_ATTR2(band_6_gain__bass, band_6_gain, S_IWUSR | S_IRUGO, pod_get_band_6_gain__bass, pod_set_band_6_gain__bass); static DEVICE_ATTR(body, S_IRUGO, variax_get_body, line6_nop_write); static DEVICE_ATTR(pickup1_enable, S_IRUGO, variax_get_pickup1_enable, --- 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/staging/usbip/vhci_hcd.c +++ linux-2.6.35/drivers/staging/usbip/vhci_hcd.c @@ -164,6 +164,8 @@ * spin_unlock(&vdev->ud.lock); */ spin_unlock_irqrestore(&the_controller->lock, flags); + + usb_hcd_poll_rh_status(vhci_to_hcd(the_controller)); } --- linux-2.6.35.orig/drivers/staging/usbip/usbip_event.c +++ linux-2.6.35/drivers/staging/usbip/usbip_event.c @@ -38,21 +38,13 @@ ud->eh_ops.shutdown(ud); ud->event &= ~USBIP_EH_SHUTDOWN; - - break; } - /* Stop the error handler. */ - if (ud->event & USBIP_EH_BYE) - return -1; - /* Reset the device. */ if (ud->event & USBIP_EH_RESET) { ud->eh_ops.reset(ud); ud->event &= ~USBIP_EH_RESET; - - break; } /* Mark the device as unusable. */ @@ -60,13 +52,11 @@ ud->eh_ops.unusable(ud); ud->event &= ~USBIP_EH_UNUSABLE; - - break; } - /* NOTREACHED */ - printk(KERN_ERR "%s: unknown event\n", __func__); - return -1; + /* Stop the error handler. */ + if (ud->event & USBIP_EH_BYE) + return -1; } return 0; --- 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/idle/intel_idle.c +++ linux-2.6.35/drivers/idle/intel_idle.c @@ -59,33 +59,24 @@ #include /* ktime_get_real() */ #include #include +#include #define INTEL_IDLE_VERSION "0.4" #define PREFIX "intel_idle: " -#define MWAIT_SUBSTATE_MASK (0xf) -#define MWAIT_CSTATE_MASK (0xf) -#define MWAIT_SUBSTATE_SIZE (4) -#define MWAIT_MAX_NUM_CSTATES 8 -#define CPUID_MWAIT_LEAF (5) -#define CPUID5_ECX_EXTENSIONS_SUPPORTED (0x1) -#define CPUID5_ECX_INTERRUPT_BREAK (0x2) - static struct cpuidle_driver intel_idle_driver = { .name = "intel_idle", .owner = THIS_MODULE, }; /* intel_idle.max_cstate=0 disables driver */ static int max_cstate = MWAIT_MAX_NUM_CSTATES - 1; -static int power_policy = 7; /* 0 = max perf; 15 = max powersave */ -static unsigned int substates; -static int (*choose_substate)(int); +static unsigned int mwait_substates; /* Reliable LAPIC Timer States, bit 1 for C1 etc. */ -static unsigned int lapic_timer_reliable_states; +static unsigned int lapic_timer_reliable_states = (1 << 1); /* Default to only C1 */ -static struct cpuidle_device *intel_idle_cpuidle_devices; +static struct cpuidle_device __percpu *intel_idle_cpuidle_devices; static int intel_idle(struct cpuidle_device *dev, struct cpuidle_state *state); static struct cpuidle_state *cpuidle_state_table; @@ -103,29 +94,62 @@ .driver_data = (void *) 0x00, .flags = CPUIDLE_FLAG_TIME_VALID, .exit_latency = 3, - .power_usage = 1000, .target_residency = 6, .enter = &intel_idle }, { /* MWAIT C2 */ .name = "NHM-C3", .desc = "MWAIT 0x10", .driver_data = (void *) 0x10, - .flags = CPUIDLE_FLAG_TIME_VALID, + .flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_TLB_FLUSHED, .exit_latency = 20, - .power_usage = 500, .target_residency = 80, .enter = &intel_idle }, { /* MWAIT C3 */ .name = "NHM-C6", .desc = "MWAIT 0x20", .driver_data = (void *) 0x20, - .flags = CPUIDLE_FLAG_TIME_VALID, + .flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_TLB_FLUSHED, .exit_latency = 200, - .power_usage = 350, .target_residency = 800, .enter = &intel_idle }, }; +static struct cpuidle_state snb_cstates[MWAIT_MAX_NUM_CSTATES] = { + { /* MWAIT C0 */ }, + { /* MWAIT C1 */ + .name = "SNB-C1", + .desc = "MWAIT 0x00", + .driver_data = (void *) 0x00, + .flags = CPUIDLE_FLAG_TIME_VALID, + .exit_latency = 1, + .target_residency = 4, + .enter = &intel_idle }, + { /* MWAIT C2 */ + .name = "SNB-C3", + .desc = "MWAIT 0x10", + .driver_data = (void *) 0x10, + .flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_TLB_FLUSHED, + .exit_latency = 80, + .target_residency = 160, + .enter = &intel_idle }, + { /* MWAIT C3 */ + .name = "SNB-C6", + .desc = "MWAIT 0x20", + .driver_data = (void *) 0x20, + .flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_TLB_FLUSHED, + .exit_latency = 104, + .target_residency = 208, + .enter = &intel_idle }, + { /* MWAIT C4 */ + .name = "SNB-C7", + .desc = "MWAIT 0x30", + .driver_data = (void *) 0x30, + .flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_TLB_FLUSHED, + .exit_latency = 109, + .target_residency = 300, + .enter = &intel_idle }, +}; + static struct cpuidle_state atom_cstates[MWAIT_MAX_NUM_CSTATES] = { { /* MWAIT C0 */ }, { /* MWAIT C1 */ @@ -134,7 +158,6 @@ .driver_data = (void *) 0x00, .flags = CPUIDLE_FLAG_TIME_VALID, .exit_latency = 1, - .power_usage = 1000, .target_residency = 4, .enter = &intel_idle }, { /* MWAIT C2 */ @@ -143,7 +166,6 @@ .driver_data = (void *) 0x10, .flags = CPUIDLE_FLAG_TIME_VALID, .exit_latency = 20, - .power_usage = 500, .target_residency = 80, .enter = &intel_idle }, { /* MWAIT C3 */ }, @@ -151,58 +173,21 @@ .name = "ATM-C4", .desc = "MWAIT 0x30", .driver_data = (void *) 0x30, - .flags = CPUIDLE_FLAG_TIME_VALID, + .flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_TLB_FLUSHED, .exit_latency = 100, - .power_usage = 250, .target_residency = 400, .enter = &intel_idle }, { /* MWAIT C5 */ }, { /* MWAIT C6 */ .name = "ATM-C6", - .desc = "MWAIT 0x40", - .driver_data = (void *) 0x40, - .flags = CPUIDLE_FLAG_TIME_VALID, - .exit_latency = 200, - .power_usage = 150, - .target_residency = 800, - .enter = NULL }, /* disabled */ + .desc = "MWAIT 0x52", + .driver_data = (void *) 0x52, + .flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_TLB_FLUSHED, + .exit_latency = 140, + .target_residency = 560, + .enter = &intel_idle }, }; -/* - * choose_tunable_substate() - * - * Run-time decision on which C-state substate to invoke - * If power_policy = 0, choose shallowest substate (0) - * If power_policy = 15, choose deepest substate - * If power_policy = middle, choose middle substate etc. - */ -static int choose_tunable_substate(int cstate) -{ - unsigned int num_substates; - unsigned int substate_choice; - - power_policy &= 0xF; /* valid range: 0-15 */ - cstate &= 7; /* valid range: 0-7 */ - - num_substates = (substates >> ((cstate) * 4)) & MWAIT_SUBSTATE_MASK; - - if (num_substates <= 1) - return 0; - - substate_choice = ((power_policy + (power_policy + 1) * - (num_substates - 1)) / 16); - - return substate_choice; -} - -/* - * choose_zero_substate() - */ -static int choose_zero_substate(int cstate) -{ - return 0; -} - /** * intel_idle * @dev: cpuidle_device @@ -220,10 +205,15 @@ cstate = (((eax) >> MWAIT_SUBSTATE_SIZE) & MWAIT_CSTATE_MASK) + 1; - eax = eax + (choose_substate)(cstate); - local_irq_disable(); + /* + * leave_mm() to avoid costly and often unnecessary wakeups + * for flushing the user TLB's associated with the active mm. + */ + if (state->flags & CPUIDLE_FLAG_TLB_FLUSHED) + leave_mm(cpu); + if (!(lapic_timer_reliable_states & (1 << (cstate)))) clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER, &cpu); @@ -259,7 +249,7 @@ */ static int intel_idle_probe(void) { - unsigned int eax, ebx, ecx, edx; + unsigned int eax, ebx, ecx; if (max_cstate == 0) { pr_debug(PREFIX "disabled\n"); @@ -275,17 +265,13 @@ if (boot_cpu_data.cpuid_level < CPUID_MWAIT_LEAF) return -ENODEV; - cpuid(CPUID_MWAIT_LEAF, &eax, &ebx, &ecx, &edx); + cpuid(CPUID_MWAIT_LEAF, &eax, &ebx, &ecx, &mwait_substates); if (!(ecx & CPUID5_ECX_EXTENSIONS_SUPPORTED) || !(ecx & CPUID5_ECX_INTERRUPT_BREAK)) return -ENODEV; -#ifdef DEBUG - if (substates == 0) /* can over-ride via modparam */ -#endif - substates = edx; - pr_debug(PREFIX "MWAIT substates: 0x%x\n", substates); + pr_debug(PREFIX "MWAIT substates: 0x%x\n", mwait_substates); if (boot_cpu_has(X86_FEATURE_ARAT)) /* Always Reliable APIC Timer */ lapic_timer_reliable_states = 0xFFFFFFFF; @@ -299,18 +285,23 @@ case 0x1E: /* Core i7 and i5 Processor - Lynnfield Jasper Forest */ case 0x1F: /* Core i7 and i5 Processor - Nehalem */ case 0x2E: /* Nehalem-EX Xeon */ + case 0x2F: /* Westmere-EX Xeon */ lapic_timer_reliable_states = (1 << 1); /* C1 */ case 0x25: /* Westmere */ case 0x2C: /* Westmere */ cpuidle_state_table = nehalem_cstates; - choose_substate = choose_tunable_substate; break; case 0x1C: /* 28 - Atom Processor */ - lapic_timer_reliable_states = (1 << 2) | (1 << 1); /* C2, C1 */ + case 0x26: /* 38 - Lincroft Atom Processor */ + lapic_timer_reliable_states = (1 << 1); /* C1 */ cpuidle_state_table = atom_cstates; - choose_substate = choose_zero_substate; + break; + + case 0x2A: /* SNB */ + case 0x2D: /* SNB Xeon */ + cpuidle_state_table = snb_cstates; break; #ifdef FUTURE_USE case 0x17: /* 23 - Core 2 Duo */ @@ -376,7 +367,7 @@ } /* does the state exist in CPUID.MWAIT? */ - num_substates = (substates >> ((cstate) * 4)) + num_substates = (mwait_substates >> ((cstate) * 4)) & MWAIT_SUBSTATE_MASK; if (num_substates == 0) continue; @@ -450,11 +441,7 @@ module_init(intel_idle_init); module_exit(intel_idle_exit); -module_param(power_policy, int, 0644); module_param(max_cstate, int, 0444); -#ifdef DEBUG -module_param(substates, int, 0444); -#endif MODULE_AUTHOR("Len Brown "); MODULE_DESCRIPTION("Cpuidle driver for Intel Hardware v" INTEL_IDLE_VERSION); --- linux-2.6.35.orig/drivers/leds/leds-ss4200.c +++ linux-2.6.35/drivers/leds/leds-ss4200.c @@ -102,6 +102,7 @@ DMI_MATCH(DMI_PRODUCT_VERSION, "1.00.00") } }, + {} }; /* --- linux-2.6.35.orig/drivers/watchdog/rdc321x_wdt.c +++ linux-2.6.35/drivers/watchdog/rdc321x_wdt.c @@ -231,7 +231,7 @@ struct resource *r; struct rdc321x_wdt_pdata *pdata; - pdata = pdev->dev.platform_data; + pdata = platform_get_drvdata(pdev); if (!pdata) { dev_err(&pdev->dev, "no platform data supplied\n"); return -ENODEV; --- 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-egalax.c +++ linux-2.6.35/drivers/hid/hid-egalax.c @@ -31,7 +31,7 @@ bool first; /* is this the first finger in the frame? */ bool valid; /* valid finger data, or just placeholder? */ bool activity; /* at least one active finger previously? */ - __u16 lastx, lasty; /* latest valid (x, y) in the frame */ + __u16 lastx, lasty, lastz; /* latest valid (x, y, z) in the frame */ }; static int egalax_input_mapping(struct hid_device *hdev, struct hid_input *hi, @@ -79,6 +79,10 @@ case HID_DG_TIPPRESSURE: hid_map_usage(hi, usage, bit, max, EV_ABS, ABS_MT_PRESSURE); + /* touchscreen emulation */ + input_set_abs_params(hi->input, ABS_PRESSURE, + field->logical_minimum, + field->logical_maximum, 0, 0); return 1; } return 0; @@ -109,8 +113,8 @@ if (td->valid) { /* emit multitouch events */ input_event(input, EV_ABS, ABS_MT_TRACKING_ID, td->id); - input_event(input, EV_ABS, ABS_MT_POSITION_X, td->x); - input_event(input, EV_ABS, ABS_MT_POSITION_Y, td->y); + input_event(input, EV_ABS, ABS_MT_POSITION_X, td->x >> 3); + input_event(input, EV_ABS, ABS_MT_POSITION_Y, td->y >> 3); input_event(input, EV_ABS, ABS_MT_PRESSURE, td->z); input_mt_sync(input); @@ -121,6 +125,7 @@ */ td->lastx = td->x; td->lasty = td->y; + td->lastz = td->z; } /* @@ -129,8 +134,9 @@ * the oldest on the panel, the one we want for single touch */ if (!td->first && td->activity) { - input_event(input, EV_ABS, ABS_X, td->lastx); - input_event(input, EV_ABS, ABS_Y, td->lasty); + input_event(input, EV_ABS, ABS_X, td->lastx >> 3); + input_event(input, EV_ABS, ABS_Y, td->lasty >> 3); + input_event(input, EV_ABS, ABS_PRESSURE, td->lastz); } if (!td->valid) { --- 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/hidraw.c +++ linux-2.6.35/drivers/hid/hidraw.c @@ -111,6 +111,12 @@ int ret = 0; mutex_lock(&minors_lock); + + if (!hidraw_table[minor]) { + ret = -ENODEV; + goto out; + } + dev = hidraw_table[minor]->hid; if (!dev->hid_output_raw_report) { @@ -246,6 +252,10 @@ mutex_lock(&minors_lock); dev = hidraw_table[minor]; + if (!dev) { + ret = -ENODEV; + goto out; + } switch (cmd) { case HIDIOCGRDESCSIZE: @@ -319,6 +329,7 @@ ret = -ENOTTY; } +out: mutex_unlock(&minors_lock); return ret; } --- 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/hid/usbhid/hid-quirks.c +++ linux-2.6.35/drivers/hid/usbhid/hid-quirks.c @@ -33,7 +33,6 @@ { USB_VENDOR_ID_AASHIMA, USB_DEVICE_ID_AASHIMA_PREDATOR, HID_QUIRK_BADPAD }, { USB_VENDOR_ID_ALPS, USB_DEVICE_ID_IBM_GAMEPAD, HID_QUIRK_BADPAD }, { USB_VENDOR_ID_CHIC, USB_DEVICE_ID_CHIC_GAMEPAD, HID_QUIRK_BADPAD }, - { USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH, HID_QUIRK_MULTI_INPUT }, { USB_VENDOR_ID_MOJO, USB_DEVICE_ID_RETRO_ADAPTER, HID_QUIRK_MULTI_INPUT }, { USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_DRIVING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT }, { USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FLYING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT }, --- linux-2.6.35.orig/drivers/scsi/scsi_sysfs.c +++ linux-2.6.35/drivers/scsi/scsi_sysfs.c @@ -990,10 +990,11 @@ list_for_each_entry(sdev, &shost->__devices, siblings) { if (sdev->channel != starget->channel || sdev->id != starget->id || - sdev->sdev_state == SDEV_DEL) + scsi_device_get(sdev)) continue; spin_unlock_irqrestore(shost->host_lock, flags); scsi_remove_device(sdev); + scsi_device_put(sdev); spin_lock_irqsave(shost->host_lock, flags); goto restart; } --- linux-2.6.35.orig/drivers/scsi/scsi_lib.c +++ linux-2.6.35/drivers/scsi/scsi_lib.c @@ -1640,9 +1640,8 @@ blk_queue_max_segment_size(q, dma_get_max_seg_size(dev)); - /* New queue, no concurrency on queue_flags */ if (!shost->use_clustering) - queue_flag_clear_unlocked(QUEUE_FLAG_CLUSTER, q); + q->limits.cluster = 0; /* * set a reasonable default alignment on word boundaries: the @@ -2436,7 +2435,8 @@ sdev->sdev_state = SDEV_RUNNING; else if (sdev->sdev_state == SDEV_CREATED_BLOCK) sdev->sdev_state = SDEV_CREATED; - else + else if (sdev->sdev_state != SDEV_CANCEL && + sdev->sdev_state != SDEV_OFFLINE) return -EINVAL; spin_lock_irqsave(q->queue_lock, flags); --- linux-2.6.35.orig/drivers/scsi/sd.c +++ linux-2.6.35/drivers/scsi/sd.c @@ -2204,11 +2204,10 @@ index = sdkp->index; dev = &sdp->sdev_gendev; - if (index < SD_MAX_DISKS) { - gd->major = sd_major((index & 0xf0) >> 4); - gd->first_minor = ((index & 0xf) << 4) | (index & 0xfff00); - gd->minors = SD_MINORS; - } + gd->major = sd_major((index & 0xf0) >> 4); + gd->first_minor = ((index & 0xf) << 4) | (index & 0xfff00); + gd->minors = SD_MINORS; + gd->fops = &sd_fops; gd->private_data = &sdkp->driver; gd->queue = sdkp->device->request_queue; @@ -2297,6 +2296,12 @@ if (error) goto out_put; + if (index >= SD_MAX_DISKS) { + error = -ENODEV; + sdev_printk(KERN_WARNING, sdp, "SCSI disk (sd) name space exhausted.\n"); + goto out_free_index; + } + error = sd_format_disk_name("sd", index, gd->disk_name, DISK_NAME_LEN); if (error) goto out_free_index; --- linux-2.6.35.orig/drivers/scsi/gdth.c +++ linux-2.6.35/drivers/scsi/gdth.c @@ -4175,6 +4175,14 @@ ha = gdth_find_ha(gen.ionode); if (!ha) return -EFAULT; + + if (gen.data_len > INT_MAX) + return -EINVAL; + if (gen.sense_len > INT_MAX) + return -EINVAL; + if (gen.data_len + gen.sense_len > INT_MAX) + return -EINVAL; + if (gen.data_len + gen.sense_len != 0) { if (!(buf = gdth_ioctl_alloc(ha, gen.data_len + gen.sense_len, FALSE, &paddr))) --- linux-2.6.35.orig/drivers/scsi/scsi.c +++ linux-2.6.35/drivers/scsi/scsi.c @@ -1046,13 +1046,13 @@ /* If the user actually wanted this page, we can skip the rest */ if (page == 0) - return -EINVAL; + return 0; for (i = 0; i < min((int)buf[3], buf_len - 4); i++) if (buf[i + 4] == page) goto found; - if (i < buf[3] && i > buf_len) + if (i < buf[3] && i >= buf_len - 4) /* ran off the end of the buffer, give us benefit of doubt */ goto found; /* The device claims it doesn't support the requested page */ --- linux-2.6.35.orig/drivers/scsi/qla2xxx/qla_nx.c +++ linux-2.6.35/drivers/scsi/qla2xxx/qla_nx.c @@ -2798,6 +2798,7 @@ goto queuing_error_fcp_cmnd; int_to_scsilun(sp->cmd->device->lun, &cmd_pkt->lun); + host_to_fcp_swap((uint8_t *)&cmd_pkt->lun, sizeof(cmd_pkt->lun)); /* build FCP_CMND IU */ memset(ctx->fcp_cmnd, 0, sizeof(struct fcp_cmnd)); --- linux-2.6.35.orig/drivers/scsi/qla2xxx/qla_os.c +++ linux-2.6.35/drivers/scsi/qla2xxx/qla_os.c @@ -2102,6 +2102,7 @@ ha->init_cb_size = sizeof(struct mid_init_cb_81xx); ha->gid_list_info_size = 8; ha->optrom_size = OPTROM_SIZE_82XX; + ha->nvram_npiv_size = QLA_MAX_VPORTS_QLA25XX; ha->isp_ops = &qla82xx_isp_ops; ha->flash_conf_off = FARX_ACCESS_FLASH_CONF; ha->flash_data_off = FARX_ACCESS_FLASH_DATA; --- linux-2.6.35.orig/drivers/scsi/qla2xxx/qla_iocb.c +++ linux-2.6.35/drivers/scsi/qla2xxx/qla_iocb.c @@ -1122,6 +1122,7 @@ fcp_cmnd->additional_cdb_len |= 2; int_to_scsilun(sp->cmd->device->lun, &fcp_cmnd->lun); + host_to_fcp_swap((uint8_t *)&fcp_cmnd->lun, sizeof(fcp_cmnd->lun)); memcpy(fcp_cmnd->cdb, cmd->cmnd, cmd->cmd_len); cmd_pkt->fcp_cmnd_dseg_len = cpu_to_le16(fcp_cmnd_len); cmd_pkt->fcp_cmnd_dseg_address[0] = cpu_to_le32( --- linux-2.6.35.orig/drivers/scsi/libsas/sas_ata.c +++ linux-2.6.35/drivers/scsi/libsas/sas_ata.c @@ -347,6 +347,7 @@ static struct ata_port_operations sas_sata_ops = { .phy_reset = sas_ata_phy_reset, .post_internal_cmd = sas_ata_post_internal, + .qc_defer = ata_std_qc_defer, .qc_prep = ata_noop_qc_prep, .qc_issue = sas_ata_qc_issue, .qc_fill_rtf = sas_ata_qc_fill_rtf, --- 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/pnp/pnpacpi/core.c +++ linux-2.6.35/drivers/pnp/pnpacpi/core.c @@ -28,7 +28,7 @@ #include "../base.h" #include "pnpacpi.h" -static int num = 0; +static int num; /* We need only to blacklist devices that have already an acpi driver that * can't use pnp layer. We don't need to blacklist device that are directly @@ -157,11 +157,24 @@ }; EXPORT_SYMBOL(pnpacpi_protocol); +static char *pnpacpi_get_id(struct acpi_device *device) +{ + struct acpi_hardware_id *id; + + list_for_each_entry(id, &device->pnp.ids, list) { + if (ispnpidacpi(id->id)) + return id->id; + } + + return NULL; +} + static int __init pnpacpi_add_device(struct acpi_device *device) { acpi_handle temp = NULL; acpi_status status; struct pnp_dev *dev; + char *pnpid; struct acpi_hardware_id *id; /* @@ -169,11 +182,17 @@ * driver should not be loaded. */ status = acpi_get_handle(device->handle, "_CRS", &temp); - if (ACPI_FAILURE(status) || !ispnpidacpi(acpi_device_hid(device)) || - is_exclusive_device(device) || (!device->status.present)) + if (ACPI_FAILURE(status)) + return 0; + + pnpid = pnpacpi_get_id(device); + if (!pnpid) + return 0; + + if (is_exclusive_device(device) || !device->status.present) return 0; - dev = pnp_alloc_dev(&pnpacpi_protocol, num, acpi_device_hid(device)); + dev = pnp_alloc_dev(&pnpacpi_protocol, num, pnpid); if (!dev) return -ENOMEM; @@ -204,7 +223,7 @@ pnpacpi_parse_resource_option_data(dev); list_for_each_entry(id, &device->pnp.ids, list) { - if (!strcmp(id->id, acpi_device_hid(device))) + if (!strcmp(id->id, pnpid)) continue; if (!ispnpidacpi(id->id)) continue; --- linux-2.6.35.orig/drivers/i2c/busses/i2c-pca-isa.c +++ linux-2.6.35/drivers/i2c/busses/i2c-pca-isa.c @@ -71,8 +71,8 @@ static int pca_isa_waitforcompletion(void *pd) { - long ret = ~0; unsigned long timeout; + long ret; if (irq > -1) { ret = wait_event_timeout(pca_wait, @@ -81,11 +81,15 @@ } else { /* Do polling */ timeout = jiffies + pca_isa_ops.timeout; - while (((pca_isa_readbyte(pd, I2C_PCA_CON) - & I2C_PCA_CON_SI) == 0) - && (ret = time_before(jiffies, timeout))) + do { + ret = time_before(jiffies, timeout); + if (pca_isa_readbyte(pd, I2C_PCA_CON) + & I2C_PCA_CON_SI) + break; udelay(100); + } while (ret); } + return ret > 0; } --- linux-2.6.35.orig/drivers/i2c/busses/i2c-pca-platform.c +++ linux-2.6.35/drivers/i2c/busses/i2c-pca-platform.c @@ -80,8 +80,8 @@ static int i2c_pca_pf_waitforcompletion(void *pd) { struct i2c_pca_pf_data *i2c = pd; - long ret = ~0; unsigned long timeout; + long ret; if (i2c->irq) { ret = wait_event_timeout(i2c->wait, @@ -90,10 +90,13 @@ } else { /* Do polling */ timeout = jiffies + i2c->adap.timeout; - while (((i2c->algo_data.read_byte(i2c, I2C_PCA_CON) - & I2C_PCA_CON_SI) == 0) - && (ret = time_before(jiffies, timeout))) + do { + ret = time_before(jiffies, timeout); + if (i2c->algo_data.read_byte(i2c, I2C_PCA_CON) + & I2C_PCA_CON_SI) + break; udelay(100); + } while (ret); } return ret > 0; @@ -221,7 +224,7 @@ if (irq) { ret = request_irq(irq, i2c_pca_pf_handler, - IRQF_TRIGGER_FALLING, i2c->adap.name, i2c); + IRQF_TRIGGER_FALLING, pdev->name, i2c); if (ret) goto e_reqirq; } --- 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/bus.c +++ linux-2.6.35/drivers/acpi/bus.c @@ -80,23 +80,15 @@ static struct dmi_system_id dsdt_dmi_table[] __initdata = { /* - * Insyde BIOS on some TOSHIBA machines corrupt the DSDT. + * Invoke DSDT corruption work-around on all Toshiba Satellite. * https://bugzilla.kernel.org/show_bug.cgi?id=14679 */ { .callback = set_copy_dsdt, - .ident = "TOSHIBA Satellite A505", + .ident = "TOSHIBA Satellite", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), - DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A505"), - }, - }, - { - .callback = set_copy_dsdt, - .ident = "TOSHIBA Satellite L505D", - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), - DMI_MATCH(DMI_PRODUCT_NAME, "Satellite L505D"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite"), }, }, {} --- linux-2.6.35.orig/drivers/acpi/acpi_pad.c +++ linux-2.6.35/drivers/acpi/acpi_pad.c @@ -30,18 +30,13 @@ #include #include #include +#include #define ACPI_PROCESSOR_AGGREGATOR_CLASS "acpi_pad" #define ACPI_PROCESSOR_AGGREGATOR_DEVICE_NAME "Processor Aggregator" #define ACPI_PROCESSOR_AGGREGATOR_NOTIFY 0x80 static DEFINE_MUTEX(isolated_cpus_lock); -#define MWAIT_SUBSTATE_MASK (0xf) -#define MWAIT_CSTATE_MASK (0xf) -#define MWAIT_SUBSTATE_SIZE (4) -#define CPUID_MWAIT_LEAF (5) -#define CPUID5_ECX_EXTENSIONS_SUPPORTED (0x1) -#define CPUID5_ECX_INTERRUPT_BREAK (0x2) static unsigned long power_saving_mwait_eax; static unsigned char tsc_detected_unstable; --- linux-2.6.35.orig/drivers/acpi/battery.c +++ linux-2.6.35/drivers/acpi/battery.c @@ -98,6 +98,7 @@ * due to bad math. */ ACPI_BATTERY_QUIRK_SIGNED16_CURRENT, + ACPI_BATTERY_QUIRK_PERCENTAGE_CAPACITY, }; struct acpi_battery { @@ -413,6 +414,8 @@ result = extract_package(battery, buffer.pointer, info_offsets, ARRAY_SIZE(info_offsets)); kfree(buffer.pointer); + if (test_bit(ACPI_BATTERY_QUIRK_PERCENTAGE_CAPACITY, &battery->flags)) + battery->full_charge_capacity = battery->design_capacity; return result; } @@ -449,6 +452,10 @@ battery->rate_now != -1) battery->rate_now = abs((s16)battery->rate_now); + if (test_bit(ACPI_BATTERY_QUIRK_PERCENTAGE_CAPACITY, &battery->flags) + && battery->capacity_now >= 0 && battery->capacity_now <= 100) + battery->capacity_now = (battery->capacity_now * + battery->full_charge_capacity) / 100; return result; } @@ -562,6 +569,33 @@ } } +/* + * According to the ACPI spec, some kinds of primary batteries can + * report percentage battery remaining capacity directly to OS. + * In this case, it reports the Last Full Charged Capacity == 100 + * and BatteryPresentRate == 0xFFFFFFFF. + * + * Now we found some battery reports percentage remaining capacity + * even if it's rechargeable. + * https://bugzilla.kernel.org/show_bug.cgi?id=15979 + * + * Handle this correctly so that they won't break userspace. + */ +static void acpi_battery_quirks2(struct acpi_battery *battery) +{ + if (test_bit(ACPI_BATTERY_QUIRK_PERCENTAGE_CAPACITY, &battery->flags)) + return ; + + if (battery->full_charge_capacity == 100 && + battery->rate_now == ACPI_BATTERY_VALUE_UNKNOWN && + battery->capacity_now >=0 && battery->capacity_now <= 100) { + set_bit(ACPI_BATTERY_QUIRK_PERCENTAGE_CAPACITY, &battery->flags); + battery->full_charge_capacity = battery->design_capacity; + battery->capacity_now = (battery->capacity_now * + battery->full_charge_capacity) / 100; + } +} + static int acpi_battery_update(struct acpi_battery *battery) { int result, old_present = acpi_battery_present(battery); @@ -587,7 +621,9 @@ if (!battery->bat.dev) sysfs_add_battery(battery); #endif - return acpi_battery_get_state(battery); + result = acpi_battery_get_state(battery); + acpi_battery_quirks2(battery); + return result; } /* -------------------------------------------------------------------------- @@ -890,6 +926,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 +956,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 +979,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 +1020,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/sleep.c +++ linux-2.6.35/drivers/acpi/sleep.c @@ -119,6 +119,16 @@ } /** + * acpi_pre_suspend - Enable wakeup devices, "freeze" EC and save NVS. + */ +static int acpi_pm_pre_suspend(void) +{ + acpi_pm_freeze(); + suspend_nvs_save(); + return 0; +} + +/** * __acpi_pm_prepare - Prepare the platform to enter the target state. * * If necessary, set the firmware waking vector and do arch-specific @@ -127,11 +137,9 @@ static int __acpi_pm_prepare(void) { int error = acpi_sleep_prepare(acpi_target_sleep_state); - - suspend_nvs_save(); - if (error) acpi_target_sleep_state = ACPI_STATE_S0; + return error; } @@ -142,9 +150,8 @@ static int acpi_pm_prepare(void) { int error = __acpi_pm_prepare(); - if (!error) - acpi_pm_freeze(); + acpi_pm_pre_suspend(); return error; } @@ -336,9 +343,9 @@ static int acpi_suspend_begin_old(suspend_state_t pm_state) { int error = acpi_suspend_begin(pm_state); - if (!error) error = __acpi_pm_prepare(); + return error; } @@ -349,7 +356,7 @@ static struct platform_suspend_ops acpi_suspend_ops_old = { .valid = acpi_suspend_state_valid, .begin = acpi_suspend_begin_old, - .prepare_late = acpi_pm_freeze, + .prepare_late = acpi_pm_pre_suspend, .enter = acpi_suspend_enter, .wake = acpi_suspend_finish, .end = acpi_pm_end, @@ -362,6 +369,12 @@ return 0; } +static int __init init_nvs_nosave(const struct dmi_system_id *d) +{ + acpi_nvs_nosave(); + return 0; +} + static struct dmi_system_id __initdata acpisleep_dmi_table[] = { { .callback = init_old_suspend_ordering, @@ -396,6 +409,22 @@ DMI_MATCH(DMI_BOARD_NAME, "CF51-2L"), }, }, + { + .callback = init_nvs_nosave, + .ident = "Sony Vaio VGN-SR11M", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), + DMI_MATCH(DMI_PRODUCT_NAME, "VGN-SR11M"), + }, + }, + { + .callback = init_nvs_nosave, + .ident = "Everex StepNote Series", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Everex Systems, Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Everex StepNote Series"), + }, + }, {}, }; #endif /* CONFIG_SUSPEND */ @@ -423,16 +452,6 @@ return error; } -static int acpi_hibernation_pre_snapshot(void) -{ - int error = acpi_pm_prepare(); - - if (!error) - suspend_nvs_save(); - - return error; -} - static int acpi_hibernation_enter(void) { acpi_status status = AE_OK; @@ -481,7 +500,7 @@ static struct platform_hibernation_ops acpi_hibernation_ops = { .begin = acpi_hibernation_begin, .end = acpi_pm_end, - .pre_snapshot = acpi_hibernation_pre_snapshot, + .pre_snapshot = acpi_pm_prepare, .finish = acpi_pm_finish, .prepare = acpi_pm_prepare, .enter = acpi_hibernation_enter, @@ -517,13 +536,6 @@ return error; } -static int acpi_hibernation_pre_snapshot_old(void) -{ - acpi_pm_freeze(); - suspend_nvs_save(); - return 0; -} - /* * The following callbacks are used if the pre-ACPI 2.0 suspend ordering has * been requested. @@ -531,7 +543,7 @@ static struct platform_hibernation_ops acpi_hibernation_ops_old = { .begin = acpi_hibernation_begin_old, .end = acpi_pm_end, - .pre_snapshot = acpi_hibernation_pre_snapshot_old, + .pre_snapshot = acpi_pm_pre_suspend, .prepare = acpi_pm_freeze, .finish = acpi_pm_finish, .enter = acpi_hibernation_enter, --- linux-2.6.35.orig/drivers/acpi/processor_core.c +++ linux-2.6.35/drivers/acpi/processor_core.c @@ -29,12 +29,6 @@ static struct dmi_system_id __cpuinitdata processor_idle_dmi_table[] = { { - set_no_mwait, "IFL91 board", { - DMI_MATCH(DMI_BIOS_VENDOR, "COMPAL"), - DMI_MATCH(DMI_SYS_VENDOR, "ZEPTO"), - DMI_MATCH(DMI_PRODUCT_VERSION, "3215W"), - DMI_MATCH(DMI_BOARD_NAME, "IFL91") }, NULL}, - { set_no_mwait, "Extensa 5220", { DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), DMI_MATCH(DMI_SYS_VENDOR, "Acer"), @@ -352,4 +346,5 @@ acpi_walk_namespace(ACPI_TYPE_PROCESSOR, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX, early_init_pdc, NULL, NULL, NULL); + acpi_get_devices("ACPI0007", early_init_pdc, NULL, NULL); } --- 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/blacklist.c +++ linux-2.6.35/drivers/acpi/blacklist.c @@ -226,6 +226,14 @@ }, }, { + .callback = dmi_disable_osi_vista, + .ident = "Toshiba Satellite L355", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_VERSION, "Satellite L355"), + }, + }, + { .callback = dmi_disable_osi_win7, .ident = "ASUS K50IJ", .matches = { @@ -233,6 +241,14 @@ DMI_MATCH(DMI_PRODUCT_NAME, "K50IJ"), }, }, + { + .callback = dmi_disable_osi_vista, + .ident = "Toshiba P305D", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P305D"), + }, + }, /* * BIOS invocation of _OSI(Linux) is almost always a BIOS bug. --- linux-2.6.35.orig/drivers/acpi/ec.c +++ linux-2.6.35/drivers/acpi/ec.c @@ -1006,6 +1006,9 @@ ec_flag_msi, "MSI hardware", { DMI_MATCH(DMI_CHASSIS_VENDOR, "MICRO-Star")}, NULL}, { + ec_flag_msi, "MSI hardware", { + DMI_MATCH(DMI_CHASSIS_VENDOR, "MICRO-STAR")}, NULL}, + { ec_validate_ecdt, "ASUS hardware", { DMI_MATCH(DMI_BIOS_VENDOR, "ASUS") }, NULL}, {}, --- linux-2.6.35.orig/drivers/acpi/debug.c +++ linux-2.6.35/drivers/acpi/debug.c @@ -258,7 +258,7 @@ if (!acpi_dir) goto err; - cm_dentry = debugfs_create_file("custom_method", S_IWUGO, + cm_dentry = debugfs_create_file("custom_method", S_IWUSR, acpi_dir, NULL, &cm_fops); if (!cm_dentry) goto err; --- 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/acpica/dswexec.c +++ linux-2.6.35/drivers/acpi/acpica/dswexec.c @@ -300,10 +300,25 @@ * we must enter this object into the namespace. The created * object is temporary and will be deleted upon completion of * the execution of this method. + * + * Note 10/2010: Except for the Scope() op. This opcode does + * not actually create a new object, it refers to an existing + * object. However, for Scope(), we want to indeed open a + * new scope. */ - status = acpi_ds_load2_begin_op(walk_state, NULL); + if (op->common.aml_opcode != AML_SCOPE_OP) { + status = + acpi_ds_load2_begin_op(walk_state, NULL); + } else { + status = + acpi_ds_scope_stack_push(op->named.node, + op->named.node-> + type, walk_state); + if (ACPI_FAILURE(status)) { + return_ACPI_STATUS(status); + } + } } - break; case AML_CLASS_EXECUTE: --- 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_vm.c +++ linux-2.6.35/drivers/gpu/drm/drm_vm.c @@ -433,15 +433,7 @@ mutex_unlock(&dev->struct_mutex); } -/** - * \c close method for all virtual memory types. - * - * \param vma virtual memory area. - * - * Search the \p vma private data entry in drm_device::vmalist, unlink it, and - * free it. - */ -static void drm_vm_close(struct vm_area_struct *vma) +void drm_vm_close_locked(struct vm_area_struct *vma) { struct drm_file *priv = vma->vm_file->private_data; struct drm_device *dev = priv->minor->dev; @@ -451,7 +443,6 @@ vma->vm_start, vma->vm_end - vma->vm_start); atomic_dec(&dev->vma_count); - mutex_lock(&dev->struct_mutex); list_for_each_entry_safe(pt, temp, &dev->vmalist, head) { if (pt->vma == vma) { list_del(&pt->head); @@ -459,6 +450,23 @@ break; } } +} + +/** + * \c close method for all virtual memory types. + * + * \param vma virtual memory area. + * + * Search the \p vma private data entry in drm_device::vmalist, unlink it, and + * free it. + */ +static void drm_vm_close(struct vm_area_struct *vma) +{ + struct drm_file *priv = vma->vm_file->private_data; + struct drm_device *dev = priv->minor->dev; + + mutex_lock(&dev->struct_mutex); + drm_vm_close_locked(vma); mutex_unlock(&dev->struct_mutex); } --- linux-2.6.35.orig/drivers/gpu/drm/drm_crtc.c +++ linux-2.6.35/drivers/gpu/drm/drm_crtc.c @@ -155,12 +155,12 @@ { DRM_MODE_CONNECTOR_SVIDEO, "SVIDEO", 0 }, { DRM_MODE_CONNECTOR_LVDS, "LVDS", 0 }, { DRM_MODE_CONNECTOR_Component, "Component", 0 }, - { DRM_MODE_CONNECTOR_9PinDIN, "9-pin DIN", 0 }, - { DRM_MODE_CONNECTOR_DisplayPort, "DisplayPort", 0 }, - { DRM_MODE_CONNECTOR_HDMIA, "HDMI Type A", 0 }, - { DRM_MODE_CONNECTOR_HDMIB, "HDMI Type B", 0 }, + { DRM_MODE_CONNECTOR_9PinDIN, "DIN", 0 }, + { DRM_MODE_CONNECTOR_DisplayPort, "DP", 0 }, + { DRM_MODE_CONNECTOR_HDMIA, "HDMI-A", 0 }, + { DRM_MODE_CONNECTOR_HDMIB, "HDMI-B", 0 }, { DRM_MODE_CONNECTOR_TV, "TV", 0 }, - { DRM_MODE_CONNECTOR_eDP, "Embedded DisplayPort", 0 }, + { DRM_MODE_CONNECTOR_eDP, "eDP", 0 }, }; static struct drm_prop_enum_list drm_encoder_enum_list[] = --- 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/drm_gem.c +++ linux-2.6.35/drivers/gpu/drm/drm_gem.c @@ -451,28 +451,6 @@ } EXPORT_SYMBOL(drm_gem_object_free); -/** - * Called after the last reference to the object has been lost. - * Must be called without holding struct_mutex - * - * Frees the object - */ -void -drm_gem_object_free_unlocked(struct kref *kref) -{ - struct drm_gem_object *obj = (struct drm_gem_object *) kref; - struct drm_device *dev = obj->dev; - - if (dev->driver->gem_free_object_unlocked != NULL) - dev->driver->gem_free_object_unlocked(obj); - else if (dev->driver->gem_free_object != NULL) { - mutex_lock(&dev->struct_mutex); - dev->driver->gem_free_object(obj); - mutex_unlock(&dev->struct_mutex); - } -} -EXPORT_SYMBOL(drm_gem_object_free_unlocked); - static void drm_gem_object_ref_bug(struct kref *list_kref) { BUG(); @@ -517,6 +495,10 @@ struct drm_gem_object *obj = vma->vm_private_data; drm_gem_object_reference(obj); + + mutex_lock(&obj->dev->struct_mutex); + drm_vm_open_locked(vma); + mutex_unlock(&obj->dev->struct_mutex); } EXPORT_SYMBOL(drm_gem_vm_open); @@ -524,7 +506,10 @@ { struct drm_gem_object *obj = vma->vm_private_data; - drm_gem_object_unreference_unlocked(obj); + mutex_lock(&obj->dev->struct_mutex); + drm_vm_close_locked(vma); + drm_gem_object_unreference(obj); + mutex_unlock(&obj->dev->struct_mutex); } EXPORT_SYMBOL(drm_gem_vm_close); --- 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; } @@ -4604,15 +4635,6 @@ kfree(intel_crtc); } -struct intel_unpin_work { - struct work_struct work; - struct drm_device *dev; - struct drm_gem_object *old_fb_obj; - struct drm_gem_object *pending_flip_obj; - struct drm_pending_vblank_event *event; - int pending; -}; - static void intel_unpin_work_fn(struct work_struct *__work) { struct intel_unpin_work *work = @@ -4698,7 +4720,8 @@ spin_lock_irqsave(&dev->event_lock, flags); if (intel_crtc->unpin_work) { - intel_crtc->unpin_work->pending = 1; + if ((++intel_crtc->unpin_work->pending) > 1) + DRM_ERROR("Prepared flip multiple times\n"); } else { DRM_DEBUG_DRIVER("preparing flip with no unpin work?\n"); } @@ -4774,14 +4797,18 @@ 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(); + } + + work->enable_stall_check = true; /* Offset into the new buffer for cases of shared fbs between CRTCs */ offset = obj_priv->gtt_offset; @@ -4795,12 +4822,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 +4897,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; @@ -5355,6 +5388,13 @@ I915_WRITE(PCH_DSPCLK_GATE_D, dspclk_gate); /* + * On Ibex Peak and Cougar Point, we need to disable clock + * gating for the panel power sequencer or it will fail to + * start up when no ports are active. + */ + I915_WRITE(SOUTH_DSPCLK_GATE_D, PCH_DPLSUNIT_CLOCK_GATE_DISABLE); + + /* * According to the spec the following bits should be set in * order to enable memory self-refresh * The bit 22/21 of 0x42004 @@ -5371,6 +5411,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 +5634,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 +5705,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/intel_sdvo.c +++ linux-2.6.35/drivers/gpu/drm/i915/intel_sdvo.c @@ -1580,10 +1580,10 @@ intel_sdvo_write_cmd(intel_encoder, SDVO_CMD_GET_ATTACHED_DISPLAYS, NULL, 0); - if (sdvo_priv->is_tv) { - /* add 30ms delay when the output type is SDVO-TV */ - mdelay(30); - } + /* add 30ms delay when the output type might be TV */ + if (sdvo_priv->caps.output_flags & + (SDVO_OUTPUT_SVID0 | SDVO_OUTPUT_CVBS0)) + mdelay(30); status = intel_sdvo_read_response(intel_encoder, &response, 2); DRM_DEBUG_KMS("SDVO response %d %d\n", response & 0xff, response >> 8); --- 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 */ @@ -1770,9 +1778,9 @@ } } - div_u64(diff, diff1); + diff = div_u64(diff, diff1); ret = ((m * diff) + c); - div_u64(ret, 10); + ret = div_u64(ret, 10); dev_priv->last_count1 = total_count; dev_priv->last_time1 = now; @@ -1841,7 +1849,7 @@ /* More magic constants... */ diff = diff * 1181; - div_u64(diff, diffms * 10); + diff = div_u64(diff, diffms * 10); dev_priv->gfx_power = diff; } @@ -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"); @@ -2204,6 +2222,9 @@ dev_priv->mchdev_lock = &mchdev_lock; spin_unlock(&mchdev_lock); + /* XXX Prevent module unload due to memory corruption bugs. */ + __module_get(THIS_MODULE); + return 0; out_workqueue_free: @@ -2276,6 +2297,9 @@ i915_gem_lastclose(dev); intel_cleanup_overlay(dev); + + if (!I915_NEED_GFX_HWS(dev)) + i915_free_hws(dev); } intel_teardown_mchbar(dev); --- 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) @@ -160,6 +165,16 @@ #define enc_to_intel_encoder(x) container_of(x, struct intel_encoder, enc) #define to_intel_framebuffer(x) container_of(x, struct intel_framebuffer, base) +struct intel_unpin_work { + struct work_struct work; + struct drm_device *dev; + struct drm_gem_object *old_fb_obj; + struct drm_gem_object *pending_flip_obj; + struct drm_pending_vblank_event *event; + int pending; + bool enable_stall_check; +}; + struct i2c_adapter *intel_i2c_create(struct drm_device *dev, const u32 reg, const char *name); void intel_i2c_destroy(struct i2c_adapter *adapter); --- linux-2.6.35.orig/drivers/gpu/drm/i915/i915_irq.c +++ linux-2.6.35/drivers/gpu/drm/i915/i915_irq.c @@ -834,6 +834,49 @@ queue_work(dev_priv->wq, &dev_priv->error_work); } +static void i915_pageflip_stall_check(struct drm_device *dev, int pipe) +{ + drm_i915_private_t *dev_priv = dev->dev_private; + struct drm_crtc *crtc = dev_priv->pipe_to_crtc_mapping[pipe]; + struct intel_crtc *intel_crtc = to_intel_crtc(crtc); + struct drm_i915_gem_object *obj_priv; + struct intel_unpin_work *work; + unsigned long flags; + bool stall_detected; + + /* Ignore early vblank irqs */ + if (intel_crtc == NULL) + return; + + spin_lock_irqsave(&dev->event_lock, flags); + work = intel_crtc->unpin_work; + + if (work == NULL || work->pending || !work->enable_stall_check) { + /* Either the pending flip IRQ arrived, or we're too early. Don't check */ + spin_unlock_irqrestore(&dev->event_lock, flags); + return; + } + + /* Potential stall - if we see that the flip has happened, assume a missed interrupt */ + obj_priv = to_intel_bo(work->pending_flip_obj); + if(IS_I965G(dev)) { + int dspsurf = intel_crtc->plane == 0 ? DSPASURF : DSPBSURF; + stall_detected = I915_READ(dspsurf) == obj_priv->gtt_offset; + } else { + int dspaddr = intel_crtc->plane == 0 ? DSPAADDR : DSPBADDR; + stall_detected = I915_READ(dspaddr) == (obj_priv->gtt_offset + + crtc->y * crtc->fb->pitch + + crtc->x * crtc->fb->bits_per_pixel/8); + } + + spin_unlock_irqrestore(&dev->event_lock, flags); + + if (stall_detected) { + DRM_DEBUG_DRIVER("Pageflip stall detected\n"); + intel_prepare_page_flip(dev, intel_crtc->plane); + } +} + irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS) { struct drm_device *dev = (struct drm_device *) arg; @@ -955,15 +998,19 @@ if (pipea_stats & vblank_status) { vblank++; drm_handle_vblank(dev, 0); - if (!dev_priv->flip_pending_is_done) + if (!dev_priv->flip_pending_is_done) { + i915_pageflip_stall_check(dev, 0); intel_finish_page_flip(dev, 0); + } } if (pipeb_stats & vblank_status) { vblank++; drm_handle_vblank(dev, 1); - if (!dev_priv->flip_pending_is_done) + if (!dev_priv->flip_pending_is_done) { + i915_pageflip_stall_check(dev, 1); intel_finish_page_flip(dev, 1); + } } if ((pipea_stats & I915_LEGACY_BLC_EVENT_STATUS) || --- 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; } @@ -418,6 +416,7 @@ uint16_t address = algo_data->address; uint8_t msg[5]; uint8_t reply[2]; + unsigned retry; int msg_bytes; int reply_bytes; int ret; @@ -452,14 +451,33 @@ break; } - for (;;) { - ret = intel_dp_aux_ch(intel_encoder, - msg, msg_bytes, - reply, reply_bytes); + for (retry = 0; retry < 5; retry++) { + ret = intel_dp_aux_ch(intel_encoder, + msg, msg_bytes, + reply, reply_bytes); if (ret < 0) { DRM_DEBUG_KMS("aux_ch failed %d\n", ret); return ret; } + + switch (reply[0] & AUX_NATIVE_REPLY_MASK) { + case AUX_NATIVE_REPLY_ACK: + /* I2C-over-AUX Reply field is only valid + * when paired with AUX ACK. + */ + break; + case AUX_NATIVE_REPLY_NACK: + DRM_DEBUG_KMS("aux_ch native nack\n"); + return -EREMOTEIO; + case AUX_NATIVE_REPLY_DEFER: + udelay(100); + continue; + default: + DRM_ERROR("aux_ch invalid native reply 0x%02x\n", + reply[0]); + return -EREMOTEIO; + } + switch (reply[0] & AUX_I2C_REPLY_MASK) { case AUX_I2C_REPLY_ACK: if (mode == MODE_I2C_READ) { @@ -467,17 +485,20 @@ } return reply_bytes - 1; case AUX_I2C_REPLY_NACK: - DRM_DEBUG_KMS("aux_ch nack\n"); + DRM_DEBUG_KMS("aux_i2c nack\n"); return -EREMOTEIO; case AUX_I2C_REPLY_DEFER: - DRM_DEBUG_KMS("aux_ch defer\n"); + DRM_DEBUG_KMS("aux_i2c defer\n"); udelay(100); break; default: - DRM_ERROR("aux_ch invalid reply 0x%02x\n", reply[0]); + DRM_ERROR("aux_i2c invalid reply 0x%02x\n", reply[0]); return -EREMOTEIO; } } + + DRM_ERROR("too many retries, giving up\n"); + return -EREMOTEIO; } static int --- 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 @@ -2700,6 +2709,9 @@ #define FDI_RXB_CHICKEN 0xc2010 #define FDI_RX_PHASE_SYNC_POINTER_ENABLE (1) +#define SOUTH_DSPCLK_GATE_D 0xc2020 +#define PCH_DPLSUNIT_CLOCK_GATE_DISABLE (1<<29) + /* CPU: FDI_TX */ #define FDI_TXA_CTL 0x60100 #define FDI_TXB_CTL 0x61100 --- 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 @@ -34,6 +34,7 @@ #include #include #include +#include static void i915_gem_object_flush_gpu_write_domain(struct drm_gem_object *obj); static void i915_gem_object_flush_gtt_write_domain(struct drm_gem_object *obj); @@ -459,16 +460,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 +488,6 @@ } drm_gem_object_unreference_unlocked(obj); - return ret; } @@ -568,8 +576,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 +921,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 +978,6 @@ #endif drm_gem_object_unreference_unlocked(obj); - return ret; } @@ -2500,14 +2513,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 +2550,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; @@ -3367,6 +3391,8 @@ (int) reloc->offset, reloc->read_domains, reloc->write_domain); + drm_gem_object_unreference(target_obj); + i915_gem_object_unpin(obj); return -EINVAL; } if (reloc->write_domain & I915_GEM_DOMAIN_CPU || @@ -3709,6 +3735,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/i915_opregion.c +++ linux-2.6.35/drivers/gpu/drm/i915/i915_opregion.c @@ -535,6 +535,7 @@ err_out: iounmap(opregion->header); opregion->header = NULL; + acpi_video_register(); return err; } --- linux-2.6.35.orig/drivers/gpu/drm/i915/i915_debugfs.c +++ linux-2.6.35/drivers/gpu/drm/i915/i915_debugfs.c @@ -31,6 +31,7 @@ #include #include "drmP.h" #include "drm.h" +#include "intel_drv.h" #include "i915_drm.h" #include "i915_drv.h" @@ -121,6 +122,54 @@ return 0; } +static int i915_gem_pageflip_info(struct seq_file *m, void *data) +{ + struct drm_info_node *node = (struct drm_info_node *) m->private; + struct drm_device *dev = node->minor->dev; + unsigned long flags; + struct intel_crtc *crtc; + + list_for_each_entry(crtc, &dev->mode_config.crtc_list, base.head) { + const char *pipe = crtc->pipe ? "B" : "A"; + const char *plane = crtc->plane ? "B" : "A"; + struct intel_unpin_work *work; + + spin_lock_irqsave(&dev->event_lock, flags); + work = crtc->unpin_work; + if (work == NULL) { + seq_printf(m, "No flip due on pipe %s (plane %s)\n", + pipe, plane); + } else { + if (!work->pending) { + seq_printf(m, "Flip queued on pipe %s (plane %s)\n", + pipe, plane); + } else { + seq_printf(m, "Flip pending (waiting for vsync) on pipe %s (plane %s)\n", + pipe, plane); + } + if (work->enable_stall_check) + seq_printf(m, "Stall check enabled, "); + else + seq_printf(m, "Stall check waiting for page flip ioctl, "); + seq_printf(m, "%d prepares\n", work->pending); + + if (work->old_fb_obj) { + struct drm_i915_gem_object *obj_priv = to_intel_bo(work->old_fb_obj); + if(obj_priv) + seq_printf(m, "Old framebuffer gtt_offset 0x%08x\n", obj_priv->gtt_offset ); + } + if (work->pending_flip_obj) { + struct drm_i915_gem_object *obj_priv = to_intel_bo(work->pending_flip_obj); + if(obj_priv) + seq_printf(m, "New framebuffer gtt_offset 0x%08x\n", obj_priv->gtt_offset ); + } + } + spin_unlock_irqrestore(&dev->event_lock, flags); + } + + return 0; +} + static int i915_gem_request_info(struct seq_file *m, void *data) { struct drm_info_node *node = (struct drm_info_node *) m->private; @@ -774,6 +823,7 @@ {"i915_gem_active", i915_gem_object_list_info, 0, (void *) ACTIVE_LIST}, {"i915_gem_flushing", i915_gem_object_list_info, 0, (void *) FLUSHING_LIST}, {"i915_gem_inactive", i915_gem_object_list_info, 0, (void *) INACTIVE_LIST}, + {"i915_gem_pageflip", i915_gem_pageflip_info, 0}, {"i915_gem_request", i915_gem_request_info, 0}, {"i915_gem_seqno", i915_gem_seqno_info, 0}, {"i915_gem_fence_regs", i915_gem_fence_regs_info, 0}, --- 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; @@ -1361,6 +1364,12 @@ goto out_free_bo; } overlay->flip_addr = overlay->reg_bo->gtt_offset; + + ret = i915_gem_object_set_to_gtt_domain(reg_bo, true); + if (ret) { + DRM_ERROR("failed to move overlay register bo into the GTT\n"); + goto out_unpin_bo; + } } else { ret = i915_gem_attach_phys_object(dev, reg_bo, I915_GEM_PHYS_OVERLAY_REGS); @@ -1392,6 +1401,8 @@ DRM_INFO("initialized overlay support\n"); return; +out_unpin_bo: + i915_gem_object_unpin(reg_bo); out_free_bo: drm_gem_object_unreference(reg_bo); out_free: --- linux-2.6.35.orig/drivers/gpu/drm/radeon/r600.c +++ linux-2.6.35/drivers/gpu/drm/radeon/r600.c @@ -869,7 +869,20 @@ 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) && + !(rdev->flags & RADEON_IS_AGP)) { + 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 + * This seems to cause problems on some AGP cards. Just use the old + * method for them. + */ + 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); @@ -1176,8 +1189,10 @@ mc->vram_end, mc->real_vram_size >> 20); } else { u64 base = 0; - if (rdev->flags & RADEON_IS_IGP) - base = (RREG32(MC_VM_FB_LOCATION) & 0xFFFF) << 24; + if (rdev->flags & RADEON_IS_IGP) { + base = RREG32(MC_VM_FB_LOCATION) & 0xFFFF; + base <<= 24; + } radeon_vram_location(rdev, &rdev->mc, base); rdev->mc.gtt_base_align = 0; radeon_gtt_location(rdev, mc); @@ -2094,10 +2109,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 +3524,18 @@ */ 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. + * This seems to cause problems on some AGP cards. Just use the old + * method for them. + */ + if ((rdev->family >= CHIP_RV770) && (rdev->family <= CHIP_RV740) && + rdev->vram_scratch.ptr && !(rdev->flags & RADEON_IS_AGP)) { + 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_connectors.c +++ linux-2.6.35/drivers/gpu/drm/radeon/radeon_connectors.c @@ -1083,6 +1083,8 @@ rdev->mode_info.load_detect_property, 1); connector->polled = DRM_CONNECTOR_POLL_CONNECT; + connector->interlace_allowed = true; + connector->doublescan_allowed = true; break; case DRM_MODE_CONNECTOR_DVIA: drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type); @@ -1096,6 +1098,8 @@ drm_connector_attach_property(&radeon_connector->base, rdev->mode_info.load_detect_property, 1); + connector->interlace_allowed = true; + connector->doublescan_allowed = true; break; case DRM_MODE_CONNECTOR_DVII: case DRM_MODE_CONNECTOR_DVID: @@ -1122,6 +1126,11 @@ rdev->mode_info.load_detect_property, 1); } + connector->interlace_allowed = true; + if (connector_type == DRM_MODE_CONNECTOR_DVII) + connector->doublescan_allowed = true; + else + connector->doublescan_allowed = false; break; case DRM_MODE_CONNECTOR_HDMIA: case DRM_MODE_CONNECTOR_HDMIB: @@ -1142,6 +1151,11 @@ rdev->mode_info.coherent_mode_property, 1); subpixel_order = SubPixelHorizontalRGB; + connector->interlace_allowed = true; + if (connector_type == DRM_MODE_CONNECTOR_HDMIB) + connector->doublescan_allowed = true; + else + connector->doublescan_allowed = false; break; case DRM_MODE_CONNECTOR_DisplayPort: case DRM_MODE_CONNECTOR_eDP: @@ -1172,6 +1186,9 @@ drm_connector_attach_property(&radeon_connector->base, rdev->mode_info.coherent_mode_property, 1); + connector->interlace_allowed = true; + /* in theory with a DP to VGA converter... */ + connector->doublescan_allowed = false; break; case DRM_MODE_CONNECTOR_SVIDEO: case DRM_MODE_CONNECTOR_Composite: @@ -1187,6 +1204,8 @@ rdev->mode_info.tv_std_property, radeon_atombios_get_tv_info(rdev)); } + connector->interlace_allowed = false; + connector->doublescan_allowed = false; break; case DRM_MODE_CONNECTOR_LVDS: radeon_dig_connector = kzalloc(sizeof(struct radeon_connector_atom_dig), GFP_KERNEL); @@ -1206,6 +1225,8 @@ dev->mode_config.scaling_mode_property, DRM_MODE_SCALE_FULLSCREEN); subpixel_order = SubPixelHorizontalRGB; + connector->interlace_allowed = false; + connector->doublescan_allowed = false; break; } @@ -1277,6 +1298,8 @@ rdev->mode_info.load_detect_property, 1); connector->polled = DRM_CONNECTOR_POLL_CONNECT; + connector->interlace_allowed = true; + connector->doublescan_allowed = true; break; case DRM_MODE_CONNECTOR_DVIA: drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type); @@ -1290,6 +1313,8 @@ drm_connector_attach_property(&radeon_connector->base, rdev->mode_info.load_detect_property, 1); + connector->interlace_allowed = true; + connector->doublescan_allowed = true; break; case DRM_MODE_CONNECTOR_DVII: case DRM_MODE_CONNECTOR_DVID: @@ -1307,6 +1332,11 @@ 1); } subpixel_order = SubPixelHorizontalRGB; + connector->interlace_allowed = true; + if (connector_type == DRM_MODE_CONNECTOR_DVII) + connector->doublescan_allowed = true; + else + connector->doublescan_allowed = false; break; case DRM_MODE_CONNECTOR_SVIDEO: case DRM_MODE_CONNECTOR_Composite: @@ -1329,6 +1359,8 @@ rdev->mode_info.tv_std_property, radeon_combios_get_tv_info(rdev)); } + connector->interlace_allowed = false; + connector->doublescan_allowed = false; break; case DRM_MODE_CONNECTOR_LVDS: drm_connector_init(dev, &radeon_connector->base, &radeon_lvds_connector_funcs, connector_type); @@ -1342,6 +1374,8 @@ dev->mode_config.scaling_mode_property, DRM_MODE_SCALE_FULLSCREEN); subpixel_order = SubPixelHorizontalRGB; + connector->interlace_allowed = false; + connector->doublescan_allowed = false; break; } --- linux-2.6.35.orig/drivers/gpu/drm/radeon/r600_reg.h +++ linux-2.6.35/drivers/gpu/drm/radeon/r600_reg.h @@ -86,6 +86,7 @@ #define R600_HDP_NONSURFACE_BASE 0x2c04 #define R600_BUS_CNTL 0x5420 +# define R600_BIOS_ROM_DIS (1 << 1) #define R600_CONFIG_CNTL 0x5424 #define R600_CONFIG_MEMSIZE 0x5428 #define R600_CONFIG_F0_BASE 0x542C --- linux-2.6.35.orig/drivers/gpu/drm/radeon/r100_track.h +++ linux-2.6.35/drivers/gpu/drm/radeon/r100_track.h @@ -46,6 +46,7 @@ unsigned height_11; bool use_pitch; bool enabled; + bool lookup_disable; bool roundup_w; bool roundup_h; unsigned compress_format; --- linux-2.6.35.orig/drivers/gpu/drm/radeon/radeon_cursor.c +++ linux-2.6.35/drivers/gpu/drm/radeon/radeon_cursor.c @@ -203,6 +203,7 @@ struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); struct radeon_device *rdev = crtc->dev->dev_private; int xorigin = 0, yorigin = 0; + int w = radeon_crtc->cursor_width; if (x < 0) xorigin = -x + 1; @@ -213,22 +214,7 @@ if (yorigin >= CURSOR_HEIGHT) yorigin = CURSOR_HEIGHT - 1; - radeon_lock_cursor(crtc, true); - if (ASIC_IS_DCE4(rdev)) { - /* cursors are offset into the total surface */ - x += crtc->x; - y += crtc->y; - DRM_DEBUG("x %d y %d c->x %d c->y %d\n", x, y, crtc->x, crtc->y); - - /* XXX: check if evergreen has the same issues as avivo chips */ - WREG32(EVERGREEN_CUR_POSITION + radeon_crtc->crtc_offset, - ((xorigin ? 0 : x) << 16) | - (yorigin ? 0 : y)); - WREG32(EVERGREEN_CUR_HOT_SPOT + radeon_crtc->crtc_offset, (xorigin << 16) | yorigin); - WREG32(EVERGREEN_CUR_SIZE + radeon_crtc->crtc_offset, - ((radeon_crtc->cursor_width - 1) << 16) | (radeon_crtc->cursor_height - 1)); - } else if (ASIC_IS_AVIVO(rdev)) { - int w = radeon_crtc->cursor_width; + if (ASIC_IS_AVIVO(rdev)) { int i = 0; struct drm_crtc *crtc_p; @@ -260,7 +246,17 @@ if (w <= 0) w = 1; } + } + radeon_lock_cursor(crtc, true); + if (ASIC_IS_DCE4(rdev)) { + WREG32(EVERGREEN_CUR_POSITION + radeon_crtc->crtc_offset, + ((xorigin ? 0 : x) << 16) | + (yorigin ? 0 : y)); + WREG32(EVERGREEN_CUR_HOT_SPOT + radeon_crtc->crtc_offset, (xorigin << 16) | yorigin); + WREG32(EVERGREEN_CUR_SIZE + radeon_crtc->crtc_offset, + ((w - 1) << 16) | (radeon_crtc->cursor_height - 1)); + } else if (ASIC_IS_AVIVO(rdev)) { WREG32(AVIVO_D1CUR_POSITION + radeon_crtc->crtc_offset, ((xorigin ? 0 : x) << 16) | (yorigin ? 0 : y)); --- linux-2.6.35.orig/drivers/gpu/drm/radeon/radeon_object.c +++ linux-2.6.35/drivers/gpu/drm/radeon/radeon_object.c @@ -102,6 +102,8 @@ type = ttm_bo_type_device; } *bo_ptr = NULL; + +retry: bo = kzalloc(sizeof(struct radeon_bo), GFP_KERNEL); if (bo == NULL) return -ENOMEM; @@ -109,7 +111,6 @@ bo->gobj = gobj; bo->surface_reg = -1; INIT_LIST_HEAD(&bo->list); - radeon_ttm_placement_from_domain(bo, domain); /* Kernel allocation are uninterruptible */ mutex_lock(&rdev->vram_mutex); @@ -118,10 +119,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 +327,7 @@ { struct radeon_bo_list *lobj; struct radeon_bo *bo; + u32 domain; int r; list_for_each_entry(lobj, head, list) { @@ -333,17 +340,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 @@ -259,7 +259,8 @@ case DRM_MODE_DPMS_SUSPEND: case DRM_MODE_DPMS_OFF: drm_vblank_pre_modeset(dev, radeon_crtc->crtc_id); - atombios_blank_crtc(crtc, ATOM_ENABLE); + if (radeon_crtc->enabled) + atombios_blank_crtc(crtc, ATOM_ENABLE); if (ASIC_IS_DCE3(rdev)) atombios_enable_crtc_memreq(crtc, ATOM_DISABLE); atombios_enable_crtc(crtc, ATOM_DISABLE); @@ -527,6 +528,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 +1008,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/r100.c +++ linux-2.6.35/drivers/gpu/drm/radeon/r100.c @@ -2321,6 +2321,9 @@ /* Fix for RN50, M6, M7 with 8/16/32(??) MBs of VRAM - * Novell bug 204882 + along with lots of ubuntu ones */ + if (rdev->mc.aper_size > config_aper_size) + config_aper_size = rdev->mc.aper_size; + if (config_aper_size > rdev->mc.real_vram_size) rdev->mc.mc_vram_size = config_aper_size; else @@ -3229,6 +3232,8 @@ for (u = 0; u < track->num_texture; u++) { if (!track->textures[u].enabled) continue; + if (track->textures[u].lookup_disable) + continue; robj = track->textures[u].robj; if (robj == NULL) { DRM_ERROR("No texture bound to unit %u\n", u); @@ -3462,6 +3467,7 @@ track->textures[i].robj = NULL; /* CS IB emission code makes sure texture unit are disabled */ track->textures[i].enabled = false; + track->textures[i].lookup_disable = false; track->textures[i].roundup_w = true; track->textures[i].roundup_h = true; if (track->separate_cube) --- 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 @@ -997,6 +997,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 +1038,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 +1068,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 +1123,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 +1181,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 +1446,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_display.c +++ linux-2.6.35/drivers/gpu/drm/radeon/radeon_display.c @@ -349,6 +349,8 @@ DRM_INFO(" DFP4: %s\n", encoder_names[radeon_encoder->encoder_id]); if (devices & ATOM_DEVICE_DFP5_SUPPORT) DRM_INFO(" DFP5: %s\n", encoder_names[radeon_encoder->encoder_id]); + if (devices & ATOM_DEVICE_DFP6_SUPPORT) + DRM_INFO(" DFP6: %s\n", encoder_names[radeon_encoder->encoder_id]); if (devices & ATOM_DEVICE_TV1_SUPPORT) DRM_INFO(" TV1: %s\n", encoder_names[radeon_encoder->encoder_id]); if (devices & ATOM_DEVICE_CV_SUPPORT) --- 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; } @@ -799,11 +838,6 @@ radeon_pm_resume(rdev); radeon_restore_bios_scratch_regs(rdev); - /* turn on display hw */ - list_for_each_entry(connector, &dev->mode_config.connector_list, head) { - drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON); - } - radeon_fbdev_set_suspend(rdev, 0); release_console_sem(); @@ -811,6 +845,10 @@ radeon_hpd_init(rdev); /* blat the mode back in */ drm_helper_resume_force_mode(dev); + /* turn on display hw */ + list_for_each_entry(connector, &dev->mode_config.connector_list, head) { + drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON); + } return 0; } --- 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); @@ -935,6 +942,7 @@ i2c->rec = *rec; i2c->adapter.owner = THIS_MODULE; i2c->dev = dev; + sprintf(i2c->adapter.name, "Radeon aux bus %s", name); i2c_set_adapdata(&i2c->adapter, i2c); i2c->adapter.algo_data = &i2c->algo.dp; i2c->algo.dp.aux_ch = radeon_dp_i2c_aux_ch; --- 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) { @@ -1083,7 +1120,7 @@ WREG32(RCU_IND_INDEX, 0x203); efuse_straps_3 = RREG32(RCU_IND_DATA); - efuse_box_bit_127_124 = (u8)(efuse_straps_3 & 0xF0000000) >> 28; + efuse_box_bit_127_124 = (u8)((efuse_straps_3 & 0xF0000000) >> 28); switch(efuse_box_bit_127_124) { case 0x0: @@ -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); @@ -1341,6 +1389,8 @@ rdev->mc.mc_vram_size = RREG32(CONFIG_MEMSIZE) * 1024 * 1024; rdev->mc.real_vram_size = RREG32(CONFIG_MEMSIZE) * 1024 * 1024; rdev->mc.visible_vram_size = rdev->mc.aper_size; + /* limit it to the aperture size for now as there is no blit support in 2.6.35/36*/ + rdev->mc.real_vram_size = rdev->mc.visible_vram_size; r600_vram_gtt_location(rdev, &rdev->mc); radeon_update_bandwidth_info(rdev); @@ -1356,7 +1406,6 @@ static int evergreen_gpu_soft_reset(struct radeon_device *rdev) { struct evergreen_mc_save save; - u32 srbm_reset = 0; u32 grbm_reset = 0; dev_info(rdev->dev, "GPU softreset \n"); @@ -1395,16 +1444,6 @@ udelay(50); WREG32(GRBM_SOFT_RESET, 0); (void)RREG32(GRBM_SOFT_RESET); - - /* reset all the system blocks */ - srbm_reset = SRBM_SOFT_RESET_ALL_MASK; - - dev_info(rdev->dev, " SRBM_SOFT_RESET=0x%08X\n", srbm_reset); - WREG32(SRBM_SOFT_RESET, srbm_reset); - (void)RREG32(SRBM_SOFT_RESET); - udelay(50); - WREG32(SRBM_SOFT_RESET, 0); - (void)RREG32(SRBM_SOFT_RESET); /* Wait a little for things to settle down */ udelay(50); dev_info(rdev->dev, " GRBM_STATUS=0x%08X\n", @@ -1415,10 +1454,6 @@ RREG32(GRBM_STATUS_SE1)); dev_info(rdev->dev, " SRBM_STATUS=0x%08X\n", RREG32(SRBM_STATUS)); - /* After reset we need to reinit the asic as GPU often endup in an - * incoherent state. - */ - atom_asic_init(rdev->mode_info.atom_context); evergreen_mc_resume(rdev, &save); return 0; } @@ -2030,6 +2065,11 @@ { int r; + /* reset the asic, the gfx blocks are often in a bad state + * after the driver is unloaded or after a resume + */ + if (radeon_asic_reset(rdev)) + dev_warn(rdev->dev, "GPU reset failed !\n"); /* Do not reset GPU before posting, on rv770 hw unlike on r500 hw, * posting will perform necessary task to bring back GPU into good * shape. @@ -2131,6 +2171,11 @@ r = radeon_atombios_init(rdev); if (r) return r; + /* reset the asic, the gfx blocks are often in a bad state + * after the driver is unloaded or after a resume + */ + if (radeon_asic_reset(rdev)) + dev_warn(rdev->dev, "GPU reset failed !\n"); /* Post card if necessary */ if (!evergreen_card_posted(rdev)) { if (!rdev->bios) { --- 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/radeon_reg.h +++ linux-2.6.35/drivers/gpu/drm/radeon/radeon_reg.h @@ -2836,6 +2836,7 @@ # define R200_TXFORMAT_ST_ROUTE_STQ5 (5 << 24) # define R200_TXFORMAT_ST_ROUTE_MASK (7 << 24) # define R200_TXFORMAT_ST_ROUTE_SHIFT 24 +# define R200_TXFORMAT_LOOKUP_DISABLE (1 << 27) # define R200_TXFORMAT_ALPHA_MASK_ENABLE (1 << 28) # define R200_TXFORMAT_CHROMA_KEY_ENABLE (1 << 29) # define R200_TXFORMAT_CUBIC_MAP_ENABLE (1 << 30) --- 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/radeon_encoders.c +++ linux-2.6.35/drivers/gpu/drm/radeon/radeon_encoders.c @@ -626,11 +626,23 @@ struct drm_connector *connector; struct radeon_connector *radeon_connector; struct radeon_connector_atom_dig *dig_connector; + struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); connector = radeon_get_connector_for_encoder(encoder); - if (!connector) - return 0; - + if (!connector) { + switch (radeon_encoder->encoder_id) { + case ENCODER_OBJECT_ID_INTERNAL_UNIPHY: + case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1: + case ENCODER_OBJECT_ID_INTERNAL_UNIPHY2: + case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA: + case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1: + return ATOM_ENCODER_MODE_DVI; + case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1: + case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2: + default: + return ATOM_ENCODER_MODE_CRT; + } + } radeon_connector = to_radeon_connector(connector); switch (connector->connector_type) { @@ -1545,6 +1557,23 @@ struct radeon_device *rdev = dev->dev_private; struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); struct radeon_encoder_atom_dig *dig; + + /* check for pre-DCE3 cards with shared encoders; + * can't really use the links individually, so don't disable + * the encoder if it's in use by another connector + */ + if (!ASIC_IS_DCE3(rdev)) { + struct drm_encoder *other_encoder; + struct radeon_encoder *other_radeon_encoder; + + list_for_each_entry(other_encoder, &dev->mode_config.encoder_list, head) { + other_radeon_encoder = to_radeon_encoder(other_encoder); + if ((radeon_encoder->encoder_id == other_radeon_encoder->encoder_id) && + drm_helper_encoder_in_use(other_encoder)) + goto disable_done; + } + } + radeon_atom_encoder_dpms(encoder, DRM_MODE_DPMS_OFF); switch (radeon_encoder->encoder_id) { @@ -1584,6 +1613,7 @@ break; } +disable_done: if (radeon_encoder_is_digital(encoder)) { if (atombios_get_encoder_mode(encoder) == ATOM_ENCODER_MODE_HDMI) r600_hdmi_disable(encoder); --- linux-2.6.35.orig/drivers/gpu/drm/radeon/r200.c +++ linux-2.6.35/drivers/gpu/drm/radeon/r200.c @@ -447,6 +447,8 @@ track->textures[i].width = 1 << ((idx_value >> RADEON_TXFORMAT_WIDTH_SHIFT) & RADEON_TXFORMAT_WIDTH_MASK); track->textures[i].height = 1 << ((idx_value >> RADEON_TXFORMAT_HEIGHT_SHIFT) & RADEON_TXFORMAT_HEIGHT_MASK); } + if (idx_value & R200_TXFORMAT_LOOKUP_DISABLE) + track->textures[i].lookup_disable = true; switch ((idx_value & RADEON_TXFORMAT_FORMAT_MASK)) { case R200_TXFORMAT_I8: case R200_TXFORMAT_RGB332: --- 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_bios.c +++ linux-2.6.35/drivers/gpu/drm/radeon/radeon_bios.c @@ -130,6 +130,7 @@ } return true; } + static bool r700_read_disabled_bios(struct radeon_device *rdev) { uint32_t viph_control; @@ -143,7 +144,7 @@ bool r; viph_control = RREG32(RADEON_VIPH_CONTROL); - bus_cntl = RREG32(RADEON_BUS_CNTL); + bus_cntl = RREG32(R600_BUS_CNTL); d1vga_control = RREG32(AVIVO_D1VGA_CONTROL); d2vga_control = RREG32(AVIVO_D2VGA_CONTROL); vga_render_control = RREG32(AVIVO_VGA_RENDER_CONTROL); @@ -152,7 +153,7 @@ /* disable VIP */ WREG32(RADEON_VIPH_CONTROL, (viph_control & ~RADEON_VIPH_EN)); /* enable the rom */ - WREG32(RADEON_BUS_CNTL, (bus_cntl & ~RADEON_BUS_BIOS_DIS_ROM)); + WREG32(R600_BUS_CNTL, (bus_cntl & ~R600_BIOS_ROM_DIS)); /* Disable VGA mode */ WREG32(AVIVO_D1VGA_CONTROL, (d1vga_control & ~(AVIVO_DVGA_CONTROL_MODE_ENABLE | @@ -191,7 +192,7 @@ cg_spll_status = RREG32(R600_CG_SPLL_STATUS); } WREG32(RADEON_VIPH_CONTROL, viph_control); - WREG32(RADEON_BUS_CNTL, bus_cntl); + WREG32(R600_BUS_CNTL, bus_cntl); WREG32(AVIVO_D1VGA_CONTROL, d1vga_control); WREG32(AVIVO_D2VGA_CONTROL, d2vga_control); WREG32(AVIVO_VGA_RENDER_CONTROL, vga_render_control); @@ -216,7 +217,7 @@ bool r; viph_control = RREG32(RADEON_VIPH_CONTROL); - bus_cntl = RREG32(RADEON_BUS_CNTL); + bus_cntl = RREG32(R600_BUS_CNTL); d1vga_control = RREG32(AVIVO_D1VGA_CONTROL); d2vga_control = RREG32(AVIVO_D2VGA_CONTROL); vga_render_control = RREG32(AVIVO_VGA_RENDER_CONTROL); @@ -231,7 +232,7 @@ /* disable VIP */ WREG32(RADEON_VIPH_CONTROL, (viph_control & ~RADEON_VIPH_EN)); /* enable the rom */ - WREG32(RADEON_BUS_CNTL, (bus_cntl & ~RADEON_BUS_BIOS_DIS_ROM)); + WREG32(R600_BUS_CNTL, (bus_cntl & ~R600_BIOS_ROM_DIS)); /* Disable VGA mode */ WREG32(AVIVO_D1VGA_CONTROL, (d1vga_control & ~(AVIVO_DVGA_CONTROL_MODE_ENABLE | @@ -262,7 +263,7 @@ /* restore regs */ WREG32(RADEON_VIPH_CONTROL, viph_control); - WREG32(RADEON_BUS_CNTL, bus_cntl); + WREG32(R600_BUS_CNTL, bus_cntl); WREG32(AVIVO_D1VGA_CONTROL, d1vga_control); WREG32(AVIVO_D2VGA_CONTROL, d2vga_control); WREG32(AVIVO_VGA_RENDER_CONTROL, vga_render_control); --- 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/r600_blit_kms.c +++ linux-2.6.35/drivers/gpu/drm/radeon/r600_blit_kms.c @@ -623,8 +623,8 @@ int src_x = src_gpu_addr & 255; int dst_x = dst_gpu_addr & 255; int h = 1; - src_gpu_addr = src_gpu_addr & ~255; - dst_gpu_addr = dst_gpu_addr & ~255; + src_gpu_addr = src_gpu_addr & ~255ULL; + dst_gpu_addr = dst_gpu_addr & ~255ULL; if (!src_x && !dst_x) { h = (cur_size / max_bytes); @@ -717,8 +717,8 @@ int src_x = (src_gpu_addr & 255); int dst_x = (dst_gpu_addr & 255); int h = 1; - src_gpu_addr = src_gpu_addr & ~255; - dst_gpu_addr = dst_gpu_addr & ~255; + src_gpu_addr = src_gpu_addr & ~255ULL; + dst_gpu_addr = dst_gpu_addr & ~255ULL; if (!src_x && !dst_x) { h = (cur_size / max_bytes); --- linux-2.6.35.orig/drivers/gpu/drm/radeon/radeon_atombios.c +++ linux-2.6.35/drivers/gpu/drm/radeon/radeon_atombios.c @@ -84,6 +84,14 @@ for (i = 0; i < num_indices; i++) { gpio = &i2c_info->asGPIO_Info[i]; + /* some DCE3 boards have bad data for this entry */ + if (ASIC_IS_DCE3(rdev)) { + if ((i == 4) && + (gpio->usClkMaskRegisterIndex == 0x1fda) && + (gpio->sucI2cId.ucAccess == 0x94)) + gpio->sucI2cId.ucAccess = 0x14; + } + if (gpio->sucI2cId.ucAccess == id) { i2c.mask_clk_reg = le16_to_cpu(gpio->usClkMaskRegisterIndex) * 4; i2c.mask_data_reg = le16_to_cpu(gpio->usDataMaskRegisterIndex) * 4; @@ -206,6 +214,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) && @@ -225,6 +234,15 @@ *connector_type = DRM_MODE_CONNECTOR_DVID; } + /* MSI K9A2GM V2/V3 board has no HDMI or DVI */ + if ((dev->pdev->device == 0x796e) && + (dev->pdev->subsystem_vendor == 0x1462) && + (dev->pdev->subsystem_device == 0x7302)) { + if ((supported_device == ATOM_DEVICE_DFP2_SUPPORT) || + (supported_device == ATOM_DEVICE_DFP3_SUPPORT)) + return false; + } + /* a-bit f-i90hd - ciaranm on #radeonhd - this board has no DVI */ if ((dev->pdev->device == 0x7941) && (dev->pdev->subsystem_vendor == 0x147b) && @@ -308,13 +326,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 +1076,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_irq.c +++ linux-2.6.35/drivers/gpu/drm/nouveau/nouveau_irq.c @@ -52,6 +52,7 @@ if (dev_priv->card_type == NV_50) { INIT_WORK(&dev_priv->irq_work, nv50_display_irq_handler_bh); INIT_WORK(&dev_priv->hpd_work, nv50_display_irq_hotplug_bh); + spin_lock_init(&dev_priv->hpd_state.lock); INIT_LIST_HEAD(&dev_priv->vbl_waiting); } } --- linux-2.6.35.orig/drivers/gpu/drm/nouveau/nv50_display.c +++ linux-2.6.35/drivers/gpu/drm/nouveau/nv50_display.c @@ -930,11 +930,18 @@ struct drm_connector *connector; const uint32_t gpio_reg[4] = { 0xe104, 0xe108, 0xe280, 0xe284 }; uint32_t unplug_mask, plug_mask, change_mask; - uint32_t hpd0, hpd1 = 0; + uint32_t hpd0, hpd1; - hpd0 = nv_rd32(dev, 0xe054) & nv_rd32(dev, 0xe050); + spin_lock_irq(&dev_priv->hpd_state.lock); + hpd0 = dev_priv->hpd_state.hpd0_bits; + dev_priv->hpd_state.hpd0_bits = 0; + hpd1 = dev_priv->hpd_state.hpd1_bits; + dev_priv->hpd_state.hpd1_bits = 0; + spin_unlock_irq(&dev_priv->hpd_state.lock); + + hpd0 &= nv_rd32(dev, 0xe050); if (dev_priv->chipset >= 0x90) - hpd1 = nv_rd32(dev, 0xe074) & nv_rd32(dev, 0xe070); + hpd1 &= nv_rd32(dev, 0xe070); plug_mask = (hpd0 & 0x0000ffff) | (hpd1 << 16); unplug_mask = (hpd0 >> 16) | (hpd1 & 0xffff0000); @@ -976,10 +983,6 @@ helper->dpms(connector->encoder, DRM_MODE_DPMS_OFF); } - nv_wr32(dev, 0xe054, nv_rd32(dev, 0xe054)); - if (dev_priv->chipset >= 0x90) - nv_wr32(dev, 0xe074, nv_rd32(dev, 0xe074)); - drm_helper_hpd_irq_event(dev); } @@ -990,8 +993,22 @@ uint32_t delayed = 0; if (nv_rd32(dev, NV50_PMC_INTR_0) & NV50_PMC_INTR_0_HOTPLUG) { - if (!work_pending(&dev_priv->hpd_work)) - queue_work(dev_priv->wq, &dev_priv->hpd_work); + uint32_t hpd0_bits, hpd1_bits = 0; + + hpd0_bits = nv_rd32(dev, 0xe054); + nv_wr32(dev, 0xe054, hpd0_bits); + + if (dev_priv->chipset >= 0x90) { + hpd1_bits = nv_rd32(dev, 0xe074); + nv_wr32(dev, 0xe074, hpd1_bits); + } + + spin_lock(&dev_priv->hpd_state.lock); + dev_priv->hpd_state.hpd0_bits |= hpd0_bits; + dev_priv->hpd_state.hpd1_bits |= hpd1_bits; + spin_unlock(&dev_priv->hpd_state.lock); + + queue_work(dev_priv->wq, &dev_priv->hpd_work); } while (nv_rd32(dev, NV50_PMC_INTR_0) & NV50_PMC_INTR_0_DISPLAY) { --- linux-2.6.35.orig/drivers/gpu/drm/nouveau/nouveau_drv.h +++ linux-2.6.35/drivers/gpu/drm/nouveau/nouveau_drv.h @@ -522,6 +522,12 @@ struct work_struct irq_work; struct work_struct hpd_work; + struct { + spinlock_t lock; + uint32_t hpd0_bits; + uint32_t hpd1_bits; + } hpd_state; + struct list_head vbl_waiting; struct { --- 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/pcmcia/soc_common.c +++ linux-2.6.35/drivers/pcmcia/soc_common.c @@ -65,6 +65,7 @@ va_end(args); } } +EXPORT_SYMBOL(soc_pcmcia_debug); #endif --- 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/iwch_cm.c +++ linux-2.6.35/drivers/infiniband/hw/cxgb3/iwch_cm.c @@ -463,7 +463,8 @@ V_MSS_IDX(mtu_idx) | V_L2T_IDX(ep->l2t->idx) | V_TX_CHANNEL(ep->l2t->smt_idx); opt0l = V_TOS((ep->tos >> 2) & M_TOS) | V_RCV_BUFSIZ(rcv_win>>10); - opt2 = V_FLAVORS_VALID(1) | V_CONG_CONTROL_FLAVOR(cong_flavor); + opt2 = F_RX_COALESCE_VALID | V_RX_COALESCE(0) | V_FLAVORS_VALID(1) | + V_CONG_CONTROL_FLAVOR(cong_flavor); skb->priority = CPL_PRIORITY_SETUP; set_arp_failure_handler(skb, act_open_req_arp_failure); @@ -1280,7 +1281,8 @@ V_MSS_IDX(mtu_idx) | V_L2T_IDX(ep->l2t->idx) | V_TX_CHANNEL(ep->l2t->smt_idx); opt0l = V_TOS((ep->tos >> 2) & M_TOS) | V_RCV_BUFSIZ(rcv_win>>10); - opt2 = V_FLAVORS_VALID(1) | V_CONG_CONTROL_FLAVOR(cong_flavor); + opt2 = F_RX_COALESCE_VALID | V_RX_COALESCE(0) | V_FLAVORS_VALID(1) | + V_CONG_CONTROL_FLAVOR(cong_flavor); rpl = cplhdr(skb); rpl->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); --- 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/infiniband/core/uverbs_cmd.c +++ linux-2.6.35/drivers/infiniband/core/uverbs_cmd.c @@ -891,68 +891,81 @@ return ret ? ret : in_len; } +static int copy_wc_to_user(void __user *dest, struct ib_wc *wc) +{ + struct ib_uverbs_wc tmp; + + tmp.wr_id = wc->wr_id; + tmp.status = wc->status; + tmp.opcode = wc->opcode; + tmp.vendor_err = wc->vendor_err; + tmp.byte_len = wc->byte_len; + tmp.ex.imm_data = (__u32 __force) wc->ex.imm_data; + tmp.qp_num = wc->qp->qp_num; + tmp.src_qp = wc->src_qp; + tmp.wc_flags = wc->wc_flags; + tmp.pkey_index = wc->pkey_index; + tmp.slid = wc->slid; + tmp.sl = wc->sl; + tmp.dlid_path_bits = wc->dlid_path_bits; + tmp.port_num = wc->port_num; + tmp.reserved = 0; + + if (copy_to_user(dest, &tmp, sizeof tmp)) + return -EFAULT; + + return 0; +} + ssize_t ib_uverbs_poll_cq(struct ib_uverbs_file *file, const char __user *buf, int in_len, int out_len) { struct ib_uverbs_poll_cq cmd; - struct ib_uverbs_poll_cq_resp *resp; + struct ib_uverbs_poll_cq_resp resp; + u8 __user *header_ptr; + u8 __user *data_ptr; struct ib_cq *cq; - struct ib_wc *wc; - int ret = 0; - int i; - int rsize; + struct ib_wc wc; + int ret; if (copy_from_user(&cmd, buf, sizeof cmd)) return -EFAULT; - wc = kmalloc(cmd.ne * sizeof *wc, GFP_KERNEL); - if (!wc) - return -ENOMEM; - - rsize = sizeof *resp + cmd.ne * sizeof(struct ib_uverbs_wc); - resp = kmalloc(rsize, GFP_KERNEL); - if (!resp) { - ret = -ENOMEM; - goto out_wc; - } - cq = idr_read_cq(cmd.cq_handle, file->ucontext, 0); - if (!cq) { - ret = -EINVAL; - goto out; - } + if (!cq) + return -EINVAL; - resp->count = ib_poll_cq(cq, cmd.ne, wc); + /* we copy a struct ib_uverbs_poll_cq_resp to user space */ + header_ptr = (void __user *)(unsigned long) cmd.response; + data_ptr = header_ptr + sizeof resp; - put_cq_read(cq); + memset(&resp, 0, sizeof resp); + while (resp.count < cmd.ne) { + ret = ib_poll_cq(cq, 1, &wc); + if (ret < 0) + goto out_put; + if (!ret) + break; + + ret = copy_wc_to_user(data_ptr, &wc); + if (ret) + goto out_put; - for (i = 0; i < resp->count; i++) { - resp->wc[i].wr_id = wc[i].wr_id; - resp->wc[i].status = wc[i].status; - resp->wc[i].opcode = wc[i].opcode; - resp->wc[i].vendor_err = wc[i].vendor_err; - resp->wc[i].byte_len = wc[i].byte_len; - resp->wc[i].ex.imm_data = (__u32 __force) wc[i].ex.imm_data; - resp->wc[i].qp_num = wc[i].qp->qp_num; - resp->wc[i].src_qp = wc[i].src_qp; - resp->wc[i].wc_flags = wc[i].wc_flags; - resp->wc[i].pkey_index = wc[i].pkey_index; - resp->wc[i].slid = wc[i].slid; - resp->wc[i].sl = wc[i].sl; - resp->wc[i].dlid_path_bits = wc[i].dlid_path_bits; - resp->wc[i].port_num = wc[i].port_num; + data_ptr += sizeof(struct ib_uverbs_wc); + ++resp.count; } - if (copy_to_user((void __user *) (unsigned long) cmd.response, resp, rsize)) + if (copy_to_user(header_ptr, &resp, sizeof resp)) { ret = -EFAULT; + goto out_put; + } -out: - kfree(resp); + ret = in_len; -out_wc: - kfree(wc); - return ret ? ret : in_len; +out_put: + put_cq_read(cq); + return ret; } ssize_t ib_uverbs_req_notify_cq(struct ib_uverbs_file *file, --- linux-2.6.35.orig/drivers/net/b44.c +++ linux-2.6.35/drivers/net/b44.c @@ -2168,8 +2168,6 @@ dev->irq = sdev->irq; SET_ETHTOOL_OPS(dev, &b44_ethtool_ops); - netif_carrier_off(dev); - err = ssb_bus_powerup(sdev->bus, 0); if (err) { dev_err(sdev->dev, @@ -2209,6 +2207,8 @@ goto err_out_powerdown; } + netif_carrier_off(dev); + ssb_set_drvdata(sdev, dev); /* Chip reset provides power to the b44 MAC & PCI cores, which --- linux-2.6.35.orig/drivers/net/tehuti.c +++ linux-2.6.35/drivers/net/tehuti.c @@ -324,7 +324,7 @@ ENTER; master = READ_REG(priv, regINIT_SEMAPHORE); if (!READ_REG(priv, regINIT_STATUS) && master) { - rc = request_firmware(&fw, "tehuti/firmware.bin", &priv->pdev->dev); + rc = request_firmware(&fw, "tehuti/bdx.bin", &priv->pdev->dev); if (rc) goto out; bdx_tx_push_desc_safe(priv, (char *)fw->data, fw->size); @@ -2516,4 +2516,4 @@ MODULE_LICENSE("GPL"); MODULE_AUTHOR(DRIVER_AUTHOR); MODULE_DESCRIPTION(BDX_DRV_DESC); -MODULE_FIRMWARE("tehuti/firmware.bin"); +MODULE_FIRMWARE("tehuti/bdx.bin"); --- 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/r6040.c +++ linux-2.6.35/drivers/net/r6040.c @@ -988,16 +988,18 @@ /* Multicast Address 1~4 case */ i = 0; netdev_for_each_mc_addr(ha, dev) { - if (i < MCAST_MAX) { - adrp = (u16 *) ha->addr; - iowrite16(adrp[0], ioaddr + MID_1L + 8 * i); - iowrite16(adrp[1], ioaddr + MID_1M + 8 * i); - iowrite16(adrp[2], ioaddr + MID_1H + 8 * i); - } else { - iowrite16(0xffff, ioaddr + MID_1L + 8 * i); - iowrite16(0xffff, ioaddr + MID_1M + 8 * i); - iowrite16(0xffff, ioaddr + MID_1H + 8 * i); - } + if (i >= MCAST_MAX) + break; + adrp = (u16 *) ha->addr; + iowrite16(adrp[0], ioaddr + MID_1L + 8 * i); + iowrite16(adrp[1], ioaddr + MID_1M + 8 * i); + iowrite16(adrp[2], ioaddr + MID_1H + 8 * i); + i++; + } + while (i < MCAST_MAX) { + iowrite16(0xffff, ioaddr + MID_1L + 8 * i); + iowrite16(0xffff, ioaddr + MID_1M + 8 * i); + iowrite16(0xffff, ioaddr + MID_1H + 8 * i); i++; } } --- linux-2.6.35.orig/drivers/net/ifb.c +++ linux-2.6.35/drivers/net/ifb.c @@ -104,6 +104,8 @@ rcu_read_unlock(); dev_kfree_skb(skb); stats->tx_dropped++; + if (skb_queue_len(&dp->tq) != 0) + goto resched; break; } rcu_read_unlock(); --- linux-2.6.35.orig/drivers/net/virtio_net.c +++ linux-2.6.35/drivers/net/virtio_net.c @@ -446,6 +446,20 @@ } } +static void virtnet_napi_enable(struct virtnet_info *vi) +{ + napi_enable(&vi->napi); + + /* If all buffers were filled by other side before we napi_enabled, we + * won't get another interrupt, so process any outstanding packets + * now. virtnet_poll wants re-enable the queue, so we disable here. + * We synchronize against interrupts via NAPI_STATE_SCHED */ + if (napi_schedule_prep(&vi->napi)) { + virtqueue_disable_cb(vi->rvq); + __napi_schedule(&vi->napi); + } +} + static void refill_work(struct work_struct *work) { struct virtnet_info *vi; @@ -454,7 +468,7 @@ vi = container_of(work, struct virtnet_info, refill.work); napi_disable(&vi->napi); still_empty = !try_fill_recv(vi, GFP_KERNEL); - napi_enable(&vi->napi); + virtnet_napi_enable(vi); /* In theory, this can happen: if we don't get any buffers in * we will *never* try to fill again. */ @@ -638,16 +652,7 @@ { struct virtnet_info *vi = netdev_priv(dev); - napi_enable(&vi->napi); - - /* If all buffers were filled by other side before we napi_enabled, we - * won't get another interrupt, so process any outstanding packets - * now. virtnet_poll wants re-enable the queue, so we disable here. - * We synchronize against interrupts via NAPI_STATE_SCHED */ - if (napi_schedule_prep(&vi->napi)) { - virtqueue_disable_cb(vi->rvq); - __napi_schedule(&vi->napi); - } + virtnet_napi_enable(vi); return 0; } --- 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/gianfar.c +++ linux-2.6.35/drivers/net/gianfar.c @@ -2427,7 +2427,7 @@ if (skb_queue_len(&priv->rx_recycle) < rx_queue->rx_ring_size && skb_recycle_check(skb, priv->rx_buffer_size + RXBUF_ALIGNMENT)) - __skb_queue_head(&priv->rx_recycle, skb); + skb_queue_head(&priv->rx_recycle, skb); else dev_kfree_skb_any(skb); @@ -2498,7 +2498,7 @@ struct gfar_private *priv = netdev_priv(dev); struct sk_buff *skb = NULL; - skb = __skb_dequeue(&priv->rx_recycle); + skb = skb_dequeue(&priv->rx_recycle); if (!skb) skb = netdev_alloc_skb(dev, priv->rx_buffer_size + RXBUF_ALIGNMENT); @@ -2675,7 +2675,7 @@ * recycle list. */ skb_reserve(skb, -GFAR_CB(skb)->alignamount); - __skb_queue_head(&priv->rx_recycle, skb); + skb_queue_head(&priv->rx_recycle, skb); } } else { /* Increment the number of packets */ --- linux-2.6.35.orig/drivers/net/jme.c +++ linux-2.6.35/drivers/net/jme.c @@ -1575,6 +1575,16 @@ } } +static inline void +jme_phy_on(struct jme_adapter *jme) +{ + u32 bmcr; + + bmcr = jme_mdio_read(jme->dev, jme->mii_if.phy_id, MII_BMCR); + bmcr &= ~BMCR_PDOWN; + jme_mdio_write(jme->dev, jme->mii_if.phy_id, MII_BMCR, bmcr); +} + static int jme_open(struct net_device *netdev) { @@ -1595,10 +1605,12 @@ jme_start_irq(jme); - if (test_bit(JME_FLAG_SSET, &jme->flags)) + if (test_bit(JME_FLAG_SSET, &jme->flags)) { + jme_phy_on(jme); jme_set_settings(netdev, &jme->old_ecmd); - else + } else { jme_reset_phy_processor(jme); + } jme_reset_link(jme); @@ -3006,10 +3018,12 @@ jme_clear_pm(jme); pci_restore_state(pdev); - if (test_bit(JME_FLAG_SSET, &jme->flags)) + if (test_bit(JME_FLAG_SSET, &jme->flags)) { + jme_phy_on(jme); jme_set_settings(netdev, &jme->old_ecmd); - else + } else { jme_reset_phy_processor(jme); + } jme_start_irq(jme); netif_device_attach(netdev); --- linux-2.6.35.orig/drivers/net/gianfar_ethtool.c +++ linux-2.6.35/drivers/net/gianfar_ethtool.c @@ -538,7 +538,7 @@ unlock_tx_qs(priv); unlock_rx_qs(priv); - local_irq_save(flags); + local_irq_restore(flags); for (i = 0; i < priv->num_rx_queues; i++) gfar_clean_rx_ring(priv->rx_queue[i], --- linux-2.6.35.orig/drivers/net/8139cp.c +++ linux-2.6.35/drivers/net/8139cp.c @@ -490,13 +490,11 @@ { unsigned int protocol = (status >> 16) & 0x3; - if (likely((protocol == RxProtoTCP) && (!(status & TCPFail)))) + if (((protocol == RxProtoTCP) && !(status & TCPFail)) || + ((protocol == RxProtoUDP) && !(status & UDPFail))) return 1; - else if ((protocol == RxProtoUDP) && (!(status & UDPFail))) - return 1; - else if ((protocol == RxProtoIP) && (!(status & IPFail))) - return 1; - return 0; + else + return 0; } static int cp_rx_poll(struct napi_struct *napi, int budget) --- linux-2.6.35.orig/drivers/net/skge.c +++ linux-2.6.35/drivers/net/skge.c @@ -43,6 +43,7 @@ #include #include #include +#include #include #include "skge.h" @@ -3868,6 +3869,8 @@ netif_info(skge, probe, skge->netdev, "addr %pM\n", dev->dev_addr); } +static int only_32bit_dma; + static int __devinit skge_probe(struct pci_dev *pdev, const struct pci_device_id *ent) { @@ -3889,7 +3892,7 @@ pci_set_master(pdev); - if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) { + if (!only_32bit_dma && !pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) { using_dac = 1; err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)); } else if (!(err = pci_set_dma_mask(pdev, DMA_BIT_MASK(32)))) { @@ -4147,8 +4150,21 @@ .shutdown = skge_shutdown, }; +static struct dmi_system_id skge_32bit_dma_boards[] = { + { + .ident = "Gigabyte nForce boards", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Gigabyte Technology Co"), + DMI_MATCH(DMI_BOARD_NAME, "nForce"), + }, + }, + {} +}; + static int __init skge_init_module(void) { + if (dmi_check_system(skge_32bit_dma_boards)) + only_32bit_dma = 1; skge_debug_init(); return pci_register_driver(&skge_driver); } --- 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/r8169.c +++ linux-2.6.35/drivers/net/r8169.c @@ -855,10 +855,10 @@ else tp->features &= ~RTL_FEATURE_WOL; __rtl8169_set_wol(tp, wol->wolopts); - device_set_wakeup_enable(&tp->pci_dev->dev, wol->wolopts); - spin_unlock_irq(&tp->lock); + device_set_wakeup_enable(&tp->pci_dev->dev, wol->wolopts); + return 0; } @@ -4008,7 +4008,7 @@ static struct sk_buff *rtl8169_alloc_rx_skb(struct pci_dev *pdev, struct net_device *dev, struct RxDesc *desc, int rx_buf_sz, - unsigned int align) + unsigned int align, gfp_t gfp) { struct sk_buff *skb; dma_addr_t mapping; @@ -4016,7 +4016,7 @@ pad = align ? align : NET_IP_ALIGN; - skb = netdev_alloc_skb(dev, rx_buf_sz + pad); + skb = __netdev_alloc_skb(dev, rx_buf_sz + pad, gfp); if (!skb) goto err_out; @@ -4047,7 +4047,7 @@ } static u32 rtl8169_rx_fill(struct rtl8169_private *tp, struct net_device *dev, - u32 start, u32 end) + u32 start, u32 end, gfp_t gfp) { u32 cur; @@ -4062,7 +4062,7 @@ skb = rtl8169_alloc_rx_skb(tp->pci_dev, dev, tp->RxDescArray + i, - tp->rx_buf_sz, tp->align); + tp->rx_buf_sz, tp->align, gfp); if (!skb) break; @@ -4090,7 +4090,7 @@ memset(tp->tx_skb, 0x0, NUM_TX_DESC * sizeof(struct ring_info)); memset(tp->Rx_skbuff, 0x0, NUM_RX_DESC * sizeof(struct sk_buff *)); - if (rtl8169_rx_fill(tp, dev, 0, NUM_RX_DESC) != NUM_RX_DESC) + if (rtl8169_rx_fill(tp, dev, 0, NUM_RX_DESC, GFP_KERNEL) != NUM_RX_DESC) goto err_out; rtl8169_mark_as_last_descriptor(tp->RxDescArray + NUM_RX_DESC - 1); @@ -4458,14 +4458,12 @@ return (status & (FirstFrag | LastFrag)) != (FirstFrag | LastFrag); } -static inline void rtl8169_rx_csum(struct sk_buff *skb, struct RxDesc *desc) +static inline void rtl8169_rx_csum(struct sk_buff *skb, u32 opts1) { - u32 opts1 = le32_to_cpu(desc->opts1); u32 status = opts1 & RxProtoMask; if (((status == RxProtoTCP) && !(opts1 & TCPFail)) || - ((status == RxProtoUDP) && !(opts1 & UDPFail)) || - ((status == RxProtoIP) && !(opts1 & IPFail))) + ((status == RxProtoUDP) && !(opts1 & UDPFail))) skb->ip_summed = CHECKSUM_UNNECESSARY; else skb->ip_summed = CHECKSUM_NONE; @@ -4554,8 +4552,6 @@ continue; } - rtl8169_rx_csum(skb, desc); - if (rtl8169_try_rx_copy(&skb, tp, pkt_size, addr)) { pci_dma_sync_single_for_device(pdev, addr, pkt_size, PCI_DMA_FROMDEVICE); @@ -4566,6 +4562,7 @@ tp->Rx_skbuff[entry] = NULL; } + rtl8169_rx_csum(skb, status); skb_put(skb, pkt_size); skb->protocol = eth_type_trans(skb, dev); @@ -4591,7 +4588,7 @@ count = cur_rx - tp->cur_rx; tp->cur_rx = cur_rx; - delta = rtl8169_rx_fill(tp, dev, tp->dirty_rx, tp->cur_rx); + delta = rtl8169_rx_fill(tp, dev, tp->dirty_rx, tp->cur_rx, GFP_ATOMIC); if (!delta && count) netif_info(tp, intr, dev, "no Rx buffer allocated\n"); tp->dirty_rx += delta; @@ -4895,6 +4892,9 @@ { struct pci_dev *pdev = to_pci_dev(device); struct net_device *dev = pci_get_drvdata(pdev); + struct rtl8169_private *tp = netdev_priv(dev); + + rtl8169_init_phy(dev, tp); if (netif_running(dev)) __rtl8169_resume(dev); @@ -4935,6 +4935,8 @@ tp->saved_wolopts = 0; spin_unlock_irq(&tp->lock); + rtl8169_init_phy(dev, tp); + __rtl8169_resume(dev); return 0; --- 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/benet/be_cmds.c +++ linux-2.6.35/drivers/net/benet/be_cmds.c @@ -1176,7 +1176,7 @@ i = 0; netdev_for_each_mc_addr(ha, netdev) - memcpy(req->mac[i].byte, ha->addr, ETH_ALEN); + memcpy(req->mac[i++].byte, ha->addr, ETH_ALEN); } else { req->promiscuous = 1; } --- 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/netxen/netxen_nic_init.c +++ linux-2.6.35/drivers/net/netxen/netxen_nic_init.c @@ -1540,7 +1540,6 @@ if (pkt_offset) skb_pull(skb, pkt_offset); - skb->truesize = skb->len + sizeof(struct sk_buff); skb->protocol = eth_type_trans(skb, netdev); napi_gro_receive(&sds_ring->napi, skb); @@ -1602,8 +1601,6 @@ skb_put(skb, lro_length + data_offset); - skb->truesize = skb->len + sizeof(struct sk_buff) + skb_headroom(skb); - skb_pull(skb, l2_hdr_offset); skb->protocol = eth_type_trans(skb, netdev); --- 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/pcmcia/pcnet_cs.c +++ linux-2.6.35/drivers/net/pcmcia/pcnet_cs.c @@ -1602,6 +1602,7 @@ PCMCIA_DEVICE_PROD_ID12("COMPU-SHACK", "FASTline PCMCIA 10/100 Fast-Ethernet", 0xfa2e424d, 0x3953d9b9), PCMCIA_DEVICE_PROD_ID12("CONTEC", "C-NET(PC)C-10L", 0x21cab552, 0xf6f90722), PCMCIA_DEVICE_PROD_ID12("corega", "FEther PCC-TXF", 0x0a21501a, 0xa51564a2), + PCMCIA_DEVICE_PROD_ID12("corega", "Ether CF-TD", 0x0a21501a, 0x6589340a), PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega EtherII PCC-T", 0x5261440f, 0xfa9d85bd), PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega EtherII PCC-TD", 0x5261440f, 0xc49bd73d), PCMCIA_DEVICE_PROD_ID12("Corega K.K.", "corega EtherII PCC-TD", 0xd4fdcbd8, 0xc49bd73d), --- linux-2.6.35.orig/drivers/net/e1000/e1000_main.c +++ linux-2.6.35/drivers/net/e1000/e1000_main.c @@ -31,7 +31,7 @@ char e1000_driver_name[] = "e1000"; static char e1000_driver_string[] = "Intel(R) PRO/1000 Network Driver"; -#define DRV_VERSION "7.3.21-k6-NAPI" +#define DRV_VERSION "7.3.21-k8-NAPI" const char e1000_driver_version[] = DRV_VERSION; static const char e1000_copyright[] = "Copyright (c) 1999-2006 Intel Corporation."; @@ -483,9 +483,6 @@ struct net_device *netdev = adapter->netdev; u32 rctl, tctl; - /* signal that we're down so the interrupt handler does not - * reschedule our watchdog timer */ - set_bit(__E1000_DOWN, &adapter->flags); /* disable receives in the hardware */ rctl = er32(RCTL); @@ -506,6 +503,13 @@ e1000_irq_disable(adapter); + /* + * Setting DOWN must be after irq_disable to prevent + * a screaming interrupt. Setting DOWN also prevents + * timers and tasks from rescheduling. + */ + set_bit(__E1000_DOWN, &adapter->flags); + del_timer_sync(&adapter->tx_fifo_stall_timer); del_timer_sync(&adapter->watchdog_timer); del_timer_sync(&adapter->phy_info_timer); @@ -3448,6 +3452,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 +3642,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 +3849,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/main.c +++ linux-2.6.35/drivers/net/wireless/ath/ath9k/main.c @@ -1501,6 +1501,7 @@ struct ath_softc *sc = aphy->sc; struct ath_common *common = ath9k_hw_common(sc->sc_ah); struct ath_vif *avp = (void *)vif->drv_priv; + bool bs_valid = false; int i; ath_print(common, ATH_DBG_CONFIG, "Detach Interface\n"); @@ -1529,7 +1530,15 @@ "slot\n", __func__); sc->beacon.bslot[i] = NULL; sc->beacon.bslot_aphy[i] = NULL; - } + } else if (sc->beacon.bslot[i]) + bs_valid = true; + } + if (!bs_valid && (sc->sc_ah->imask & ATH9K_INT_SWBA)) { + /* Disable SWBA interrupt */ + sc->sc_ah->imask &= ~ATH9K_INT_SWBA; + ath9k_ps_wakeup(sc); + ath9k_hw_set_interrupts(sc->sc_ah, sc->sc_ah->imask); + ath9k_ps_restore(sc); } sc->nvifs--; --- 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] + @@ -1064,15 +1064,19 @@ case 1: break; case 2: - scaledPower -= REDUCE_SCALED_POWER_BY_TWO_CHAIN; + if (scaledPower > REDUCE_SCALED_POWER_BY_TWO_CHAIN) + scaledPower -= REDUCE_SCALED_POWER_BY_TWO_CHAIN; + else + scaledPower = 0; break; case 3: - scaledPower -= REDUCE_SCALED_POWER_BY_THREE_CHAIN; + if (scaledPower > REDUCE_SCALED_POWER_BY_THREE_CHAIN) + scaledPower -= REDUCE_SCALED_POWER_BY_THREE_CHAIN; + else + scaledPower = 0; break; } - scaledPower = max((u16)0, scaledPower); - if (IS_CHAN_2GHZ(chan)) { numCtlModes = ARRAY_SIZE(ctlModesFor11g) - SUB_NUM_CTL_MODES_AT_2G_40; @@ -1437,14 +1441,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/b43/sdio.c +++ linux-2.6.35/drivers/net/wireless/b43/sdio.c @@ -163,6 +163,7 @@ err_free_ssb: kfree(sdio); err_disable_func: + sdio_claim_host(func); sdio_disable_func(func); err_release_host: sdio_release_host(func); @@ -175,7 +176,9 @@ struct b43_sdio *sdio = sdio_get_drvdata(func); ssb_bus_unregister(&sdio->ssb); + sdio_claim_host(func); sdio_disable_func(func); + sdio_release_host(func); kfree(sdio); sdio_set_drvdata(func, NULL); } --- 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/orinoco/wext.c +++ linux-2.6.35/drivers/net/wireless/orinoco/wext.c @@ -904,10 +904,10 @@ */ if (param->value) { priv->tkip_cm_active = 1; - ret = hermes_enable_port(hw, 0); + ret = hermes_disable_port(hw, 0); } else { priv->tkip_cm_active = 0; - ret = hermes_disable_port(hw, 0); + ret = hermes_enable_port(hw, 0); } break; --- linux-2.6.35.orig/drivers/net/wireless/orinoco/main.c +++ linux-2.6.35/drivers/net/wireless/orinoco/main.c @@ -1813,6 +1813,12 @@ struct net_device *dev = priv->ndev; int err = 0; + /* If we've called commit, we are reconfiguring or bringing the + * interface up. Maintaining countermeasures across this would + * be confusing, so note that we've disabled them. The port will + * be enabled later in orinoco_commit or __orinoco_up. */ + priv->tkip_cm_active = 0; + err = orinoco_hw_program_rids(priv); /* FIXME: what about netif_tx_lock */ --- linux-2.6.35.orig/drivers/net/wireless/rt2x00/rt2500pci.c +++ linux-2.6.35/drivers/net/wireless/rt2x00/rt2500pci.c @@ -1780,12 +1780,16 @@ spec->channels_info = info; tx_power = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_START); - for (i = 0; i < 14; i++) - info[i].tx_power1 = TXPOWER_FROM_DEV(tx_power[i]); + for (i = 0; i < 14; i++) { + info[i].max_power = MAX_TXPOWER; + info[i].default_power1 = TXPOWER_FROM_DEV(tx_power[i]); + } if (spec->num_channels > 14) { - for (i = 14; i < spec->num_channels; i++) - info[i].tx_power1 = DEFAULT_TXPOWER; + for (i = 14; i < spec->num_channels; i++) { + info[i].max_power = MAX_TXPOWER; + info[i].default_power1 = DEFAULT_TXPOWER; + } } return 0; --- linux-2.6.35.orig/drivers/net/wireless/rt2x00/rt2800.h +++ linux-2.6.35/drivers/net/wireless/rt2x00/rt2800.h @@ -1770,6 +1770,13 @@ #define EEPROM_RSSI_A2_LNA_A2 FIELD16(0xff00) /* + * EEPROM Maximum TX power values + */ +#define EEPROM_MAX_TX_POWER 0x0027 +#define EEPROM_MAX_TX_POWER_24GHZ FIELD16(0x00ff) +#define EEPROM_MAX_TX_POWER_5GHZ FIELD16(0xff00) + +/* * EEPROM TXpower delta: 20MHZ AND 40 MHZ use different power. * This is delta in 40MHZ. * VALUE: Tx Power dalta value (MAX=4) --- linux-2.6.35.orig/drivers/net/wireless/rt2x00/rt2x00dev.c +++ linux-2.6.35/drivers/net/wireless/rt2x00/rt2x00dev.c @@ -605,7 +605,7 @@ for (i = 0; i < spec->num_channels; i++) { rt2x00lib_channel(&channels[i], spec->channels[i].channel, - spec->channels_info[i].tx_power1, i); + spec->channels_info[i].max_power, i); } /* --- linux-2.6.35.orig/drivers/net/wireless/rt2x00/rt2800pci.c +++ linux-2.6.35/drivers/net/wireless/rt2x00/rt2800pci.c @@ -689,13 +689,15 @@ { struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; unsigned int beacon_base; - u32 reg; + unsigned int padding_len; + u32 orig_reg, reg; /* * Disable beaconing while we are reloading the beacon data, * otherwise we might be sending out invalid data. */ rt2800_register_read(rt2x00dev, BCN_TIME_CFG, ®); + orig_reg = reg; rt2x00_set_field32(®, BCN_TIME_CFG_BEACON_GEN, 0); rt2800_register_write(rt2x00dev, BCN_TIME_CFG, reg); @@ -706,11 +708,19 @@ skb_push(entry->skb, TXWI_DESC_SIZE); /* - * Write entire beacon with TXWI to register. + * Write entire beacon with TXWI and padding to register. */ + padding_len = roundup(entry->skb->len, 4) - entry->skb->len; + if (padding_len && skb_pad(entry->skb, padding_len)) { + ERROR(rt2x00dev, "Failure padding beacon, aborting\n"); + /* skb freed by skb_pad() on failure */ + entry->skb = NULL; + rt2800_register_write(rt2x00dev, BCN_TIME_CFG, orig_reg); + return; + } beacon_base = HW_BEACON_OFFSET(entry->entry_idx); - rt2800_register_multiwrite(rt2x00dev, beacon_base, - entry->skb->data, entry->skb->len); + rt2800_register_multiwrite(rt2x00dev, beacon_base, entry->skb->data, + entry->skb->len + padding_len); /* * Enable beaconing again. --- linux-2.6.35.orig/drivers/net/wireless/rt2x00/rt61pci.c +++ linux-2.6.35/drivers/net/wireless/rt2x00/rt61pci.c @@ -1863,24 +1863,35 @@ struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; struct queue_entry_priv_pci *entry_priv = entry->priv_data; unsigned int beacon_base; - u32 reg; + unsigned int padding_len; + u32 orig_reg, reg; /* * Disable beaconing while we are reloading the beacon data, * otherwise we might be sending out invalid data. */ rt2x00pci_register_read(rt2x00dev, TXRX_CSR9, ®); + orig_reg = reg; rt2x00_set_field32(®, TXRX_CSR9_BEACON_GEN, 0); rt2x00pci_register_write(rt2x00dev, TXRX_CSR9, reg); /* - * Write entire beacon with descriptor to register. + * Write entire beacon with descriptor and padding to register. */ + padding_len = roundup(entry->skb->len, 4) - entry->skb->len; + if (padding_len && skb_pad(entry->skb, padding_len)) { + ERROR(rt2x00dev, "Failure padding beacon, aborting\n"); + /* skb freed by skb_pad() on failure */ + entry->skb = NULL; + rt2x00pci_register_write(rt2x00dev, TXRX_CSR9, orig_reg); + return; + } beacon_base = HW_BEACON_OFFSET(entry->entry_idx); rt2x00pci_register_multiwrite(rt2x00dev, beacon_base, entry_priv->desc, TXINFO_SIZE); rt2x00pci_register_multiwrite(rt2x00dev, beacon_base + TXINFO_SIZE, - entry->skb->data, entry->skb->len); + entry->skb->data, + entry->skb->len + padding_len); /* * Enable beaconing again. @@ -2605,13 +2616,17 @@ spec->channels_info = info; tx_power = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_G_START); - for (i = 0; i < 14; i++) - info[i].tx_power1 = TXPOWER_FROM_DEV(tx_power[i]); + for (i = 0; i < 14; i++) { + info[i].max_power = MAX_TXPOWER; + info[i].default_power1 = TXPOWER_FROM_DEV(tx_power[i]); + } if (spec->num_channels > 14) { tx_power = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_A_START); - for (i = 14; i < spec->num_channels; i++) - info[i].tx_power1 = TXPOWER_FROM_DEV(tx_power[i]); + for (i = 14; i < spec->num_channels; i++) { + info[i].max_power = MAX_TXPOWER; + info[i].default_power1 = TXPOWER_FROM_DEV(tx_power[i]); + } } return 0; --- linux-2.6.35.orig/drivers/net/wireless/rt2x00/rt2500usb.c +++ linux-2.6.35/drivers/net/wireless/rt2x00/rt2500usb.c @@ -1690,12 +1690,16 @@ spec->channels_info = info; tx_power = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_START); - for (i = 0; i < 14; i++) - info[i].tx_power1 = TXPOWER_FROM_DEV(tx_power[i]); + for (i = 0; i < 14; i++) { + info[i].max_power = MAX_TXPOWER; + info[i].default_power1 = TXPOWER_FROM_DEV(tx_power[i]); + } if (spec->num_channels > 14) { - for (i = 14; i < spec->num_channels; i++) - info[i].tx_power1 = DEFAULT_TXPOWER; + for (i = 14; i < spec->num_channels; i++) { + info[i].max_power = MAX_TXPOWER; + info[i].default_power1 = DEFAULT_TXPOWER; + } } return 0; --- linux-2.6.35.orig/drivers/net/wireless/rt2x00/rt2x00.h +++ linux-2.6.35/drivers/net/wireless/rt2x00/rt2x00.h @@ -211,8 +211,9 @@ unsigned int flags; #define GEOGRAPHY_ALLOWED 0x00000001 - short tx_power1; - short tx_power2; + short max_power; + short default_power1; + short default_power2; }; /* --- linux-2.6.35.orig/drivers/net/wireless/rt2x00/rt2x00pci.h +++ linux-2.6.35/drivers/net/wireless/rt2x00/rt2x00pci.h @@ -64,7 +64,7 @@ const void *value, const u32 length) { - memcpy_toio(rt2x00dev->csr.base + offset, value, length); + __iowrite32_copy(rt2x00dev->csr.base + offset, value, length >> 2); } /** --- linux-2.6.35.orig/drivers/net/wireless/rt2x00/rt73usb.c +++ linux-2.6.35/drivers/net/wireless/rt2x00/rt73usb.c @@ -2092,13 +2092,17 @@ spec->channels_info = info; tx_power = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_G_START); - for (i = 0; i < 14; i++) - info[i].tx_power1 = TXPOWER_FROM_DEV(tx_power[i]); + for (i = 0; i < 14; i++) { + info[i].max_power = MAX_TXPOWER; + info[i].default_power1 = TXPOWER_FROM_DEV(tx_power[i]); + } if (spec->num_channels > 14) { tx_power = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_A_START); - for (i = 14; i < spec->num_channels; i++) - info[i].tx_power1 = TXPOWER_FROM_DEV(tx_power[i]); + for (i = 14; i < spec->num_channels; i++) { + info[i].max_power = MAX_TXPOWER; + info[i].default_power1 = TXPOWER_FROM_DEV(tx_power[i]); + } } return 0; --- linux-2.6.35.orig/drivers/net/wireless/rt2x00/rt2400pci.c +++ linux-2.6.35/drivers/net/wireless/rt2x00/rt2400pci.c @@ -1462,8 +1462,10 @@ spec->channels_info = info; tx_power = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_START); - for (i = 0; i < 14; i++) - info[i].tx_power1 = TXPOWER_FROM_DEV(tx_power[i]); + for (i = 0; i < 14; i++) { + info[i].max_power = TXPOWER_FROM_DEV(MAX_TXPOWER); + info[i].default_power1 = TXPOWER_FROM_DEV(tx_power[i]); + } return 0; } --- linux-2.6.35.orig/drivers/net/wireless/rt2x00/rt2800lib.c +++ linux-2.6.35/drivers/net/wireless/rt2x00/rt2800lib.c @@ -840,27 +840,27 @@ * double meaning, and we should set a 7DBm boost flag. */ rt2x00_set_field32(&rf->rf3, RF3_TXPOWER_A_7DBM_BOOST, - (info->tx_power1 >= 0)); + (info->default_power1 >= 0)); - if (info->tx_power1 < 0) - info->tx_power1 += 7; + if (info->default_power1 < 0) + info->default_power1 += 7; rt2x00_set_field32(&rf->rf3, RF3_TXPOWER_A, - TXPOWER_A_TO_DEV(info->tx_power1)); + TXPOWER_A_TO_DEV(info->default_power1)); rt2x00_set_field32(&rf->rf4, RF4_TXPOWER_A_7DBM_BOOST, - (info->tx_power2 >= 0)); + (info->default_power2 >= 0)); - if (info->tx_power2 < 0) - info->tx_power2 += 7; + if (info->default_power2 < 0) + info->default_power2 += 7; rt2x00_set_field32(&rf->rf4, RF4_TXPOWER_A, - TXPOWER_A_TO_DEV(info->tx_power2)); + TXPOWER_A_TO_DEV(info->default_power2)); } else { rt2x00_set_field32(&rf->rf3, RF3_TXPOWER_G, - TXPOWER_G_TO_DEV(info->tx_power1)); + TXPOWER_G_TO_DEV(info->default_power1)); rt2x00_set_field32(&rf->rf4, RF4_TXPOWER_G, - TXPOWER_G_TO_DEV(info->tx_power2)); + TXPOWER_G_TO_DEV(info->default_power2)); } rt2x00_set_field32(&rf->rf4, RF4_HT40, conf_is_ht40(conf)); @@ -900,13 +900,11 @@ rt2800_rfcsr_write(rt2x00dev, 6, rfcsr); rt2800_rfcsr_read(rt2x00dev, 12, &rfcsr); - rt2x00_set_field8(&rfcsr, RFCSR12_TX_POWER, - TXPOWER_G_TO_DEV(info->tx_power1)); + rt2x00_set_field8(&rfcsr, RFCSR12_TX_POWER, info->default_power1); rt2800_rfcsr_write(rt2x00dev, 12, rfcsr); rt2800_rfcsr_read(rt2x00dev, 13, &rfcsr); - rt2x00_set_field8(&rfcsr, RFCSR13_TX_POWER, - TXPOWER_G_TO_DEV(info->tx_power2)); + rt2x00_set_field8(&rfcsr, RFCSR13_TX_POWER, info->default_power2); rt2800_rfcsr_write(rt2x00dev, 13, rfcsr); rt2800_rfcsr_read(rt2x00dev, 23, &rfcsr); @@ -2226,6 +2224,13 @@ default_lna_gain); rt2x00_eeprom_write(rt2x00dev, EEPROM_RSSI_A2, word); + rt2x00_eeprom_read(rt2x00dev, EEPROM_MAX_TX_POWER, &word); + if (rt2x00_get_field16(word, EEPROM_MAX_TX_POWER_24GHZ) == 0xff) + rt2x00_set_field16(&word, EEPROM_MAX_TX_POWER_24GHZ, MAX_G_TXPOWER); + if (rt2x00_get_field16(word, EEPROM_MAX_TX_POWER_5GHZ) == 0xff) + rt2x00_set_field16(&word, EEPROM_MAX_TX_POWER_5GHZ, MAX_A_TXPOWER); + rt2x00_eeprom_write(rt2x00dev, EEPROM_MAX_TX_POWER, word); + return 0; } EXPORT_SYMBOL_GPL(rt2800_validate_eeprom); @@ -2466,9 +2471,10 @@ { struct hw_mode_spec *spec = &rt2x00dev->spec; struct channel_info *info; - char *tx_power1; - char *tx_power2; + char *default_power1; + char *default_power2; unsigned int i; + unsigned short max_power; u16 eeprom; /* @@ -2566,21 +2572,26 @@ spec->channels_info = info; - tx_power1 = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_BG1); - tx_power2 = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_BG2); + rt2x00_eeprom_read(rt2x00dev, EEPROM_MAX_TX_POWER, &eeprom); + max_power = rt2x00_get_field16(eeprom, EEPROM_MAX_TX_POWER_24GHZ); + default_power1 = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_BG1); + default_power2 = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_BG2); for (i = 0; i < 14; i++) { - info[i].tx_power1 = TXPOWER_G_FROM_DEV(tx_power1[i]); - info[i].tx_power2 = TXPOWER_G_FROM_DEV(tx_power2[i]); + info[i].max_power = max_power; + info[i].default_power1 = TXPOWER_G_FROM_DEV(default_power1[i]); + info[i].default_power2 = TXPOWER_G_FROM_DEV(default_power2[i]); } if (spec->num_channels > 14) { - tx_power1 = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_A1); - tx_power2 = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_A2); + max_power = rt2x00_get_field16(eeprom, EEPROM_MAX_TX_POWER_5GHZ); + default_power1 = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_A1); + default_power2 = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_A2); for (i = 14; i < spec->num_channels; i++) { - info[i].tx_power1 = TXPOWER_A_FROM_DEV(tx_power1[i]); - info[i].tx_power2 = TXPOWER_A_FROM_DEV(tx_power2[i]); + info[i].max_power = max_power; + info[i].default_power1 = TXPOWER_A_FROM_DEV(default_power1[i]); + info[i].default_power2 = TXPOWER_A_FROM_DEV(default_power2[i]); } } --- linux-2.6.35.orig/drivers/net/wireless/p54/eeprom.c +++ linux-2.6.35/drivers/net/wireless/p54/eeprom.c @@ -262,8 +262,10 @@ list->max_entries = max_channel_num; list->channels = kzalloc(sizeof(struct p54_channel_entry) * max_channel_num, GFP_KERNEL); - if (!list->channels) + if (!list->channels) { + ret = -ENOMEM; goto free; + } for (i = 0; i < max_channel_num; i++) { if (i < priv->iq_autocal_len) { --- linux-2.6.35.orig/drivers/net/wireless/p54/p54usb.c +++ linux-2.6.35/drivers/net/wireless/p54/p54usb.c @@ -33,8 +33,18 @@ MODULE_FIRMWARE("isl3886usb"); MODULE_FIRMWARE("isl3887usb"); +/* + * Note: + * + * Always update our wiki's device list (located at: + * http://wireless.kernel.org/en/users/Drivers/p54/devices ), + * whenever you add a new device. + */ + static struct usb_device_id p54u_table[] __devinitdata = { /* Version 1 devices (pci chip + net2280) */ + {USB_DEVICE(0x0411, 0x0050)}, /* Buffalo WLI2-USB2-G54 */ + {USB_DEVICE(0x045e, 0x00c2)}, /* Microsoft MN-710 */ {USB_DEVICE(0x0506, 0x0a11)}, /* 3COM 3CRWE254G72 */ {USB_DEVICE(0x06b9, 0x0120)}, /* Thomson SpeedTouch 120g */ {USB_DEVICE(0x0707, 0xee06)}, /* SMC 2862W-G */ @@ -47,7 +57,13 @@ {USB_DEVICE(0x0846, 0x4220)}, /* Netgear WG111 */ {USB_DEVICE(0x09aa, 0x1000)}, /* Spinnaker Proto board */ {USB_DEVICE(0x0cde, 0x0006)}, /* Medion 40900, Roper Europe */ + {USB_DEVICE(0x0db0, 0x6826)}, /* MSI UB54G (MS-6826) */ + {USB_DEVICE(0x107b, 0x55f2)}, /* Gateway WGU-210 (Gemtek) */ {USB_DEVICE(0x124a, 0x4023)}, /* Shuttle PN15, Airvast WM168g, IOGear GWU513 */ + {USB_DEVICE(0x1435, 0x0210)}, /* Inventel UR054G */ + {USB_DEVICE(0x15a9, 0x0002)}, /* Gemtek WUBI-100GW 802.11g */ + {USB_DEVICE(0x1630, 0x0005)}, /* 2Wire 802.11g USB (v1) / Z-Com */ + {USB_DEVICE(0x182d, 0x096b)}, /* Sitecom WL-107 */ {USB_DEVICE(0x1915, 0x2234)}, /* Linksys WUSB54G OEM */ {USB_DEVICE(0x1915, 0x2235)}, /* Linksys WUSB54G Portable OEM */ {USB_DEVICE(0x2001, 0x3701)}, /* DLink DWL-G120 Spinnaker */ @@ -60,6 +76,7 @@ {USB_DEVICE(0x050d, 0x7050)}, /* Belkin F5D7050 ver 1000 */ {USB_DEVICE(0x0572, 0x2000)}, /* Cohiba Proto board */ {USB_DEVICE(0x0572, 0x2002)}, /* Cohiba Proto board */ + {USB_DEVICE(0x06a9, 0x000e)}, /* Westell 802.11g USB (A90-211WG-01) */ {USB_DEVICE(0x06b9, 0x0121)}, /* Thomson SpeedTouch 121g */ {USB_DEVICE(0x0707, 0xee13)}, /* SMC 2862W-G version 2 */ {USB_DEVICE(0x083a, 0x4521)}, /* Siemens Gigaset USB Adapter 54 version 2 */ @@ -69,7 +86,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 */ @@ -79,7 +97,9 @@ {USB_DEVICE(0x13B1, 0x000C)}, /* Linksys WUSB54AG */ {USB_DEVICE(0x1413, 0x5400)}, /* Telsey 802.11g USB2.0 Adapter */ {USB_DEVICE(0x1435, 0x0427)}, /* Inventel UR054G */ + {USB_DEVICE(0x1668, 0x1050)}, /* Actiontec 802UIG-1 */ {USB_DEVICE(0x2001, 0x3704)}, /* DLink DWL-G122 rev A2 */ + {USB_DEVICE(0x2001, 0x3705)}, /* D-Link DWL-G120 rev C1 */ {USB_DEVICE(0x413c, 0x5513)}, /* Dell WLA3310 USB Wireless Adapter */ {USB_DEVICE(0x413c, 0x8102)}, /* Spinnaker DUT */ {USB_DEVICE(0x413c, 0x8104)}, /* Cohiba Proto board */ @@ -930,8 +950,8 @@ #ifdef CONFIG_PM /* ISL3887 needs a full reset on resume */ udev->reset_resume = 1; +#endif /* CONFIG_PM */ err = p54u_device_reset(dev); -#endif priv->hw_type = P54U_3887; dev->extra_tx_headroom += sizeof(struct lm87_tx_hdr); --- 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/smsc95xx.c +++ linux-2.6.35/drivers/net/usb/smsc95xx.c @@ -805,8 +805,6 @@ return ret; } - smsc95xx_init_mac_address(dev); - ret = smsc95xx_set_mac_address(dev); if (ret < 0) return ret; @@ -1047,6 +1045,8 @@ pdata->use_tx_csum = DEFAULT_TX_CSUM_ENABLE; pdata->use_rx_csum = DEFAULT_RX_CSUM_ENABLE; + smsc95xx_init_mac_address(dev); + /* Init all registers */ ret = smsc95xx_reset(dev); --- 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/usb/usbnet.c +++ linux-2.6.35/drivers/net/usb/usbnet.c @@ -44,6 +44,7 @@ #include #include #include +#include #define DRIVER_VERSION "22-Aug-2005" @@ -1272,6 +1273,16 @@ struct usb_device *xdev; int status; const char *name; + struct usb_driver *driver = to_usb_driver(udev->dev.driver); + + /* usbnet already took usb runtime pm, so have to enable the feature + * for usb interface, otherwise usb_autopm_get_interface may return + * failure if USB_SUSPEND(RUNTIME_PM) is enabled. + */ + if (!driver->supports_autosuspend) { + driver->supports_autosuspend = 1; + pm_runtime_enable(&udev->dev); + } name = udev->dev.driver->name; info = (struct driver_info *) prod->driver_info; --- 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/qlcnic/qlcnic_init.c +++ linux-2.6.35/drivers/net/qlcnic/qlcnic_init.c @@ -1363,7 +1363,6 @@ if (pkt_offset) skb_pull(skb, pkt_offset); - skb->truesize = skb->len + sizeof(struct sk_buff); skb->protocol = eth_type_trans(skb, netdev); napi_gro_receive(&sds_ring->napi, skb); @@ -1425,8 +1424,6 @@ skb_put(skb, lro_length + data_offset); - skb->truesize = skb->len + sizeof(struct sk_buff) + skb_headroom(skb); - skb_pull(skb, l2_hdr_offset); skb->protocol = eth_type_trans(skb, netdev); @@ -1659,8 +1656,6 @@ if (pkt_offset) skb_pull(skb, pkt_offset); - skb->truesize = skb->len + sizeof(struct sk_buff); - if (!qlcnic_check_loopback_buff(skb->data)) adapter->diag_cnt++; --- 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/bonding/bonding.h +++ linux-2.6.35/drivers/net/bonding/bonding.h @@ -235,11 +235,11 @@ bond_for_each_slave(bond, slave, i) { if (slave->dev == slave_dev) { - break; + return slave; } } - return slave; + return 0; } static inline struct bonding *bond_get_bond_by_slave(struct slave *slave) --- linux-2.6.35.orig/drivers/net/atlx/atl1.c +++ linux-2.6.35/drivers/net/atlx/atl1.c @@ -2847,10 +2847,11 @@ pci_enable_wake(pdev, PCI_D3cold, 0); atl1_reset_hw(&adapter->hw); - adapter->cmb.cmb->int_stats = 0; - if (netif_running(netdev)) + if (netif_running(netdev)) { + adapter->cmb.cmb->int_stats = 0; atl1_up(adapter); + } netif_device_attach(netdev); return 0; --- 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/accel.c +++ linux-2.6.35/drivers/video/via/accel.c @@ -283,11 +283,12 @@ writel(tmp, engine + 0x1C); } - if (op != VIA_BITBLT_COLOR) + if (op == VIA_BITBLT_FILL) { + writel(fg_color, engine + 0x58); + } else if (op == VIA_BITBLT_MONO) { writel(fg_color, engine + 0x4C); - - if (op == VIA_BITBLT_MONO) writel(bg_color, engine + 0x50); + } if (op == VIA_BITBLT_FILL) ge_cmd |= fill_rop << 24 | 0x00002000 | 0x00000001; --- 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/via/via_i2c.c +++ linux-2.6.35/drivers/video/via/via_i2c.c @@ -114,6 +114,7 @@ int viafb_i2c_readbyte(u8 adap, u8 slave_addr, u8 index, u8 *pdata) { + int ret; u8 mm1[] = {0x00}; struct i2c_msg msgs[2]; @@ -126,11 +127,18 @@ mm1[0] = index; msgs[0].len = 1; msgs[1].len = 1; msgs[0].buf = mm1; msgs[1].buf = pdata; - return i2c_transfer(&via_i2c_par[adap].adapter, msgs, 2); + ret = i2c_transfer(&via_i2c_par[adap].adapter, msgs, 2); + if (ret == 2) + ret = 0; + else if (ret >= 0) + ret = -EIO; + + return ret; } int viafb_i2c_writebyte(u8 adap, u8 slave_addr, u8 index, u8 data) { + int ret; u8 msg[2] = { index, data }; struct i2c_msg msgs; @@ -140,11 +148,18 @@ msgs.addr = slave_addr / 2; msgs.len = 2; msgs.buf = msg; - return i2c_transfer(&via_i2c_par[adap].adapter, &msgs, 1); + ret = i2c_transfer(&via_i2c_par[adap].adapter, &msgs, 1); + if (ret == 1) + ret = 0; + else if (ret >= 0) + ret = -EIO; + + return ret; } int viafb_i2c_readbytes(u8 adap, u8 slave_addr, u8 index, u8 *buff, int buff_len) { + int ret; u8 mm1[] = {0x00}; struct i2c_msg msgs[2]; @@ -156,7 +171,13 @@ mm1[0] = index; msgs[0].len = 1; msgs[1].len = buff_len; msgs[0].buf = mm1; msgs[1].buf = buff; - return i2c_transfer(&via_i2c_par[adap].adapter, msgs, 2); + ret = i2c_transfer(&via_i2c_par[adap].adapter, msgs, 2); + if (ret == 2) + ret = 0; + else if (ret >= 0) + ret = -EIO; + + return ret; } /* --- 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/backlight/backlight.c +++ linux-2.6.35/drivers/video/backlight/backlight.c @@ -197,12 +197,12 @@ { struct backlight_device *bd = to_backlight_device(dev); - if (bd->ops->options & BL_CORE_SUSPENDRESUME) { - mutex_lock(&bd->ops_lock); + mutex_lock(&bd->ops_lock); + if (bd->ops && bd->ops->options & BL_CORE_SUSPENDRESUME) { bd->props.state |= BL_CORE_SUSPENDED; backlight_update_status(bd); - mutex_unlock(&bd->ops_lock); } + mutex_unlock(&bd->ops_lock); return 0; } @@ -211,12 +211,12 @@ { struct backlight_device *bd = to_backlight_device(dev); - if (bd->ops->options & BL_CORE_SUSPENDRESUME) { - mutex_lock(&bd->ops_lock); + mutex_lock(&bd->ops_lock); + if (bd->ops && bd->ops->options & BL_CORE_SUSPENDRESUME) { bd->props.state &= ~BL_CORE_SUSPENDED; backlight_update_status(bd); - mutex_unlock(&bd->ops_lock); } + mutex_unlock(&bd->ops_lock); return 0; } --- 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/ad525x_dpot-spi.c +++ linux-2.6.35/drivers/misc/ad525x_dpot-spi.c @@ -53,13 +53,13 @@ static int write16(void *client, u8 reg, u8 val) { u8 data[2] = {reg, val}; - return spi_write(client, data, 1); + return spi_write(client, data, 2); } static int write24(void *client, u8 reg, u16 val) { u8 data[3] = {reg, val >> 8, val}; - return spi_write(client, data, 1); + return spi_write(client, data, 3); } static int read8(void *client) --- 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/misc/sgi-xp/xpc_uv.c +++ linux-2.6.35/drivers/misc/sgi-xp/xpc_uv.c @@ -417,6 +417,7 @@ static void xpc_handle_activate_mq_msg_uv(struct xpc_partition *part, struct xpc_activate_mq_msghdr_uv *msg_hdr, + int part_setup, int *wakeup_hb_checker) { unsigned long irq_flags; @@ -481,6 +482,9 @@ case XPC_ACTIVATE_MQ_MSG_CHCTL_CLOSEREQUEST_UV: { struct xpc_activate_mq_msg_chctl_closerequest_uv *msg; + if (!part_setup) + break; + msg = container_of(msg_hdr, struct xpc_activate_mq_msg_chctl_closerequest_uv, hdr); @@ -497,6 +501,9 @@ case XPC_ACTIVATE_MQ_MSG_CHCTL_CLOSEREPLY_UV: { struct xpc_activate_mq_msg_chctl_closereply_uv *msg; + if (!part_setup) + break; + msg = container_of(msg_hdr, struct xpc_activate_mq_msg_chctl_closereply_uv, hdr); @@ -511,6 +518,9 @@ case XPC_ACTIVATE_MQ_MSG_CHCTL_OPENREQUEST_UV: { struct xpc_activate_mq_msg_chctl_openrequest_uv *msg; + if (!part_setup) + break; + msg = container_of(msg_hdr, struct xpc_activate_mq_msg_chctl_openrequest_uv, hdr); @@ -528,6 +538,9 @@ case XPC_ACTIVATE_MQ_MSG_CHCTL_OPENREPLY_UV: { struct xpc_activate_mq_msg_chctl_openreply_uv *msg; + if (!part_setup) + break; + msg = container_of(msg_hdr, struct xpc_activate_mq_msg_chctl_openreply_uv, hdr); args = &part->remote_openclose_args[msg->ch_number]; @@ -545,6 +558,9 @@ case XPC_ACTIVATE_MQ_MSG_CHCTL_OPENCOMPLETE_UV: { struct xpc_activate_mq_msg_chctl_opencomplete_uv *msg; + if (!part_setup) + break; + msg = container_of(msg_hdr, struct xpc_activate_mq_msg_chctl_opencomplete_uv, hdr); spin_lock_irqsave(&part->chctl_lock, irq_flags); @@ -621,6 +637,7 @@ part_referenced = xpc_part_ref(part); xpc_handle_activate_mq_msg_uv(part, msg_hdr, + part_referenced, &wakeup_hb_checker); if (part_referenced) xpc_part_deref(part); --- linux-2.6.35.orig/drivers/misc/sgi-xp/xpc_partition.c +++ linux-2.6.35/drivers/misc/sgi-xp/xpc_partition.c @@ -439,18 +439,23 @@ * nodes that can comprise an access protection grouping. The access * protection is in regards to memory, IOI and IPI. */ - max_regions = 64; region_size = xp_region_size; - switch (region_size) { - case 128: - max_regions *= 2; - case 64: - max_regions *= 2; - case 32: - max_regions *= 2; - region_size = 16; - DBUG_ON(!is_shub2()); + if (is_uv()) + max_regions = 256; + else { + max_regions = 64; + + switch (region_size) { + case 128: + max_regions *= 2; + case 64: + max_regions *= 2; + case 32: + max_regions *= 2; + region_size = 16; + DBUG_ON(!is_shub2()); + } } for (region = 0; region < max_regions; region++) { --- 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/gigaset/isocdata.c +++ linux-2.6.35/drivers/isdn/gigaset/isocdata.c @@ -842,13 +842,14 @@ if (unlikely(bcs->ignore)) { bcs->ignore--; - hdlc_flush(bcs); return; } skb = bcs->rx_skb; - if (skb == NULL) + if (skb == NULL) { skb = gigaset_new_rx_skb(bcs); - bcs->hw.bas->goodbytes += skb->len; + if (skb == NULL) + return; + } dobytes = bcs->rx_bufsize - skb->len; while (count > 0) { dst = skb_put(skb, count < dobytes ? count : dobytes); @@ -860,6 +861,7 @@ if (dobytes == 0) { dump_bytes(DEBUG_STREAM_DUMP, "rcv data", skb->data, skb->len); + bcs->hw.bas->goodbytes += skb->len; gigaset_skb_rcvd(bcs, skb); skb = gigaset_new_rx_skb(bcs); if (skb == NULL) --- linux-2.6.35.orig/drivers/isdn/gigaset/bas-gigaset.c +++ linux-2.6.35/drivers/isdn/gigaset/bas-gigaset.c @@ -438,23 +438,27 @@ return; } - if (ucs->retry_cmd_in++ < BAS_RETRY) { - dev_notice(cs->dev, "control read: timeout, retry %d\n", - ucs->retry_cmd_in); - rc = atread_submit(cs, BAS_TIMEOUT); - if (rc >= 0 || rc == -ENODEV) - /* resubmitted or disconnected */ - /* - bypass regular exit block */ - return; - } else { + if (ucs->retry_cmd_in++ >= BAS_RETRY) { dev_err(cs->dev, "control read: timeout, giving up after %d tries\n", ucs->retry_cmd_in); + kfree(ucs->rcvbuf); + ucs->rcvbuf = NULL; + ucs->rcvbuf_size = 0; + error_reset(cs); + return; + } + + gig_dbg(DEBUG_USBREQ, "%s: timeout, retry %d", + __func__, ucs->retry_cmd_in); + rc = atread_submit(cs, BAS_TIMEOUT); + if (rc < 0) { + kfree(ucs->rcvbuf); + ucs->rcvbuf = NULL; + ucs->rcvbuf_size = 0; + if (rc != -ENODEV) + error_reset(cs); } - kfree(ucs->rcvbuf); - ucs->rcvbuf = NULL; - ucs->rcvbuf_size = 0; - error_reset(cs); } /* read_ctrl_callback @@ -470,18 +474,11 @@ struct cardstate *cs = inbuf->cs; struct bas_cardstate *ucs = cs->hw.bas; int status = urb->status; - int have_data = 0; unsigned numbytes; int rc; update_basstate(ucs, 0, BS_ATRDPEND); wake_up(&ucs->waitqueue); - - if (!ucs->rcvbuf_size) { - dev_warn(cs->dev, "%s: no receive in progress\n", __func__); - return; - } - del_timer(&ucs->timer_cmd_in); switch (status) { @@ -495,19 +492,10 @@ numbytes = ucs->rcvbuf_size; } - /* copy received bytes to inbuf */ - have_data = gigaset_fill_inbuf(inbuf, ucs->rcvbuf, numbytes); - - if (unlikely(numbytes < ucs->rcvbuf_size)) { - /* incomplete - resubmit for remaining bytes */ - ucs->rcvbuf_size -= numbytes; - ucs->retry_cmd_in = 0; - rc = atread_submit(cs, BAS_TIMEOUT); - if (rc >= 0 || rc == -ENODEV) - /* resubmitted or disconnected */ - /* - bypass regular exit block */ - return; - error_reset(cs); + /* copy received bytes to inbuf, notify event layer */ + if (gigaset_fill_inbuf(inbuf, ucs->rcvbuf, numbytes)) { + gig_dbg(DEBUG_INTR, "%s-->BH", __func__); + gigaset_schedule_event(cs); } break; @@ -516,37 +504,32 @@ case -EINPROGRESS: /* pending */ case -ENODEV: /* device removed */ case -ESHUTDOWN: /* device shut down */ - /* no action necessary */ + /* no further action necessary */ gig_dbg(DEBUG_USBREQ, "%s: %s", __func__, get_usb_statmsg(status)); break; - default: /* severe trouble */ - dev_warn(cs->dev, "control read: %s\n", - get_usb_statmsg(status)); + default: /* other errors: retry */ if (ucs->retry_cmd_in++ < BAS_RETRY) { - dev_notice(cs->dev, "control read: retry %d\n", - ucs->retry_cmd_in); + gig_dbg(DEBUG_USBREQ, "%s: %s, retry %d", __func__, + get_usb_statmsg(status), ucs->retry_cmd_in); rc = atread_submit(cs, BAS_TIMEOUT); - if (rc >= 0 || rc == -ENODEV) - /* resubmitted or disconnected */ - /* - bypass regular exit block */ + if (rc >= 0) + /* successfully resubmitted, skip freeing */ return; - } else { - dev_err(cs->dev, - "control read: giving up after %d tries\n", - ucs->retry_cmd_in); + if (rc == -ENODEV) + /* disconnect, no further action necessary */ + break; } + dev_err(cs->dev, "control read: %s, giving up after %d tries\n", + get_usb_statmsg(status), ucs->retry_cmd_in); error_reset(cs); } + /* read finished, free buffer */ kfree(ucs->rcvbuf); ucs->rcvbuf = NULL; ucs->rcvbuf_size = 0; - if (have_data) { - gig_dbg(DEBUG_INTR, "%s-->BH", __func__); - gigaset_schedule_event(cs); - } } /* atread_submit @@ -1616,13 +1599,13 @@ ret = starturbs(bcs); if (ret < 0) { + spin_unlock_irqrestore(&cs->lock, flags); dev_err(cs->dev, "could not start isochronous I/O for channel B%d: %s\n", bcs->channel + 1, ret == -EFAULT ? "null URB" : get_usb_rcmsg(ret)); if (ret != -ENODEV) error_hangup(bcs); - spin_unlock_irqrestore(&cs->lock, flags); return ret; } @@ -1632,11 +1615,11 @@ dev_err(cs->dev, "could not open channel B%d\n", bcs->channel + 1); stopurbs(bcs->hw.bas); - if (ret != -ENODEV) - error_hangup(bcs); } spin_unlock_irqrestore(&cs->lock, flags); + if (ret < 0 && ret != -ENODEV) + error_hangup(bcs); return ret; } --- 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/isdn/i4l/isdn_tty.c +++ linux-2.6.35/drivers/isdn/i4l/isdn_tty.c @@ -2636,12 +2636,6 @@ if ((info->flags & ISDN_ASYNC_CLOSING) || (!info->tty)) { return; } -#ifdef CONFIG_ISDN_AUDIO - if ( !info->vonline ) - tty_ldisc_flush(info->tty); -#else - tty_ldisc_flush(info->tty); -#endif if ((info->flags & ISDN_ASYNC_CHECK_CD) && (!((info->flags & ISDN_ASYNC_CALLOUT_ACTIVE) && (info->flags & ISDN_ASYNC_CALLOUT_NOHUP)))) { --- 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/serial_core.c +++ linux-2.6.35/drivers/serial/serial_core.c @@ -1074,10 +1074,10 @@ * NB: both 1->0 and 0->1 transitions are counted except for * RI where only 0->1 is counted. */ -static int uart_get_count(struct uart_state *state, - struct serial_icounter_struct __user *icnt) +static int uart_get_icount(struct tty_struct *tty, + struct serial_icounter_struct *icount) { - struct serial_icounter_struct icount; + struct uart_state *state = tty->driver_data; struct uart_icount cnow; struct uart_port *uport = state->uart_port; @@ -1085,19 +1085,19 @@ memcpy(&cnow, &uport->icount, sizeof(struct uart_icount)); spin_unlock_irq(&uport->lock); - icount.cts = cnow.cts; - icount.dsr = cnow.dsr; - icount.rng = cnow.rng; - icount.dcd = cnow.dcd; - icount.rx = cnow.rx; - icount.tx = cnow.tx; - icount.frame = cnow.frame; - icount.overrun = cnow.overrun; - icount.parity = cnow.parity; - icount.brk = cnow.brk; - icount.buf_overrun = cnow.buf_overrun; + icount->cts = cnow.cts; + icount->dsr = cnow.dsr; + icount->rng = cnow.rng; + icount->dcd = cnow.dcd; + icount->rx = cnow.rx; + icount->tx = cnow.tx; + icount->frame = cnow.frame; + icount->overrun = cnow.overrun; + icount->parity = cnow.parity; + icount->brk = cnow.brk; + icount->buf_overrun = cnow.buf_overrun; - return copy_to_user(icnt, &icount, sizeof(icount)) ? -EFAULT : 0; + return 0; } /* @@ -1150,10 +1150,6 @@ case TIOCMIWAIT: ret = uart_wait_modem_status(state, arg); break; - - case TIOCGICOUNT: - ret = uart_get_count(state, uarg); - break; } if (ret != -ENOIOCTLCMD) @@ -2305,6 +2301,7 @@ #endif .tiocmget = uart_tiocmget, .tiocmset = uart_tiocmset, + .get_icount = uart_get_icount, #ifdef CONFIG_CONSOLE_POLL .poll_init = uart_poll_init, .poll_get_char = uart_poll_get_char, --- 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/raid1.c +++ linux-2.6.35/drivers/md/raid1.c @@ -1208,6 +1208,7 @@ * is not possible. */ if (!test_bit(Faulty, &rdev->flags) && + !mddev->recovery_disabled && mddev->degraded < conf->raid_disks) { err = -EBUSY; goto abort; --- 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: @@ -2375,13 +2393,13 @@ return 0; out_free_conf: + md_unregister_thread(mddev->thread); if (conf->r10bio_pool) mempool_destroy(conf->r10bio_pool); safe_put_page(conf->tmppage); kfree(conf->mirrors); kfree(conf); mddev->private = NULL; - md_unregister_thread(mddev->thread); out: return -EIO; } --- linux-2.6.35.orig/drivers/md/dm-table.c +++ linux-2.6.35/drivers/md/dm-table.c @@ -1081,11 +1081,6 @@ */ q->limits = *limits; - if (limits->no_cluster) - queue_flag_clear_unlocked(QUEUE_FLAG_CLUSTER, q); - else - queue_flag_set_unlocked(QUEUE_FLAG_CLUSTER, q); - dm_table_set_integrity(t); /* --- 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); @@ -1274,7 +1278,7 @@ md_super_write(rdev->mddev, rdev, rdev->sb_start, rdev->sb_size, rdev->sb_page); md_super_wait(rdev->mddev); - return num_sectors / 2; /* kB for sysfs */ + return num_sectors; } @@ -1640,7 +1644,7 @@ md_super_write(rdev->mddev, rdev, rdev->sb_start, rdev->sb_size, rdev->sb_page); md_super_wait(rdev->mddev); - return num_sectors / 2; /* kB for sysfs */ + return num_sectors; } static struct super_type super_types[] = { @@ -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) { @@ -4242,9 +4248,6 @@ goto abort; mddev->queue->queuedata = mddev; - /* Can be unlocked because the queue is new: no concurrency */ - queue_flag_set_unlocked(QUEUE_FLAG_CLUSTER, mddev->queue); - blk_queue_make_request(mddev->queue, md_make_request); disk = alloc_disk(1 << shift); @@ -4344,13 +4347,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 +4710,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 +4740,7 @@ } set_capacity(disk, 0); - revalidate_disk(disk); + revalidate = 1; if (mddev->ro) mddev->ro = 0; @@ -4748,6 +4748,8 @@ err = 0; } mutex_unlock(&mddev->open_mutex); + if (revalidate) + revalidate_disk(disk); if (err) return err; /* @@ -5104,7 +5106,7 @@ PTR_ERR(rdev)); return PTR_ERR(rdev); } - /* set save_raid_disk if appropriate */ + /* set saved_raid_disk if appropriate */ if (!mddev->persistent) { if (info->state & (1<raid_disk < mddev->raid_disks) @@ -5114,7 +5116,10 @@ } else super_types[mddev->major_version]. validate_super(mddev, rdev); - rdev->saved_raid_disk = rdev->raid_disk; + if (test_bit(In_sync, &rdev->flags)) + rdev->saved_raid_disk = rdev->raid_disk; + else + rdev->saved_raid_disk = -1; clear_bit(In_sync, &rdev->flags); /* just to be sure */ if (info->state & (1<timeout); - clear_bit(THREAD_WAKEUP, &thread->flags); - - thread->run(thread->mddev); + if (test_and_clear_bit(THREAD_WAKEUP, &thread->flags)) + thread->run(thread->mddev); } return 0; --- 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/timer_int.c +++ linux-2.6.35/drivers/oprofile/timer_int.c @@ -21,6 +21,7 @@ #include "oprof.h" static DEFINE_PER_CPU(struct hrtimer, oprofile_hrtimer); +static int ctr_running; static enum hrtimer_restart oprofile_hrtimer_notify(struct hrtimer *hrtimer) { @@ -33,6 +34,9 @@ { struct hrtimer *hrtimer = &__get_cpu_var(oprofile_hrtimer); + if (!ctr_running) + return; + hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); hrtimer->function = oprofile_hrtimer_notify; @@ -42,7 +46,10 @@ static int oprofile_hrtimer_start(void) { + get_online_cpus(); + ctr_running = 1; on_each_cpu(__oprofile_hrtimer_start, NULL, 1); + put_online_cpus(); return 0; } @@ -50,6 +57,9 @@ { struct hrtimer *hrtimer = &per_cpu(oprofile_hrtimer, cpu); + if (!ctr_running) + return; + hrtimer_cancel(hrtimer); } @@ -57,8 +67,11 @@ { int cpu; + get_online_cpus(); for_each_online_cpu(cpu) __oprofile_hrtimer_stop(cpu); + ctr_running = 0; + put_online_cpus(); } static int __cpuinit oprofile_cpu_notify(struct notifier_block *self, --- 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_gadget_ep0.c +++ linux-2.6.35/drivers/usb/musb/musb_gadget_ep0.c @@ -261,6 +261,7 @@ ctrlrequest->wIndex & 0x0f; struct musb_ep *musb_ep; struct musb_hw_ep *ep; + struct musb_request *request; void __iomem *regs; int is_in; u16 csr; @@ -302,6 +303,14 @@ musb_writew(regs, MUSB_RXCSR, csr); } + /* Maybe start the first request in the queue */ + request = to_musb_request( + next_request(musb_ep)); + if (!musb_ep->busy && request) { + DBG(3, "restarting the request\n"); + musb_ep_restart(musb, request); + } + /* select ep0 again */ musb_ep_select(mbase, 0); } break; --- linux-2.6.35.orig/drivers/usb/musb/musb_core.c +++ linux-2.6.35/drivers/usb/musb/musb_core.c @@ -1922,10 +1922,6 @@ dma_controller_destroy(c); } -#ifdef CONFIG_USB_MUSB_OTG - put_device(musb->xceiv->dev); -#endif - #ifdef CONFIG_USB_MUSB_HDRC_HCD usb_put_hcd(musb_to_hcd(musb)); #else @@ -2248,7 +2244,6 @@ #endif musb_writeb(musb->mregs, MUSB_DEVCTL, 0); musb_platform_exit(musb); - musb_writeb(musb->mregs, MUSB_DEVCTL, 0); musb_free(musb); iounmap(ctrl_base); --- linux-2.6.35.orig/drivers/usb/musb/omap2430.c +++ linux-2.6.35/drivers/usb/musb/omap2430.c @@ -326,5 +326,6 @@ musb_platform_suspend(musb); + otg_put_transceiver(musb->xceiv); return 0; } --- 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/musb/musb_gadget.h +++ linux-2.6.35/drivers/usb/musb/musb_gadget.h @@ -105,4 +105,6 @@ extern void musb_g_giveback(struct musb_ep *, struct usb_request *, int); +extern void musb_ep_restart(struct musb *, struct musb_request *); + #endif /* __MUSB_GADGET_H */ --- linux-2.6.35.orig/drivers/usb/musb/tusb6010.c +++ linux-2.6.35/drivers/usb/musb/tusb6010.c @@ -1152,6 +1152,8 @@ if (ret < 0) { if (sync) iounmap(sync); + + otg_put_transceiver(musb->xceiv); usb_nop_xceiv_unregister(); } return ret; @@ -1166,6 +1168,8 @@ musb->board_set_power(0); iounmap(musb->sync_va); + + otg_put_transceiver(musb->xceiv); usb_nop_xceiv_unregister(); return 0; } --- linux-2.6.35.orig/drivers/usb/musb/davinci.c +++ linux-2.6.35/drivers/usb/musb/davinci.c @@ -446,6 +446,7 @@ fail: clk_disable(musb->clock); + otg_put_transceiver(musb->xceiv); usb_nop_xceiv_unregister(); return -ENODEV; } @@ -496,6 +497,7 @@ clk_disable(musb->clock); + otg_put_transceiver(musb->xceiv); usb_nop_xceiv_unregister(); return 0; --- linux-2.6.35.orig/drivers/usb/musb/blackfin.c +++ linux-2.6.35/drivers/usb/musb/blackfin.c @@ -342,8 +342,10 @@ usb_nop_xceiv_register(); musb->xceiv = otg_get_transceiver(); - if (!musb->xceiv) + if (!musb->xceiv) { + gpio_free(musb->config->gpio_vrsel); return -ENODEV; + } if (ANOMALY_05000346) { bfin_write_USB_APHY_CALIB(ANOMALY_05000346_value); @@ -394,8 +396,9 @@ int musb_platform_exit(struct musb *musb) { - gpio_free(musb->config->gpio_vrsel); + otg_put_transceiver(musb->xceiv); + usb_nop_xceiv_unregister(); return 0; } --- linux-2.6.35.orig/drivers/usb/musb/musb_gadget.c +++ linux-2.6.35/drivers/usb/musb/musb_gadget.c @@ -568,11 +568,19 @@ { const u8 epnum = req->epnum; struct usb_request *request = &req->request; - struct musb_ep *musb_ep = &musb->endpoints[epnum].ep_out; + struct musb_ep *musb_ep; void __iomem *epio = musb->endpoints[epnum].regs; unsigned fifo_count = 0; - u16 len = musb_ep->packet_sz; + u16 len; u16 csr = musb_readw(epio, MUSB_RXCSR); + struct musb_hw_ep *hw_ep = &musb->endpoints[epnum]; + + if (hw_ep->is_shared_fifo) + musb_ep = &hw_ep->ep_in; + else + musb_ep = &hw_ep->ep_out; + + len = musb_ep->packet_sz; /* We shouldn't get here while DMA is active, but we do... */ if (dma_channel_status(musb_ep->dma) == MUSB_DMA_STATUS_BUSY) { @@ -740,9 +748,15 @@ u16 csr; struct usb_request *request; void __iomem *mbase = musb->mregs; - struct musb_ep *musb_ep = &musb->endpoints[epnum].ep_out; + struct musb_ep *musb_ep; void __iomem *epio = musb->endpoints[epnum].regs; struct dma_channel *dma; + struct musb_hw_ep *hw_ep = &musb->endpoints[epnum]; + + if (hw_ep->is_shared_fifo) + musb_ep = &hw_ep->ep_in; + else + musb_ep = &hw_ep->ep_out; musb_ep_select(mbase, epnum); @@ -1081,7 +1095,7 @@ /* * Context: controller locked, IRQs blocked. */ -static void musb_ep_restart(struct musb *musb, struct musb_request *req) +void musb_ep_restart(struct musb *musb, struct musb_request *req) { DBG(3, "<== %s request %p len %u on hw_ep%d\n", req->tx ? "TX/IN" : "RX/OUT", --- linux-2.6.35.orig/drivers/usb/storage/unusual_devs.h +++ linux-2.6.35/drivers/usb/storage/unusual_devs.h @@ -481,6 +481,13 @@ US_SC_DEVICE, US_PR_DEVICE, NULL, US_FL_MAX_SECTORS_64), +/* Reported by Vitaly Kuznetsov */ +UNUSUAL_DEV( 0x04e8, 0x5122, 0x0000, 0x9999, + "Samsung", + "YP-CP3", + US_SC_DEVICE, US_PR_DEVICE, NULL, + US_FL_MAX_SECTORS_64 | US_FL_BULK_IGNORE_TAG), + /* Entry and supporting patch by Theodore Kilgore . * Device uses standards-violating 32-byte Bulk Command Block Wrappers and * reports itself as "Proprietary SCSI Bulk." Cf. device entry 0x084d:0x0011. @@ -1136,6 +1143,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/storage/sierra_ms.c +++ linux-2.6.35/drivers/usb/storage/sierra_ms.c @@ -121,7 +121,7 @@ } return result; } -static DEVICE_ATTR(truinst, S_IWUGO | S_IRUGO, show_truinst, NULL); +static DEVICE_ATTR(truinst, S_IRUGO, show_truinst, NULL); int sierra_ms_init(struct us_data *us) { --- 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/trancevibrator.c +++ linux-2.6.35/drivers/usb/misc/trancevibrator.c @@ -86,7 +86,7 @@ return count; } -static DEVICE_ATTR(speed, S_IWUGO | S_IRUGO, show_speed, set_speed); +static DEVICE_ATTR(speed, S_IRUGO | S_IWUSR, show_speed, set_speed); static int tv_probe(struct usb_interface *interface, const struct usb_device_id *id) --- linux-2.6.35.orig/drivers/usb/misc/usbsevseg.c +++ linux-2.6.35/drivers/usb/misc/usbsevseg.c @@ -192,7 +192,7 @@ \ return count; \ } \ -static DEVICE_ATTR(name, S_IWUGO | S_IRUGO, show_attr_##name, set_attr_##name); +static DEVICE_ATTR(name, S_IRUGO | S_IWUSR, show_attr_##name, set_attr_##name); static ssize_t show_attr_text(struct device *dev, struct device_attribute *attr, char *buf) @@ -223,7 +223,7 @@ return count; } -static DEVICE_ATTR(text, S_IWUGO | S_IRUGO, show_attr_text, set_attr_text); +static DEVICE_ATTR(text, S_IRUGO | S_IWUSR, show_attr_text, set_attr_text); static ssize_t show_attr_decimals(struct device *dev, struct device_attribute *attr, char *buf) @@ -272,8 +272,7 @@ return count; } -static DEVICE_ATTR(decimals, S_IWUGO | S_IRUGO, - show_attr_decimals, set_attr_decimals); +static DEVICE_ATTR(decimals, S_IRUGO | S_IWUSR, show_attr_decimals, set_attr_decimals); static ssize_t show_attr_textmode(struct device *dev, struct device_attribute *attr, char *buf) @@ -319,8 +318,7 @@ return -EINVAL; } -static DEVICE_ATTR(textmode, S_IWUGO | S_IRUGO, - show_attr_textmode, set_attr_textmode); +static DEVICE_ATTR(textmode, S_IRUGO | S_IWUSR, show_attr_textmode, set_attr_textmode); MYDEV_ATTR_SIMPLE_UNSIGNED(powered, update_display_powered); --- 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/misc/usbled.c +++ linux-2.6.35/drivers/usb/misc/usbled.c @@ -94,7 +94,7 @@ change_color(led); \ return count; \ } \ -static DEVICE_ATTR(value, S_IWUGO | S_IRUGO, show_##value, set_##value); +static DEVICE_ATTR(value, S_IRUGO | S_IWUSR, show_##value, set_##value); show_set(blue); show_set(red); show_set(green); --- linux-2.6.35.orig/drivers/usb/misc/iowarrior.c +++ linux-2.6.35/drivers/usb/misc/iowarrior.c @@ -552,6 +552,7 @@ /* needed for power consumption */ struct usb_config_descriptor *cfg_descriptor = &dev->udev->actconfig->desc; + memset(&info, 0, sizeof(info)); /* directly from the descriptor */ info.vendor = le16_to_cpu(dev->udev->descriptor.idVendor); info.product = dev->product_id; --- linux-2.6.35.orig/drivers/usb/misc/cypress_cy7c63.c +++ linux-2.6.35/drivers/usb/misc/cypress_cy7c63.c @@ -196,11 +196,9 @@ return read_port(dev, attr, buf, 1, CYPRESS_READ_PORT_ID1); } -static DEVICE_ATTR(port0, S_IWUGO | S_IRUGO, - get_port0_handler, set_port0_handler); +static DEVICE_ATTR(port0, S_IRUGO | S_IWUSR, get_port0_handler, set_port0_handler); -static DEVICE_ATTR(port1, S_IWUGO | S_IRUGO, - get_port1_handler, set_port1_handler); +static DEVICE_ATTR(port1, S_IRUGO | S_IWUSR, get_port1_handler, set_port1_handler); static int cypress_probe(struct usb_interface *interface, --- linux-2.6.35.orig/drivers/usb/misc/uss720.c +++ linux-2.6.35/drivers/usb/misc/uss720.c @@ -3,7 +3,7 @@ /* * uss720.c -- USS720 USB Parport Cable. * - * Copyright (C) 1999, 2005 + * Copyright (C) 1999, 2005, 2010 * Thomas Sailer (t.sailer@alumni.ethz.ch) * * This program is free software; you can redistribute it and/or modify @@ -776,6 +776,8 @@ { USB_DEVICE(0x0557, 0x2001) }, { USB_DEVICE(0x0729, 0x1284) }, { USB_DEVICE(0x1293, 0x0002) }, + { USB_DEVICE(0x1293, 0x0002) }, + { USB_DEVICE(0x050d, 0x0002) }, { } /* Terminating entry */ }; --- linux-2.6.35.orig/drivers/usb/misc/sisusbvga/sisusb.c +++ linux-2.6.35/drivers/usb/misc/sisusbvga/sisusb.c @@ -3008,6 +3008,7 @@ #else x.sisusb_conactive = 0; #endif + memset(x.sisusb_reserved, 0, sizeof(x.sisusb_reserved)); if (copy_to_user((void __user *)arg, &x, sizeof(x))) retval = -EFAULT; --- linux-2.6.35.orig/drivers/usb/serial/mct_u232.c +++ linux-2.6.35/drivers/usb/serial/mct_u232.c @@ -549,9 +549,12 @@ { dbg("%s port %d", __func__, port->number); - usb_serial_generic_close(port); - if (port->serial->dev) + if (port->serial->dev) { + /* shutdown our urbs */ + usb_kill_urb(port->write_urb); + usb_kill_urb(port->read_urb); usb_kill_urb(port->interrupt_in_urb); + } } /* mct_u232_close */ --- linux-2.6.35.orig/drivers/usb/serial/visor.c +++ linux-2.6.35/drivers/usb/serial/visor.c @@ -606,6 +606,10 @@ static int clie_5_attach(struct usb_serial *serial) { + struct usb_serial_port *port; + unsigned int pipe; + int j; + dbg("%s", __func__); /* TH55 registers 2 ports. @@ -621,9 +625,14 @@ return -1; /* port 0 now uses the modified endpoint Address */ - serial->port[0]->bulk_out_endpointAddress = + port = serial->port[0]; + port->bulk_out_endpointAddress = serial->port[1]->bulk_out_endpointAddress; + pipe = usb_sndbulkpipe(serial->dev, port->bulk_out_endpointAddress); + for (j = 0; j < ARRAY_SIZE(port->write_urbs); ++j) + port->write_urbs[j]->pipe = pipe; + return 0; } --- 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 @@ -54,6 +54,7 @@ static int debug; static const struct usb_device_id id_table[] = { + { USB_DEVICE(0x045B, 0x0053) }, /* Renesas RX610 RX-Stick */ { USB_DEVICE(0x0471, 0x066A) }, /* AKTAKOM ACE-1001 cable */ { USB_DEVICE(0x0489, 0xE000) }, /* Pirelli Broadband S.p.A, DP-L10 SIP/GSM Mobile */ { USB_DEVICE(0x0745, 0x1000) }, /* CipherLab USB CCD Barcode Scanner 1000 */ @@ -88,6 +89,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 +111,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,9 +125,14 @@ { 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 */ + { USB_DEVICE(0x1BE3, 0x07A6) }, /* WAGO 750-923 USB Service Cable */ { USB_DEVICE(0x413C, 0x9500) }, /* DW700 GPS USB interface */ { } /* Terminating Entry */ }; @@ -218,8 +226,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/opticon.c +++ linux-2.6.35/drivers/usb/serial/opticon.c @@ -96,8 +96,8 @@ /* real data, send it to the tty layer */ tty = tty_port_tty_get(&port->port); if (tty) { - tty_insert_flip_string(tty, data, - data_length); + tty_insert_flip_string(tty, data + 2, + data_length); tty_flip_buffer_push(tty); tty_kref_put(tty); } @@ -130,7 +130,7 @@ priv->bulk_address), priv->bulk_in_buffer, priv->buffer_size, opticon_bulk_callback, priv); - result = usb_submit_urb(port->read_urb, GFP_ATOMIC); + result = usb_submit_urb(priv->bulk_read_urb, GFP_ATOMIC); if (result) dev_err(&port->dev, "%s - failed resubmitting read urb, error %d\n", --- 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 */ @@ -56,6 +61,7 @@ #define FTDI_OPENDCC_SNIFFER_PID 0xBFD9 #define FTDI_OPENDCC_THROTTLE_PID 0xBFDA #define FTDI_OPENDCC_GATEWAY_PID 0xBFDB +#define FTDI_OPENDCC_GBM_PID 0xBFDC /* * RR-CirKits LocoBuffer USB (http://www.rr-cirkits.com) @@ -105,6 +111,12 @@ /* Propox devices */ #define FTDI_PROPOX_JTAGCABLEII_PID 0xD738 +/* Lenz LI-USB Computer Interface. */ +#define FTDI_LENZ_LIUSB_PID 0xD780 + +/* Vardaan Enterprises Serial Interface VEUSB422R3 */ +#define FTDI_VARDAAN_PID 0xF070 + /* * Xsens Technologies BV products (http://www.xsens.com). */ @@ -127,6 +139,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 */ @@ -700,6 +724,7 @@ */ #define RTSYSTEMS_VID 0x2100 /* Vendor ID */ #define RTSYSTEMS_SERIAL_VX7_PID 0x9e52 /* Serial converter for VX-7 Radios using FT232RL */ +#define RTSYSTEMS_CT29B_PID 0x9e54 /* CT29B Radio Cable */ /* * Bayer Ascensia Contour blood glucose meter USB-converter cable. @@ -984,6 +1009,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 */ @@ -996,9 +1027,34 @@ */ #define PAPOUCH_VID 0x5050 /* Vendor ID */ +#define PAPOUCH_SB485_PID 0x0100 /* Papouch SB485 USB-485/422 Converter */ +#define PAPOUCH_AP485_PID 0x0101 /* AP485 USB-RS485 Converter */ +#define PAPOUCH_SB422_PID 0x0102 /* Papouch SB422 USB-RS422 Converter */ +#define PAPOUCH_SB485_2_PID 0x0103 /* Papouch SB485 USB-485/422 Converter */ +#define PAPOUCH_AP485_2_PID 0x0104 /* AP485 USB-RS485 Converter */ +#define PAPOUCH_SB422_2_PID 0x0105 /* Papouch SB422 USB-RS422 Converter */ +#define PAPOUCH_SB485S_PID 0x0106 /* Papouch SB485S USB-485/422 Converter */ +#define PAPOUCH_SB485C_PID 0x0107 /* Papouch SB485C USB-485/422 Converter */ +#define PAPOUCH_LEC_PID 0x0300 /* LEC USB Converter */ +#define PAPOUCH_SB232_PID 0x0301 /* Papouch SB232 USB-RS232 Converter */ #define PAPOUCH_TMU_PID 0x0400 /* TMU USB Thermometer */ -#define PAPOUCH_QUIDO4x4_PID 0x0900 /* Quido 4/4 Module */ +#define PAPOUCH_IRAMP_PID 0x0500 /* Papouch IRAmp Duplex */ +#define PAPOUCH_DRAK5_PID 0x0700 /* Papouch DRAK5 */ +#define PAPOUCH_QUIDO8x8_PID 0x0800 /* Papouch Quido 8/8 Module */ +#define PAPOUCH_QUIDO4x4_PID 0x0900 /* Papouch Quido 4/4 Module */ +#define PAPOUCH_QUIDO2x2_PID 0x0a00 /* Papouch Quido 2/2 Module */ +#define PAPOUCH_QUIDO10x1_PID 0x0b00 /* Papouch Quido 10/1 Module */ +#define PAPOUCH_QUIDO30x3_PID 0x0c00 /* Papouch Quido 30/3 Module */ +#define PAPOUCH_QUIDO60x3_PID 0x0d00 /* Papouch Quido 60(100)/3 Module */ +#define PAPOUCH_QUIDO2x16_PID 0x0e00 /* Papouch Quido 2/16 Module */ +#define PAPOUCH_QUIDO3x32_PID 0x0f00 /* Papouch Quido 3/32 Module */ +#define PAPOUCH_DRAK6_PID 0x1000 /* Papouch DRAK6 */ +#define PAPOUCH_UPSUSB_PID 0x8000 /* Papouch UPS-USB adapter */ +#define PAPOUCH_MU_PID 0x8001 /* MU controller */ +#define PAPOUCH_SIMUKEY_PID 0x8002 /* Papouch SimuKey */ #define PAPOUCH_AD4USB_PID 0x8003 /* AD4USB Measurement Module */ +#define PAPOUCH_GMUX_PID 0x8004 /* Papouch GOLIATH MUX */ +#define PAPOUCH_GMSR_PID 0x8005 /* Papouch GOLIATH MSR */ /* * Marvell SheevaPlug @@ -1025,6 +1081,11 @@ #define MJSG_HD_RADIO_PID 0x937C /* + * D.O.Tec products (http://www.directout.eu) + */ +#define FTDI_DOTEC_PID 0x9868 + +/* * Xverve Signalyzer tools (http://www.signalyzer.com/) */ #define XVERVE_SIGNALYZER_ST_PID 0xBCA0 @@ -1032,3 +1093,26 @@ #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 + + +/* + * Accesio USB Data Acquisition products (http://www.accesio.com/) + */ +#define ACCESIO_COM4SM_PID 0xD578 + +/* www.sciencescope.co.uk educational dataloggers */ +#define FTDI_SCIENCESCOPE_LOGBOOKML_PID 0xFF18 +#define FTDI_SCIENCESCOPE_LS_LOGBOOK_PID 0xFF1C +#define FTDI_SCIENCESCOPE_HS_LOGBOOK_PID 0xFF1D + +/* + * Milkymist One JTAG/Serial + */ +#define QIHARDWARE_VID 0x20B7 +#define MILKYMISTONE_JTAGSERIAL_PID 0x0713 + --- 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,7 +487,10 @@ { 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(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E14AC) }, + { 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_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E14AC, 0xff, 0xff, 0xff) }, { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_9508) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, /* Novatel Merlin V640/XV620 */ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V620) }, /* Novatel Merlin V620/S620 */ @@ -585,6 +593,7 @@ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0011, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0012, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0013, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0014, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0016, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0017, 0xff, 0xff, 0xff) }, @@ -596,38 +605,52 @@ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0023, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0024, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0025, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0026, 0xff, 0xff, 0xff) }, + /* { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0026, 0xff, 0xff, 0xff) }, */ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0028, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0029, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0030, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF626, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0032, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0033, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0034, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0037, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0038, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0039, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0040, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0042, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0043, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0044, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0048, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0049, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0050, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0051, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0052, 0xff, 0xff, 0xff) }, + /* { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0053, 0xff, 0xff, 0xff) }, */ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0054, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0055, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0056, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0057, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0058, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0059, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0061, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0062, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0063, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0064, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0065, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0066, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0067, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0069, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0070, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0076, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0077, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0078, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0079, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0082, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0083, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0086, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2002, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2003, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0087, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0104, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0105, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0106, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0108, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0113, 0xff, 0xff, 0xff) }, @@ -843,6 +866,8 @@ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0073, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0130, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0141, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2002, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2003, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC8710, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC2726, 0xff, 0xff, 0xff) }, @@ -885,10 +910,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 +1041,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) }, @@ -174,9 +177,11 @@ { USB_DEVICE(FTDI_VID, FTDI_OPENDCC_SNIFFER_PID) }, { USB_DEVICE(FTDI_VID, FTDI_OPENDCC_THROTTLE_PID) }, { USB_DEVICE(FTDI_VID, FTDI_OPENDCC_GATEWAY_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_OPENDCC_GBM_PID) }, { 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) }, @@ -196,6 +201,7 @@ { USB_DEVICE(FTDI_VID, FTDI_MTXORB_5_PID) }, { USB_DEVICE(FTDI_VID, FTDI_MTXORB_6_PID) }, { USB_DEVICE(FTDI_VID, FTDI_R2000KU_TRUE_RNG) }, + { USB_DEVICE(FTDI_VID, FTDI_VARDAAN_PID) }, { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_0100_PID) }, { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_0101_PID) }, { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_0102_PID) }, @@ -670,7 +676,6 @@ { USB_DEVICE(FTDI_VID, FTDI_RRCIRKITS_LOCOBUFFER_PID) }, { USB_DEVICE(FTDI_VID, FTDI_ASK_RDR400_PID) }, { USB_DEVICE(ICOM_ID1_VID, ICOM_ID1_PID) }, - { USB_DEVICE(PAPOUCH_VID, PAPOUCH_TMU_PID) }, { USB_DEVICE(FTDI_VID, FTDI_ACG_HFDUAL_PID) }, { USB_DEVICE(FTDI_VID, FTDI_YEI_SERVOCENTER31_PID) }, { USB_DEVICE(FTDI_VID, FTDI_THORLABS_PID) }, @@ -692,6 +697,7 @@ .driver_info = (kernel_ulong_t)&ftdi_NDI_device_quirk }, { USB_DEVICE(TELLDUS_VID, TELLDUS_TELLSTICK_PID) }, { USB_DEVICE(RTSYSTEMS_VID, RTSYSTEMS_SERIAL_VX7_PID) }, + { USB_DEVICE(RTSYSTEMS_VID, RTSYSTEMS_CT29B_PID) }, { USB_DEVICE(FTDI_VID, FTDI_MAXSTREAM_PID) }, { USB_DEVICE(FTDI_VID, FTDI_PHI_FISCO_PID) }, { USB_DEVICE(TML_VID, TML_USB_SERIAL_PID) }, @@ -711,8 +717,37 @@ .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, { USB_DEVICE(RATOC_VENDOR_ID, RATOC_PRODUCT_ID_USB60F) }, { USB_DEVICE(FTDI_VID, FTDI_REU_TINY_PID) }, + + /* Papouch devices based on FTDI chip */ + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_SB485_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_AP485_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_SB422_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_SB485_2_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_AP485_2_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_SB422_2_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_SB485S_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_SB485C_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_LEC_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_SB232_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_TMU_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_IRAMP_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_DRAK5_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_QUIDO8x8_PID) }, { USB_DEVICE(PAPOUCH_VID, PAPOUCH_QUIDO4x4_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_QUIDO2x2_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_QUIDO10x1_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_QUIDO30x3_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_QUIDO60x3_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_QUIDO2x16_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_QUIDO3x32_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_DRAK6_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_UPSUSB_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_MU_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_SIMUKEY_PID) }, { USB_DEVICE(PAPOUCH_VID, PAPOUCH_AD4USB_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_GMUX_PID) }, + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_GMSR_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_DOMINTELL_DGQG_PID) }, { USB_DEVICE(FTDI_VID, FTDI_DOMINTELL_DUSB_PID) }, { USB_DEVICE(ALTI2_VID, ALTI2_N3_PID) }, @@ -746,6 +781,24 @@ .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(FTDI_VID, ACCESIO_COM4SM_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) }, + { USB_DEVICE(FTDI_VID, FTDI_SCIENCESCOPE_LOGBOOKML_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_SCIENCESCOPE_LS_LOGBOOK_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_SCIENCESCOPE_HS_LOGBOOK_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_DOTEC_PID) }, + { USB_DEVICE(QIHARDWARE_VID, MILKYMISTONE_JTAGSERIAL_PID), + .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, { }, /* Optional parameter entry */ { } /* Terminating entry */ }; @@ -1372,7 +1425,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); } @@ -2013,8 +2066,6 @@ "urb failed to set to rts/cts flow control\n"); } - /* raise DTR/RTS */ - set_mctrl(port, TIOCM_DTR | TIOCM_RTS); } else { /* * Xon/Xoff code @@ -2062,8 +2113,6 @@ } } - /* lower DTR/RTS */ - clear_mctrl(port, TIOCM_DTR | TIOCM_RTS); } return; } --- 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/serial/usb-serial.c +++ linux-2.6.35/drivers/usb/serial/usb-serial.c @@ -52,6 +52,7 @@ .suspend = usb_serial_suspend, .resume = usb_serial_resume, .no_dynamic_id = 1, + .supports_autosuspend = 1, }; /* There is no MODULE_DEVICE_TABLE for usbserial.c. Instead @@ -519,6 +520,18 @@ return -EINVAL; } +static int serial_get_icount(struct tty_struct *tty, + struct serial_icounter_struct *icount) +{ + struct usb_serial_port *port = tty->driver_data; + + dbg("%s - port %d", __func__, port->number); + + if (port->serial->type->get_icount) + return port->serial->type->get_icount(tty, icount); + return -EINVAL; +} + /* * We would be calling tty_wakeup here, but unfortunately some line * disciplines have an annoying habit of calling tty->write from @@ -1208,6 +1221,7 @@ .chars_in_buffer = serial_chars_in_buffer, .tiocmget = serial_tiocmget, .tiocmset = serial_tiocmset, + .get_icount = serial_get_icount, .cleanup = serial_cleanup, .install = serial_install, .proc_fops = &serial_proc_fops, @@ -1344,6 +1358,8 @@ return -ENODEV; fixup_generic(driver); + if (driver->usb_driver) + driver->usb_driver->supports_autosuspend = 1; if (!driver->description) driver->description = driver->driver.name; --- linux-2.6.35.orig/drivers/usb/gadget/composite.c +++ linux-2.6.35/drivers/usb/gadget/composite.c @@ -838,7 +838,8 @@ */ switch (ctrl->bRequestType & USB_RECIP_MASK) { case USB_RECIP_INTERFACE: - f = cdev->config->interface[intf]; + if (cdev->config) + f = cdev->config->interface[intf]; break; case USB_RECIP_ENDPOINT: @@ -1017,14 +1018,6 @@ */ usb_ep_autoconfig_reset(cdev->gadget); - /* standardized runtime overrides for device ID data */ - if (idVendor) - cdev->desc.idVendor = cpu_to_le16(idVendor); - if (idProduct) - cdev->desc.idProduct = cpu_to_le16(idProduct); - if (bcdDevice) - cdev->desc.bcdDevice = cpu_to_le16(bcdDevice); - /* composite gadget needs to assign strings for whole device (like * serial number), register function drivers, potentially update * power state and consumption, etc @@ -1036,6 +1029,14 @@ cdev->desc = *composite->dev; cdev->desc.bMaxPacketSize0 = gadget->ep0->maxpacket; + /* standardized runtime overrides for device ID data */ + if (idVendor) + cdev->desc.idVendor = cpu_to_le16(idVendor); + if (idProduct) + cdev->desc.idProduct = cpu_to_le16(idProduct); + if (bcdDevice) + cdev->desc.bcdDevice = cpu_to_le16(bcdDevice); + /* strings can't be assigned before bind() allocates the * releavnt identifiers */ --- 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/gadget/multi.c +++ linux-2.6.35/drivers/usb/gadget/multi.c @@ -39,8 +39,8 @@ /*-------------------------------------------------------------------------*/ -#define MULTI_VENDOR_NUM 0x0525 /* XXX NetChip */ -#define MULTI_PRODUCT_NUM 0xa4ab /* XXX */ +#define MULTI_VENDOR_NUM 0x1d6b /* Linux Foundation */ +#define MULTI_PRODUCT_NUM 0x0104 /* Multifunction Composite Gadget */ /*-------------------------------------------------------------------------*/ --- linux-2.6.35.orig/drivers/usb/gadget/atmel_usba_udc.c +++ linux-2.6.35/drivers/usb/gadget/atmel_usba_udc.c @@ -2014,6 +2014,9 @@ } else { disable_irq(gpio_to_irq(udc->vbus_pin)); } + } else { + /* gpio_request fail so use -EINVAL for gpio_is_valid */ + udc->vbus_pin = -EINVAL; } } --- linux-2.6.35.orig/drivers/usb/gadget/g_ffs.c +++ linux-2.6.35/drivers/usb/gadget/g_ffs.c @@ -52,8 +52,8 @@ MODULE_LICENSE("GPL"); -static unsigned short gfs_vendor_id = 0x0525; /* XXX NetChip */ -static unsigned short gfs_product_id = 0xa4ac; /* XXX */ +static unsigned short gfs_vendor_id = 0x1d6b; /* Linux Foundation */ +static unsigned short gfs_product_id = 0x0105; /* FunctionFS Gadget */ static struct usb_device_descriptor gfs_dev_desc = { .bLength = sizeof gfs_dev_desc, --- linux-2.6.35.orig/drivers/usb/gadget/f_acm.c +++ linux-2.6.35/drivers/usb/gadget/f_acm.c @@ -111,7 +111,7 @@ .bInterfaceCount = 2, // control + data .bFunctionClass = USB_CLASS_COMM, .bFunctionSubClass = USB_CDC_SUBCLASS_ACM, - .bFunctionProtocol = USB_CDC_PROTO_NONE, + .bFunctionProtocol = USB_CDC_ACM_PROTO_AT_V25TER, /* .iFunction = DYNAMIC */ }; --- linux-2.6.35.orig/drivers/usb/atm/ueagle-atm.c +++ linux-2.6.35/drivers/usb/atm/ueagle-atm.c @@ -2291,7 +2291,7 @@ return ret; } -static DEVICE_ATTR(stat_status, S_IWUGO | S_IRUGO, read_status, reboot); +static DEVICE_ATTR(stat_status, S_IWUSR | S_IRUGO, read_status, reboot); static ssize_t read_human_status(struct device *dev, struct device_attribute *attr, char *buf) @@ -2354,8 +2354,7 @@ return ret; } -static DEVICE_ATTR(stat_human_status, S_IWUGO | S_IRUGO, - read_human_status, NULL); +static DEVICE_ATTR(stat_human_status, S_IRUGO, read_human_status, NULL); static ssize_t read_delin(struct device *dev, struct device_attribute *attr, char *buf) @@ -2387,7 +2386,7 @@ return ret; } -static DEVICE_ATTR(stat_delin, S_IWUGO | S_IRUGO, read_delin, NULL); +static DEVICE_ATTR(stat_delin, S_IRUGO, read_delin, NULL); #define UEA_ATTR(name, reset) \ \ --- 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 @@ -1140,13 +1140,6 @@ { int i; - dev_dbg(&dev->dev, "%s nuking %s URBs\n", __func__, - skip_ep0 ? "non-ep0" : "all"); - for (i = skip_ep0; i < 16; ++i) { - usb_disable_endpoint(dev, i, true); - usb_disable_endpoint(dev, i + USB_DIR_IN, true); - } - /* getting rid of interfaces will disconnect * any drivers bound to them (a key side effect) */ @@ -1176,6 +1169,13 @@ if (dev->state == USB_STATE_CONFIGURED) usb_set_device_state(dev, USB_STATE_ADDRESS); } + + dev_dbg(&dev->dev, "%s nuking %s URBs\n", __func__, + skip_ep0 ? "non-ep0" : "all"); + for (i = skip_ep0; i < 16; ++i) { + usb_disable_endpoint(dev, i, true); + usb_disable_endpoint(dev, i + USB_DIR_IN, true); + } } /** @@ -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); @@ -1802,6 +1802,7 @@ intf->dev.groups = usb_interface_groups; intf->dev.dma_mask = dev->dev.dma_mask; INIT_WORK(&intf->reset_ws, __usb_queue_reset_device); + intf->minor = -1; device_initialize(&intf->dev); dev_set_name(&intf->dev, "%d-%s:%d.%d", dev->bus->busnum, dev->devpath, --- linux-2.6.35.orig/drivers/usb/core/file.c +++ linux-2.6.35/drivers/usb/core/file.c @@ -159,9 +159,9 @@ int usb_register_dev(struct usb_interface *intf, struct usb_class_driver *class_driver) { - int retval = -EINVAL; + int retval; int minor_base = class_driver->minor_base; - int minor = 0; + int minor; char name[20]; char *temp; @@ -173,12 +173,17 @@ */ minor_base = 0; #endif - intf->minor = -1; - - dbg ("looking for a minor, starting at %d", minor_base); if (class_driver->fops == NULL) - goto exit; + return -EINVAL; + if (intf->minor >= 0) + return -EADDRINUSE; + + retval = init_usb_class(); + if (retval) + return retval; + + dev_dbg(&intf->dev, "looking for a minor, starting at %d", minor_base); down_write(&minor_rwsem); for (minor = minor_base; minor < MAX_USB_MINORS; ++minor) { @@ -186,20 +191,12 @@ continue; usb_minors[minor] = class_driver->fops; - - retval = 0; + intf->minor = minor; break; } up_write(&minor_rwsem); - - if (retval) - goto exit; - - retval = init_usb_class(); - if (retval) - goto exit; - - intf->minor = minor; + if (intf->minor < 0) + return -EXFULL; /* create a usb class device for this usb interface */ snprintf(name, sizeof(name), class_driver->name, minor - minor_base); @@ -213,11 +210,11 @@ "%s", temp); if (IS_ERR(intf->usb_dev)) { down_write(&minor_rwsem); - usb_minors[intf->minor] = NULL; + usb_minors[minor] = NULL; + intf->minor = -1; up_write(&minor_rwsem); retval = PTR_ERR(intf->usb_dev); } -exit: return retval; } EXPORT_SYMBOL_GPL(usb_register_dev); --- 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/devio.c +++ linux-2.6.35/drivers/usb/core/devio.c @@ -965,10 +965,11 @@ static int proc_connectinfo(struct dev_state *ps, void __user *arg) { - struct usbdevfs_connectinfo ci; + struct usbdevfs_connectinfo ci = { + .devnum = ps->dev->devnum, + .slow = ps->dev->speed == USB_SPEED_LOW + }; - ci.devnum = ps->dev->devnum; - ci.slow = ps->dev->speed == USB_SPEED_LOW; if (copy_to_user(arg, &ci, sizeof(ci))) return -EFAULT; return 0; --- 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; } @@ -2859,13 +2881,16 @@ else i = udev->descriptor.bMaxPacketSize0; if (le16_to_cpu(udev->ep0.desc.wMaxPacketSize) != i) { - if (udev->speed != USB_SPEED_FULL || + if (udev->speed == USB_SPEED_LOW || !(i == 8 || i == 16 || i == 32 || i == 64)) { - dev_err(&udev->dev, "ep0 maxpacket = %d\n", i); + dev_err(&udev->dev, "Invalid ep0 maxpacket: %d\n", i); retval = -EMSGSIZE; goto fail; } - dev_dbg(&udev->dev, "ep0 maxpacket = %d\n", i); + if (udev->speed == USB_SPEED_FULL) + dev_dbg(&udev->dev, "ep0 maxpacket = %d\n", i); + else + dev_warn(&udev->dev, "Using ep0 maxpacket: %d\n", i); udev->ep0.desc.wMaxPacketSize = cpu_to_le16(i); usb_ep0_reinit(udev); } @@ -3111,6 +3136,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/xhci.c +++ linux-2.6.35/drivers/usb/host/xhci.c @@ -1224,6 +1224,15 @@ cmd_completion = command->completion; cmd_status = &command->status; command->command_trb = xhci->cmd_ring->enqueue; + + /* Enqueue pointer can be left pointing to the link TRB, + * we must handle that + */ + if ((command->command_trb->link.control & TRB_TYPE_BITMASK) + == TRB_TYPE(TRB_LINK)) + command->command_trb = + xhci->cmd_ring->enq_seg->next->trbs; + list_add_tail(&command->cmd_list, &virt_dev->cmd_list); } else { in_ctx = virt_dev->in_ctx; @@ -1933,6 +1942,15 @@ /* Attempt to submit the Reset Device command to the command ring */ spin_lock_irqsave(&xhci->lock, flags); reset_device_cmd->command_trb = xhci->cmd_ring->enqueue; + + /* Enqueue pointer can be left pointing to the link TRB, + * we must handle that + */ + if ((reset_device_cmd->command_trb->link.control & TRB_TYPE_BITMASK) + == TRB_TYPE(TRB_LINK)) + reset_device_cmd->command_trb = + xhci->cmd_ring->enq_seg->next->trbs; + list_add_tail(&reset_device_cmd->cmd_list, &virt_dev->cmd_list); ret = xhci_queue_reset_device(xhci, slot_id); if (ret) { --- 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/ehci-hcd.c +++ linux-2.6.35/drivers/usb/host/ehci-hcd.c @@ -1009,10 +1009,11 @@ tmp && tmp != qh; tmp = tmp->qh_next.qh) continue; - /* periodic qh self-unlinks on empty */ - if (!tmp) - goto nogood; - unlink_async (ehci, qh); + /* periodic qh self-unlinks on empty, and a COMPLETING qh + * may already be unlinked. + */ + if (tmp) + unlink_async(ehci, qh); /* FALL THROUGH */ case QH_STATE_UNLINK: /* wait for hw to finish? */ case QH_STATE_UNLINK_WAIT: @@ -1029,7 +1030,6 @@ } /* else FALL THROUGH */ default: -nogood: /* caller was supposed to have unlinked any requests; * that's not our job. just leak this memory. */ --- linux-2.6.35.orig/drivers/usb/host/xhci-hub.c +++ linux-2.6.35/drivers/usb/host/xhci-hub.c @@ -132,6 +132,13 @@ static void xhci_disable_port(struct xhci_hcd *xhci, u16 wIndex, u32 __iomem *addr, u32 port_status) { + /* Don't allow the USB core to disable SuperSpeed ports. */ + if (xhci->port_array[wIndex] == 0x03) { + xhci_dbg(xhci, "Ignoring request to disable " + "SuperSpeed port.\n"); + return; + } + /* Write 1 to disable the port */ xhci_writel(xhci, port_status | PORT_PE, addr); port_status = xhci_readl(xhci, addr); --- linux-2.6.35.orig/drivers/usb/host/r8a66597.h +++ linux-2.6.35/drivers/usb/host/r8a66597.h @@ -227,7 +227,7 @@ int odd = len & 0x0001; len = len / 2; - ioread16_rep(fifoaddr, buf, len); + iowrite16_rep(fifoaddr, buf, len); if (unlikely(odd)) { buf = &buf[len]; iowrite8((unsigned char)*buf, fifoaddr); --- linux-2.6.35.orig/drivers/usb/host/xhci-mem.c +++ linux-2.6.35/drivers/usb/host/xhci-mem.c @@ -1086,7 +1086,7 @@ if (udev->speed == USB_SPEED_SUPER) return ep->ss_ep_comp.wBytesPerInterval; - max_packet = ep->desc.wMaxPacketSize & 0x3ff; + max_packet = GET_MAX_PACKET(ep->desc.wMaxPacketSize); max_burst = (ep->desc.wMaxPacketSize & 0x1800) >> 11; /* A 0 in max burst means 1 transfer per ESIT */ return max_packet * (max_burst + 1); @@ -1165,7 +1165,7 @@ /* Fall through */ case USB_SPEED_FULL: case USB_SPEED_LOW: - max_packet = ep->desc.wMaxPacketSize & 0x3ff; + max_packet = GET_MAX_PACKET(ep->desc.wMaxPacketSize); ep_ctx->ep_info2 |= MAX_PACKET(max_packet); break; default: @@ -1457,6 +1457,13 @@ xhci->dcbaa = NULL; scratchpad_free(xhci); + + xhci->num_usb2_ports = 0; + xhci->num_usb3_ports = 0; + kfree(xhci->usb2_ports); + kfree(xhci->usb3_ports); + kfree(xhci->port_array); + xhci->page_size = 0; xhci->page_shift = 0; } @@ -1617,6 +1624,166 @@ return 0; } +static void xhci_add_in_port(struct xhci_hcd *xhci, unsigned int num_ports, + u32 __iomem *addr, u8 major_revision) +{ + u32 temp, port_offset, port_count; + int i; + + if (major_revision > 0x03) { + xhci_warn(xhci, "Ignoring unknown port speed, " + "Ext Cap %p, revision = 0x%x\n", + addr, major_revision); + /* Ignoring port protocol we can't understand. FIXME */ + return; + } + + /* Port offset and count in the third dword, see section 7.2 */ + temp = xhci_readl(xhci, addr + 2); + port_offset = XHCI_EXT_PORT_OFF(temp); + port_count = XHCI_EXT_PORT_COUNT(temp); + xhci_dbg(xhci, "Ext Cap %p, port offset = %u, " + "count = %u, revision = 0x%x\n", + addr, port_offset, port_count, major_revision); + /* Port count includes the current port offset */ + if (port_offset == 0 || (port_offset + port_count - 1) > num_ports) + /* WTF? "Valid values are ‘1’ to MaxPorts" */ + return; + port_offset--; + for (i = port_offset; i < (port_offset + port_count); i++) { + /* Duplicate entry. Ignore the port if the revisions differ. */ + if (xhci->port_array[i] != 0) { + xhci_warn(xhci, "Duplicate port entry, Ext Cap %p," + " port %u\n", addr, i); + xhci_warn(xhci, "Port was marked as USB %u, " + "duplicated as USB %u\n", + xhci->port_array[i], major_revision); + /* Only adjust the roothub port counts if we haven't + * found a similar duplicate. + */ + if (xhci->port_array[i] != major_revision && + xhci->port_array[i] != (u8) -1) { + if (xhci->port_array[i] == 0x03) + xhci->num_usb3_ports--; + else + xhci->num_usb2_ports--; + xhci->port_array[i] = (u8) -1; + } + /* FIXME: Should we disable the port? */ + continue; + } + xhci->port_array[i] = major_revision; + if (major_revision == 0x03) + xhci->num_usb3_ports++; + else + xhci->num_usb2_ports++; + } + /* FIXME: Should we disable ports not in the Extended Capabilities? */ +} + +/* + * Scan the Extended Capabilities for the "Supported Protocol Capabilities" that + * specify what speeds each port is supposed to be. We can't count on the port + * speed bits in the PORTSC register being correct until a device is connected, + * but we need to set up the two fake roothubs with the correct number of USB + * 3.0 and USB 2.0 ports at host controller initialization time. + */ +static int xhci_setup_port_arrays(struct xhci_hcd *xhci, gfp_t flags) +{ + u32 __iomem *addr; + u32 offset; + unsigned int num_ports; + int i, port_index; + + addr = &xhci->cap_regs->hcc_params; + offset = XHCI_HCC_EXT_CAPS(xhci_readl(xhci, addr)); + if (offset == 0) { + xhci_err(xhci, "No Extended Capability registers, " + "unable to set up roothub.\n"); + return -ENODEV; + } + + num_ports = HCS_MAX_PORTS(xhci->hcs_params1); + xhci->port_array = kzalloc(sizeof(*xhci->port_array)*num_ports, flags); + if (!xhci->port_array) + return -ENOMEM; + + /* + * For whatever reason, the first capability offset is from the + * capability register base, not from the HCCPARAMS register. + * See section 5.3.6 for offset calculation. + */ + addr = &xhci->cap_regs->hc_capbase + offset; + while (1) { + u32 cap_id; + + cap_id = xhci_readl(xhci, addr); + if (XHCI_EXT_CAPS_ID(cap_id) == XHCI_EXT_CAPS_PROTOCOL) + xhci_add_in_port(xhci, num_ports, addr, + (u8) XHCI_EXT_PORT_MAJOR(cap_id)); + offset = XHCI_EXT_CAPS_NEXT(cap_id); + if (!offset || (xhci->num_usb2_ports + xhci->num_usb3_ports) + == num_ports) + break; + /* + * Once you're into the Extended Capabilities, the offset is + * always relative to the register holding the offset. + */ + addr += offset; + } + + if (xhci->num_usb2_ports == 0 && xhci->num_usb3_ports == 0) { + xhci_warn(xhci, "No ports on the roothubs?\n"); + return -ENODEV; + } + xhci_dbg(xhci, "Found %u USB 2.0 ports and %u USB 3.0 ports.\n", + xhci->num_usb2_ports, xhci->num_usb3_ports); + /* + * Note we could have all USB 3.0 ports, or all USB 2.0 ports. + * Not sure how the USB core will handle a hub with no ports... + */ + if (xhci->num_usb2_ports) { + xhci->usb2_ports = kmalloc(sizeof(*xhci->usb2_ports)* + xhci->num_usb2_ports, flags); + if (!xhci->usb2_ports) + return -ENOMEM; + + port_index = 0; + for (i = 0; i < num_ports; i++) { + if (xhci->port_array[i] == 0x03 || + xhci->port_array[i] == 0 || + xhci->port_array[i] == -1) + continue; + + xhci->usb2_ports[port_index] = + &xhci->op_regs->port_status_base + + NUM_PORT_REGS*i; + xhci_dbg(xhci, "USB 2.0 port at index %u, " + "addr = %p\n", i, + xhci->usb2_ports[port_index]); + port_index++; + } + } + if (xhci->num_usb3_ports) { + xhci->usb3_ports = kmalloc(sizeof(*xhci->usb3_ports)* + xhci->num_usb3_ports, flags); + if (!xhci->usb3_ports) + return -ENOMEM; + + port_index = 0; + for (i = 0; i < num_ports; i++) + if (xhci->port_array[i] == 0x03) { + xhci->usb3_ports[port_index] = + &xhci->op_regs->port_status_base + + NUM_PORT_REGS*i; + xhci_dbg(xhci, "USB 3.0 port at index %u, " + "addr = %p\n", i, + xhci->usb3_ports[port_index]); + port_index++; + } + } + return 0; +} int xhci_mem_init(struct xhci_hcd *xhci, gfp_t flags) { @@ -1797,6 +1964,8 @@ if (scratchpad_alloc(xhci, flags)) goto fail; + if (xhci_setup_port_arrays(xhci, flags)) + goto fail; return 0; --- 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/xhci.h +++ linux-2.6.35/drivers/usb/host/xhci.h @@ -448,6 +448,24 @@ /** + * struct xhci_protocol_caps + * @revision: major revision, minor revision, capability ID, + * and next capability pointer. + * @name_string: Four ASCII characters to say which spec this xHC + * follows, typically "USB ". + * @port_info: Port offset, count, and protocol-defined information. + */ +struct xhci_protocol_caps { + u32 revision; + u32 name_string; + u32 port_info; +}; + +#define XHCI_EXT_PORT_MAJOR(x) (((x) >> 24) & 0xff) +#define XHCI_EXT_PORT_OFF(x) ((x) & 0xff) +#define XHCI_EXT_PORT_COUNT(x) (((x) >> 8) & 0xff) + +/** * struct xhci_container_ctx * @type: Type of context. Used to calculated offsets to contained contexts. * @size: Size of the context data @@ -614,6 +632,11 @@ #define MAX_PACKET_MASK (0xffff << 16) #define MAX_PACKET_DECODED(p) (((p) >> 16) & 0xffff) +/* Get max packet size from ep desc. Bit 10..0 specify the max packet size. + * USB2.0 spec 9.6.6. + */ +#define GET_MAX_PACKET(p) ((p) & 0x7ff) + /* tx_info bitmasks */ #define AVG_TRB_LENGTH_FOR_EP(p) ((p) & 0xffff) #define MAX_ESIT_PAYLOAD_FOR_EP(p) (((p) & 0xffff) << 16) @@ -1182,6 +1205,15 @@ #define XHCI_LINK_TRB_QUIRK (1 << 0) #define XHCI_RESET_EP_QUIRK (1 << 1) #define XHCI_NEC_HOST (1 << 2) + + /* Is each xHCI roothub port a USB 3.0, USB 2.0, or USB 1.1 port? */ + u8 *port_array; + /* Array of pointers to USB 3.0 PORTSC registers */ + u32 __iomem **usb3_ports; + unsigned int num_usb3_ports; + /* Array of pointers to USB 2.0 PORTSC registers */ + u32 __iomem **usb2_ports; + unsigned int num_usb2_ports; }; /* For testing purposes */ --- 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/virtio_blk.c +++ linux-2.6.35/drivers/block/virtio_blk.c @@ -203,6 +203,7 @@ struct virtio_blk *vblk = disk->private_data; struct request *req; struct bio *bio; + int err; bio = bio_map_kern(vblk->disk->queue, id_str, VIRTIO_BLK_ID_BYTES, GFP_KERNEL); @@ -216,7 +217,10 @@ } req->cmd_type = REQ_TYPE_SPECIAL; - return blk_execute_rq(vblk->disk->queue, vblk->disk, req, false); + err = blk_execute_rq(vblk->disk->queue, vblk->disk, req, false); + blk_put_request(req); + + return err; } static int virtblk_ioctl(struct block_device *bdev, fmode_t mode, --- 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/ahci_platform.c +++ linux-2.6.35/drivers/ata/ahci_platform.c @@ -23,6 +23,10 @@ #include #include "ahci.h" +static struct scsi_host_template ahci_platform_sht = { + AHCI_SHT("ahci_platform"), +}; + static int __init ahci_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; @@ -140,7 +144,7 @@ ahci_print_info(host, "platform"); rc = ata_host_activate(host, irq, ahci_interrupt, IRQF_SHARED, - &ahci_sht); + &ahci_platform_sht); if (rc) goto err0; --- 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 @@ -72,6 +72,7 @@ AHCI_CMD_RESET = (1 << 8), AHCI_CMD_CLR_BUSY = (1 << 10), + RX_FIS_PIO_SETUP = 0x20, /* offset of PIO Setup FIS data */ RX_FIS_D2H_REG = 0x40, /* offset of D2H Register FIS data */ RX_FIS_SDB = 0x58, /* offset of SDB FIS data */ RX_FIS_UNK = 0x60, /* offset of Unknown FIS data */ @@ -261,6 +262,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 +287,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 { @@ -297,7 +313,17 @@ extern int ahci_ignore_sss; -extern struct scsi_host_template ahci_sht; +extern struct device_attribute *ahci_shost_attrs[]; +extern struct device_attribute *ahci_sdev_attrs[]; + +#define AHCI_SHT(drv_name) \ + ATA_NCQ_SHT(drv_name), \ + .can_queue = AHCI_MAX_CMDS - 1, \ + .sg_tablesize = AHCI_MAX_SG, \ + .dma_boundary = AHCI_DMA_BOUNDARY, \ + .shost_attrs = ahci_shost_attrs, \ + .sdev_attrs = ahci_sdev_attrs + extern struct ata_port_operations ahci_ops; void ahci_save_initial_config(struct device *dev, --- linux-2.6.35.orig/drivers/ata/libata-scsi.c +++ linux-2.6.35/drivers/ata/libata-scsi.c @@ -2577,8 +2577,11 @@ * * If door lock fails, always clear sdev->locked to * avoid this infinite loop. + * + * This may happen before SCSI scan is complete. Make + * sure qc->dev->sdev isn't NULL before dereferencing. */ - if (qc->cdb[0] == ALLOW_MEDIUM_REMOVAL) + if (qc->cdb[0] == ALLOW_MEDIUM_REMOVAL && qc->dev->sdev) qc->dev->sdev->locked = 0; qc->scsicmd->result = SAM_STAT_CHECK_CONDITION; --- 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); @@ -1512,11 +1515,10 @@ if (!(qc->dev->flags & ATA_DFLAG_CDB_INTR)) return ata_sff_idle_irq(ap); break; - case HSM_ST: - case HSM_ST_LAST: - break; - default: + case HSM_ST_IDLE: return ata_sff_idle_irq(ap); + default: + break; } /* check main status, clearing INTRQ if needed */ @@ -2735,10 +2737,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/ahci.c +++ linux-2.6.35/drivers/ata/ahci.c @@ -89,6 +89,10 @@ static int ahci_pci_device_resume(struct pci_dev *pdev); #endif +static struct scsi_host_template ahci_sht = { + AHCI_SHT("ahci"), +}; + static struct ata_port_operations ahci_vt8251_ops = { .inherits = &ahci_ops, .hardreset = ahci_vt8251_hardreset, --- 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,10 +132,16 @@ 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); -static struct device_attribute *ahci_shost_attrs[] = { +struct device_attribute *ahci_shost_attrs[] = { &dev_attr_link_power_management_policy, &dev_attr_em_message_type, &dev_attr_em_message, @@ -129,25 +149,21 @@ &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 }; +EXPORT_SYMBOL_GPL(ahci_shost_attrs); -static struct device_attribute *ahci_sdev_attrs[] = { +struct device_attribute *ahci_sdev_attrs[] = { &dev_attr_sw_activity, &dev_attr_unload_heads, NULL }; - -struct scsi_host_template ahci_sht = { - ATA_NCQ_SHT("ahci"), - .can_queue = AHCI_MAX_CMDS - 1, - .sg_tablesize = AHCI_MAX_SG, - .dma_boundary = AHCI_DMA_BOUNDARY, - .shost_attrs = ahci_shost_attrs, - .sdev_attrs = ahci_sdev_attrs, -}; -EXPORT_SYMBOL_GPL(ahci_sht); +EXPORT_SYMBOL_GPL(ahci_sdev_attrs); struct ata_port_operations ahci_ops = { .inherits = &sata_pmp_port_ops, @@ -734,9 +750,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 +1341,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 +1666,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 +1847,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))); } @@ -1832,12 +2010,24 @@ static bool ahci_qc_fill_rtf(struct ata_queued_cmd *qc) { struct ahci_port_priv *pp = qc->ap->private_data; - u8 *d2h_fis = pp->rx_fis + RX_FIS_D2H_REG; + u8 *rx_fis = pp->rx_fis; if (pp->fbs_enabled) - d2h_fis += qc->dev->link->pmp * AHCI_RX_FIS_SZ; + rx_fis += qc->dev->link->pmp * AHCI_RX_FIS_SZ; + + /* + * After a successful execution of an ATA PIO data-in command, + * the device doesn't send D2H Reg FIS to update the TF and + * the host should take TF and E_Status from the preceding PIO + * Setup FIS. + */ + if (qc->tf.protocol == ATA_PROT_PIO && qc->dma_dir == DMA_FROM_DEVICE && + !(qc->flags & ATA_QCFLAG_FAILED)) { + ata_tf_from_fis(rx_fis + RX_FIS_PIO_SETUP, &qc->result_tf); + qc->result_tf.command = (rx_fis + RX_FIS_PIO_SETUP)[15]; + } else + ata_tf_from_fis(rx_fis + RX_FIS_D2H_REG, &qc->result_tf); - ata_tf_from_fis(d2h_fis, &qc->result_tf); return true; } --- 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/ata/sata_via.c +++ linux-2.6.35/drivers/ata/sata_via.c @@ -538,7 +538,7 @@ return 0; } -static void svia_configure(struct pci_dev *pdev) +static void svia_configure(struct pci_dev *pdev, int board_id) { u8 tmp8; @@ -577,7 +577,7 @@ } /* - * vt6421 has problems talking to some drives. The following + * vt6420/1 has problems talking to some drives. The following * is the fix from Joseph Chan . * * When host issues HOLD, device may send up to 20DW of data @@ -596,8 +596,9 @@ * * https://bugzilla.kernel.org/show_bug.cgi?id=15173 * http://article.gmane.org/gmane.linux.ide/46352 + * http://thread.gmane.org/gmane.linux.kernel/1062139 */ - if (pdev->device == 0x3249) { + if (board_id == vt6420 || board_id == vt6421) { pci_read_config_byte(pdev, 0x52, &tmp8); tmp8 |= 1 << 2; pci_write_config_byte(pdev, 0x52, tmp8); @@ -652,7 +653,7 @@ if (rc) return rc; - svia_configure(pdev); + svia_configure(pdev, board_id); pci_set_master(pdev); return ata_host_activate(host, pdev->irq, ata_bmdma_interrupt, --- linux-2.6.35.orig/drivers/mfd/wm831x-core.c +++ linux-2.6.35/drivers/mfd/wm831x-core.c @@ -1463,7 +1463,11 @@ dev_err(wm831x->dev, "Failed to read parent ID: %d\n", ret); goto err; } - if (ret != 0x6204) { + switch (ret) { + case 0x6204: + case 0x6246: + break; + default: dev_err(wm831x->dev, "Device is not a WM831x: ID %x\n", ret); ret = -EINVAL; goto err; @@ -1604,7 +1608,7 @@ case WM8320: ret = mfd_add_devices(wm831x->dev, -1, wm8320_devs, ARRAY_SIZE(wm8320_devs), - NULL, 0); + NULL, wm831x->irq_base); break; default: --- linux-2.6.35.orig/drivers/mfd/wm831x-irq.c +++ linux-2.6.35/drivers/mfd/wm831x-irq.c @@ -394,8 +394,13 @@ irq = irq - wm831x->irq_base; - if (irq < WM831X_IRQ_GPIO_1 || irq > WM831X_IRQ_GPIO_11) - return -EINVAL; + if (irq < WM831X_IRQ_GPIO_1 || irq > WM831X_IRQ_GPIO_11) { + /* Ignore internal-only IRQs */ + if (irq >= 0 && irq < WM831X_NUM_IRQS) + return 0; + else + return -EINVAL; + } switch (type) { case IRQ_TYPE_EDGE_BOTH: --- 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-keytable.c +++ linux-2.6.35/drivers/media/IR/ir-keytable.c @@ -319,7 +319,7 @@ * a keyup event might follow immediately after the keydown. */ spin_lock_irqsave(&ir->keylock, flags); - if (time_is_after_eq_jiffies(ir->keyup_jiffies)) + if (time_is_before_eq_jiffies(ir->keyup_jiffies)) ir_keyup(ir); spin_unlock_irqrestore(&ir->keylock, flags); } --- 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 @@ -193,17 +193,24 @@ struct video_code32 { char loadwhat[16]; /* name or tag of file being passed */ compat_int_t datasize; - unsigned char *data; + compat_uptr_t data; }; -static int get_microcode32(struct video_code *kp, struct video_code32 __user *up) +static struct video_code __user *get_microcode32(struct video_code32 *kp) { - 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) || - copy_from_user(kp->data, up->data, up->datasize)) - return -EFAULT; - return 0; + struct video_code __user *up; + + up = compat_alloc_user_space(sizeof(*up)); + + /* + * NOTE! We don't actually care if these fail. If the + * user address is invalid, the native ioctl will do + * the error handling for us + */ + (void) copy_to_user(up->loadwhat, kp->loadwhat, sizeof(up->loadwhat)); + (void) put_user(kp->datasize, &up->datasize); + (void) put_user(compat_ptr(kp->data), &up->data); + return up; } #define VIDIOCGTUNER32 _IOWR('v', 4, struct video_tuner32) @@ -744,7 +751,7 @@ struct video_tuner vt; struct video_buffer vb; struct video_window vw; - struct video_code vc; + struct video_code32 vc; struct video_audio va; #endif struct v4l2_format v2f; @@ -823,8 +830,11 @@ break; case VIDIOCSMICROCODE: - err = get_microcode32(&karg.vc, up); - compatible_arg = 0; + /* Copy the 32-bit "video_code32" to kernel space */ + if (copy_from_user(&karg.vc, up, sizeof(karg.vc))) + return -EFAULT; + /* Convert the 32-bit version to a 64-bit version in user space */ + up = get_microcode32(&karg.vc); break; case VIDIOCSFREQ: --- 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-video.c +++ linux-2.6.35/drivers/media/video/hdpvr/hdpvr-video.c @@ -157,6 +157,7 @@ mem, dev->bulk_in_size, hdpvr_read_bulk_callback, buf); + buf->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; buf->status = BUFSTAT_AVAILABLE; list_add_tail(&buf->buff_list, &dev->free_buff_list); } --- 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/gspca/gspca.c +++ linux-2.6.35/drivers/media/video/gspca/gspca.c @@ -223,6 +223,7 @@ usb_rcvintpipe(dev, ep->bEndpointAddress), buffer, buffer_len, int_irq, (void *)gspca_dev, interval); + urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; gspca_dev->int_urb = urb; ret = usb_submit_urb(urb, GFP_KERNEL); if (ret < 0) { --- linux-2.6.35.orig/drivers/media/video/gspca/sonixj.c +++ linux-2.6.35/drivers/media/video/gspca/sonixj.c @@ -57,6 +57,7 @@ u8 jpegqual; /* webcam quality */ u8 reg18; + u8 flags; s8 ag_cnt; #define AG_CNT_START 13 @@ -88,6 +89,9 @@ u8 jpeg_hdr[JPEG_HDR_SZ]; }; +/* device flags */ +#define PDN_INV 1 /* inverse pin S_PWR_DN / sn_xxx tables */ + /* V4L2 controls supported by the driver */ static int sd_setbrightness(struct gspca_dev *gspca_dev, __s32 val); static int sd_getbrightness(struct gspca_dev *gspca_dev, __s32 *val); @@ -1774,7 +1778,8 @@ struct cam *cam; sd->bridge = id->driver_info >> 16; - sd->sensor = id->driver_info; + sd->sensor = id->driver_info >> 8; + sd->flags = id->driver_info; cam = &gspca_dev->cam; if (sd->sensor == SENSOR_ADCM1700) { @@ -2488,8 +2493,7 @@ reg1 = 0x44; reg17 = 0xa2; break; - default: -/* case SENSOR_SP80708: */ + case SENSOR_SP80708: init = sp80708_sensor_param1; if (mode) { /*?? reg1 = 0x04; * 320 clk 48Mhz */ @@ -2999,14 +3003,18 @@ /* -- module initialisation -- */ #define BS(bridge, sensor) \ .driver_info = (BRIDGE_ ## bridge << 16) \ - | SENSOR_ ## sensor + | (SENSOR_ ## sensor << 8) +#define BSF(bridge, sensor, flags) \ + .driver_info = (BRIDGE_ ## bridge << 16) \ + | (SENSOR_ ## sensor << 8) \ + | (flags) static const __devinitdata struct usb_device_id device_table[] = { #if !defined CONFIG_USB_SN9C102 && !defined CONFIG_USB_SN9C102_MODULE {USB_DEVICE(0x0458, 0x7025), BS(SN9C120, MI0360)}, {USB_DEVICE(0x0458, 0x702e), BS(SN9C120, OV7660)}, #endif - {USB_DEVICE(0x045e, 0x00f5), BS(SN9C105, OV7660)}, - {USB_DEVICE(0x045e, 0x00f7), BS(SN9C105, OV7660)}, + {USB_DEVICE(0x045e, 0x00f5), BSF(SN9C105, OV7660, PDN_INV)}, + {USB_DEVICE(0x045e, 0x00f7), BSF(SN9C105, OV7660, PDN_INV)}, {USB_DEVICE(0x0471, 0x0327), BS(SN9C105, MI0360)}, {USB_DEVICE(0x0471, 0x0328), BS(SN9C105, MI0360)}, {USB_DEVICE(0x0471, 0x0330), BS(SN9C105, MI0360)}, --- linux-2.6.35.orig/drivers/media/video/gspca/sn9c20x.c +++ linux-2.6.35/drivers/media/video/gspca/sn9c20x.c @@ -2368,8 +2368,7 @@ (data[33] << 10); avg_lum >>= 9; atomic_set(&sd->avg_lum, avg_lum); - gspca_frame_add(gspca_dev, LAST_PACKET, - data, len); + gspca_frame_add(gspca_dev, LAST_PACKET, NULL, 0); return; } if (gspca_dev->last_packet_type == LAST_PACKET) { --- 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/cx231xx/cx231xx-cards.c +++ linux-2.6.35/drivers/media/video/cx231xx/cx231xx-cards.c @@ -32,6 +32,7 @@ #include #include +#include "dvb-usb-ids.h" #include "xc5000.h" #include "cx231xx.h" @@ -175,6 +176,8 @@ .driver_info = CX231XX_BOARD_CNXT_RDE_250}, {USB_DEVICE(0x0572, 0x58A1), .driver_info = CX231XX_BOARD_CNXT_RDU_250}, + {USB_DEVICE_VER(USB_VID_PIXELVIEW, USB_PID_PIXELVIEW_SBTVD, 0x4000,0x4fff), + .driver_info = CX231XX_BOARD_UNKNOWN}, {}, }; @@ -226,14 +229,16 @@ dev->board.name, dev->model); /* set the direction for GPIO pins */ - cx231xx_set_gpio_direction(dev, dev->board.tuner_gpio->bit, 1); - cx231xx_set_gpio_value(dev, dev->board.tuner_gpio->bit, 1); - cx231xx_set_gpio_direction(dev, dev->board.tuner_sif_gpio, 1); + if (dev->board.tuner_gpio) { + cx231xx_set_gpio_direction(dev, dev->board.tuner_gpio->bit, 1); + cx231xx_set_gpio_value(dev, dev->board.tuner_gpio->bit, 1); + cx231xx_set_gpio_direction(dev, dev->board.tuner_sif_gpio, 1); - /* request some modules if any required */ + /* request some modules if any required */ - /* reset the Tuner */ - cx231xx_gpio_set(dev, dev->board.tuner_gpio); + /* reset the Tuner */ + cx231xx_gpio_set(dev, dev->board.tuner_gpio); + } /* set the mode to Analog mode initially */ cx231xx_set_mode(dev, CX231XX_ANALOG_MODE); --- linux-2.6.35.orig/drivers/media/video/cx231xx/Makefile +++ linux-2.6.35/drivers/media/video/cx231xx/Makefile @@ -11,4 +11,5 @@ EXTRA_CFLAGS += -Idrivers/media/common/tuners EXTRA_CFLAGS += -Idrivers/media/dvb/dvb-core EXTRA_CFLAGS += -Idrivers/media/dvb/frontends +EXTRA_CFLAGS += -Idrivers/media/dvb/dvb-usb --- linux-2.6.35.orig/drivers/media/video/ivtv/ivtvfb.c +++ linux-2.6.35/drivers/media/video/ivtv/ivtvfb.c @@ -458,6 +458,8 @@ struct fb_vblank vblank; u32 trace; + memset(&vblank, 0, sizeof(struct fb_vblank)); + vblank.flags = FB_VBLANK_HAVE_COUNT |FB_VBLANK_HAVE_VCOUNT | FB_VBLANK_HAVE_VSYNC; trace = read_reg(IVTV_REG_DEC_LINE_FIELD) >> 16; --- 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 @@ -737,6 +737,7 @@ case 0x0e: /* CX23887-15Z */ dev->hwrevision = 0xc0; + break; case 0x0f: /* CX23887-14Z */ dev->hwrevision = 0xb1; @@ -1142,7 +1143,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 +1954,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 +2005,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/saa7134/saa7134-cards.c +++ linux-2.6.35/drivers/media/video/saa7134/saa7134-cards.c @@ -6631,6 +6631,18 @@ .subdevice = 0x6655, .driver_data = SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S, }, { + .vendor = PCI_VENDOR_ID_PHILIPS, + .device = PCI_DEVICE_ID_PHILIPS_SAA7133, + .subvendor = 0x5ace, /* Beholder Intl. Ltd. */ + .subdevice = 0x7190, + .driver_data = SAA7134_BOARD_BEHOLD_H7, + }, { + .vendor = PCI_VENDOR_ID_PHILIPS, + .device = PCI_DEVICE_ID_PHILIPS_SAA7133, + .subvendor = 0x5ace, /* Beholder Intl. Ltd. */ + .subdevice = 0x7090, + .driver_data = SAA7134_BOARD_BEHOLD_A7, + }, { /* --- boards without eeprom + subsystem ID --- */ .vendor = PCI_VENDOR_ID_PHILIPS, .device = PCI_DEVICE_ID_PHILIPS_SAA7134, @@ -6668,18 +6680,6 @@ .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, .driver_data = SAA7134_BOARD_UNKNOWN, - }, { - .vendor = PCI_VENDOR_ID_PHILIPS, - .device = PCI_DEVICE_ID_PHILIPS_SAA7133, - .subvendor = 0x5ace, /* Beholder Intl. Ltd. */ - .subdevice = 0x7190, - .driver_data = SAA7134_BOARD_BEHOLD_H7, - }, { - .vendor = PCI_VENDOR_ID_PHILIPS, - .device = PCI_DEVICE_ID_PHILIPS_SAA7133, - .subvendor = 0x5ace, /* Beholder Intl. Ltd. */ - .subdevice = 0x7090, - .driver_data = SAA7134_BOARD_BEHOLD_A7, },{ /* --- end of list --- */ } --- 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/media/dvb/frontends/dib7000p.h +++ linux-2.6.35/drivers/media/dvb/frontends/dib7000p.h @@ -33,6 +33,9 @@ int (*agc_control) (struct dvb_frontend *, u8 before); u8 output_mode; + + u8 enable_current_mirror : 1; + }; #define DEFAULT_DIB7000P_I2C_ADDRESS 18 --- linux-2.6.35.orig/drivers/media/dvb/frontends/dib7000p.c +++ linux-2.6.35/drivers/media/dvb/frontends/dib7000p.c @@ -260,6 +260,8 @@ // dprintk( "908: %x, 909: %x\n", reg_908, reg_909); + reg_908 |= (state->cfg.enable_current_mirror & 1) << 7; + dib7000p_write_word(state, 908, reg_908); dib7000p_write_word(state, 909, reg_909); } --- linux-2.6.35.orig/drivers/media/dvb/dvb-usb/dib0700_devices.c +++ linux-2.6.35/drivers/media/dvb/dvb-usb/dib0700_devices.c @@ -1240,6 +1240,57 @@ return adap->fe == NULL ? -ENODEV : 0; } +/* STK7770P */ +static struct dib7000p_config dib7770p_dib7000p_config = { + .output_mpeg2_in_188_bytes = 1, + + .agc_config_count = 1, + .agc = &dib7070_agc_config, + .bw = &dib7070_bw_config_12_mhz, + .tuner_is_baseband = 1, + .spur_protect = 1, + + .gpio_dir = DIB7000P_GPIO_DEFAULT_DIRECTIONS, + .gpio_val = DIB7000P_GPIO_DEFAULT_VALUES, + .gpio_pwm_pos = DIB7000P_GPIO_DEFAULT_PWM_POS, + + .hostbus_diversity = 1, + .enable_current_mirror = 1, +}; + +static int stk7770p_frontend_attach(struct dvb_usb_adapter *adap) +{ + struct usb_device_descriptor *p = &adap->dev->udev->descriptor; + if (p->idVendor == cpu_to_le16(USB_VID_PINNACLE) && + p->idProduct == cpu_to_le16(USB_PID_PINNACLE_PCTV72E)) + dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0); + else + dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1); + msleep(10); + dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1); + dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1); + dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1); + dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0); + + dib0700_ctrl_clock(adap->dev, 72, 1); + + msleep(10); + dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1); + msleep(10); + dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1); + + if (dib7000p_i2c_enumeration(&adap->dev->i2c_adap, 1, 18, + &dib7770p_dib7000p_config) != 0) { + err("%s: dib7000p_i2c_enumeration failed. Cannot continue\n", + __func__); + return -ENODEV; + } + + adap->fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap, 0x80, + &dib7770p_dib7000p_config); + return adap->fe == NULL ? -ENODEV : 0; +} + /* DIB807x generic */ static struct dibx000_agc_config dib807x_agc_config[2] = { { @@ -2081,7 +2132,7 @@ /* 60 */{ USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_T_XXS_2) }, { USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_STK807XPVR) }, { USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_STK807XP) }, - { USB_DEVICE(USB_VID_PIXELVIEW, USB_PID_PIXELVIEW_SBTVD) }, + { USB_DEVICE_VER(USB_VID_PIXELVIEW, USB_PID_PIXELVIEW_SBTVD, 0x000, 0x3f00) }, { USB_DEVICE(USB_VID_EVOLUTEPC, USB_PID_TVWAY_PLUS) }, /* 65 */{ USB_DEVICE(USB_VID_PINNACLE, USB_PID_PINNACLE_PCTV73ESE) }, { USB_DEVICE(USB_VID_PINNACLE, USB_PID_PINNACLE_PCTV282E) }, @@ -2592,7 +2643,7 @@ .pid_filter_count = 32, .pid_filter = stk70x0p_pid_filter, .pid_filter_ctrl = stk70x0p_pid_filter_ctrl, - .frontend_attach = stk7070p_frontend_attach, + .frontend_attach = stk7770p_frontend_attach, .tuner_attach = dib7770p_tuner_attach, DIB0700_DEFAULT_STREAMING_CONFIG(0x02), --- 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); @@ -1149,7 +1160,7 @@ if (host->caps & MMC_CAP_DISABLE) cancel_delayed_work(&host->disable); - cancel_delayed_work(&host->detect); + cancel_delayed_work_sync(&host->detect); mmc_flush_scheduled_work(); /* clear pm flags now and let card drivers set them as needed */ @@ -1310,28 +1321,62 @@ 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: + case PM_POST_RESTORE: + + 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/atmel-mci.c +++ linux-2.6.35/drivers/mmc/host/atmel-mci.c @@ -26,6 +26,7 @@ #include #include +#include #include #include @@ -532,12 +533,17 @@ data = cmd->data; if (data) { cmdr |= MCI_CMDR_START_XFER; - if (data->flags & MMC_DATA_STREAM) - cmdr |= MCI_CMDR_STREAM; - else if (data->blocks > 1) - cmdr |= MCI_CMDR_MULTI_BLOCK; - else - cmdr |= MCI_CMDR_BLOCK; + + if (cmd->opcode == SD_IO_RW_EXTENDED) { + cmdr |= MCI_CMDR_SDIO_BLOCK; + } else { + if (data->flags & MMC_DATA_STREAM) + cmdr |= MCI_CMDR_STREAM; + else if (data->blocks > 1) + cmdr |= MCI_CMDR_MULTI_BLOCK; + else + cmdr |= MCI_CMDR_BLOCK; + } if (data->flags & MMC_DATA_READ) cmdr |= MCI_CMDR_TRDIR_READ; --- linux-2.6.35.orig/drivers/mmc/host/sdhci-pci.c +++ linux-2.6.35/drivers/mmc/host/sdhci-pci.c @@ -17,6 +17,7 @@ #include #include #include +#include #include @@ -84,7 +85,30 @@ if (chip->pdev->subsystem_vendor == PCI_VENDOR_ID_SAMSUNG || chip->pdev->subsystem_vendor == PCI_VENDOR_ID_SONY) chip->quirks |= SDHCI_QUIRK_NO_CARD_NO_RESET; + return 0; +} + +static int ricoh_mmc_probe_slot(struct sdhci_pci_slot *slot) +{ + slot->host->caps = + ((0x21 << SDHCI_TIMEOUT_CLK_SHIFT) + & SDHCI_TIMEOUT_CLK_MASK) | + + ((0x21 << SDHCI_CLOCK_BASE_SHIFT) + & SDHCI_CLOCK_BASE_MASK) | + + SDHCI_TIMEOUT_CLK_UNIT | + SDHCI_CAN_VDD_330 | + SDHCI_CAN_DO_SDMA; + return 0; +} +static int ricoh_mmc_resume(struct sdhci_pci_chip *chip) +{ + /* Apply a delay to allow controller to settle */ + /* Otherwise it becomes confused if card state changed + during suspend */ + msleep(500); return 0; } @@ -95,6 +119,15 @@ SDHCI_QUIRK_CLOCK_BEFORE_RESET, }; +static const struct sdhci_pci_fixes sdhci_ricoh_mmc = { + .probe_slot = ricoh_mmc_probe_slot, + .resume = ricoh_mmc_resume, + .quirks = SDHCI_QUIRK_32BIT_DMA_ADDR | + SDHCI_QUIRK_CLOCK_BEFORE_RESET | + SDHCI_QUIRK_NO_CARD_NO_RESET | + SDHCI_QUIRK_MISSING_CAPS +}; + static const struct sdhci_pci_fixes sdhci_ene_712 = { .quirks = SDHCI_QUIRK_SINGLE_POWER_WRITE | SDHCI_QUIRK_BROKEN_DMA, @@ -374,6 +407,30 @@ }, { + .vendor = PCI_VENDOR_ID_RICOH, + .device = 0x843, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .driver_data = (kernel_ulong_t)&sdhci_ricoh_mmc, + }, + + { + .vendor = PCI_VENDOR_ID_RICOH, + .device = 0xe823, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .driver_data = (kernel_ulong_t)&sdhci_ricoh_mmc, + }, + + { + .vendor = PCI_VENDOR_ID_RICOH, + .device = 0xe822, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .driver_data = (kernel_ulong_t)&sdhci_ricoh_mmc, + }, + + { .vendor = PCI_VENDOR_ID_ENE, .device = PCI_DEVICE_ID_ENE_CB712_SD, .subvendor = PCI_ANY_ID, --- linux-2.6.35.orig/drivers/mmc/host/sdhci.h +++ linux-2.6.35/drivers/mmc/host/sdhci.h @@ -240,6 +240,8 @@ #define SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN (1<<25) /* Controller cannot support End Attribute in NOP ADMA descriptor */ #define SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC (1<<26) +/* Controller is missing device caps. Use caps provided by host */ +#define SDHCI_QUIRK_MISSING_CAPS (1<<27) int irq; /* Device IRQ */ void __iomem * ioaddr; /* Mapped address */ @@ -292,6 +294,8 @@ struct timer_list timer; /* Timer for timeouts */ + unsigned int caps; /* Alternative capabilities */ + unsigned long private[0] ____cacheline_aligned; }; --- linux-2.6.35.orig/drivers/mmc/host/sdhci-s3c.c +++ linux-2.6.35/drivers/mmc/host/sdhci-s3c.c @@ -372,8 +372,10 @@ sdhci_remove_host(host, 1); for (ptr = 0; ptr < 3; ptr++) { - clk_disable(sc->clk_bus[ptr]); - clk_put(sc->clk_bus[ptr]); + if (sc->clk_bus[ptr]) { + clk_disable(sc->clk_bus[ptr]); + clk_put(sc->clk_bus[ptr]); + } } clk_disable(sc->clk_io); clk_put(sc->clk_io); --- linux-2.6.35.orig/drivers/mmc/host/sdhci.c +++ linux-2.6.35/drivers/mmc/host/sdhci.c @@ -1687,7 +1687,8 @@ host->version); } - caps = sdhci_readl(host, SDHCI_CAPABILITIES); + caps = (host->quirks & SDHCI_QUIRK_MISSING_CAPS) ? host->caps : + sdhci_readl(host, SDHCI_CAPABILITIES); if (host->quirks & SDHCI_QUIRK_FORCE_DMA) host->flags |= SDHCI_USE_SDMA; --- 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/at91_mci.c +++ linux-2.6.35/drivers/mmc/host/at91_mci.c @@ -68,6 +68,7 @@ #include #include +#include #include #include @@ -492,10 +493,14 @@ else if (data->flags & MMC_DATA_WRITE) cmdr |= AT91_MCI_TRCMD_START; - if (data->flags & MMC_DATA_STREAM) - cmdr |= AT91_MCI_TRTYP_STREAM; - if (data->blocks > 1) - cmdr |= AT91_MCI_TRTYP_MULTIPLE; + if (cmd->opcode == SD_IO_RW_EXTENDED) { + cmdr |= AT91_MCI_TRTYP_SDIO_BLOCK; + } else { + if (data->flags & MMC_DATA_STREAM) + cmdr |= AT91_MCI_TRTYP_STREAM; + if (data->blocks > 1) + cmdr |= AT91_MCI_TRTYP_MULTIPLE; + } } else { block_length = 0; --- 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); @@ -2654,6 +2678,29 @@ DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832); #endif /*CONFIG_MMC_RICOH_MMC*/ +#if defined(CONFIG_DMAR) || defined(CONFIG_INTR_REMAP) +#define VTUNCERRMSK_REG 0x1ac +#define VTD_MSK_SPEC_ERRORS (1 << 31) +/* + * This is a quirk for masking vt-d spec defined errors to platform error + * handling logic. With out this, platforms using Intel 7500, 5500 chipsets + * (and the derivative chipsets like X58 etc) seem to generate NMI/SMI (based + * on the RAS config settings of the platform) when a vt-d fault happens. + * The resulting SMI caused the system to hang. + * + * VT-d spec related errors are already handled by the VT-d OS code, so no + * need to report the same error through other channels. + */ +static void vtd_mask_spec_errors(struct pci_dev *dev) +{ + u32 word; + + pci_read_config_dword(dev, VTUNCERRMSK_REG, &word); + pci_write_config_dword(dev, VTUNCERRMSK_REG, word | VTD_MSK_SPEC_ERRORS); +} +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x342e, vtd_mask_spec_errors); +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x3c28, vtd_mask_spec_errors); +#endif static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, struct pci_fixup *end) --- linux-2.6.35.orig/drivers/pci/pci.h +++ linux-2.6.35/drivers/pci/pci.h @@ -13,8 +13,13 @@ extern void pci_remove_sysfs_dev_files(struct pci_dev *pdev); extern void pci_cleanup_rom(struct pci_dev *dev); #ifdef HAVE_PCI_MMAP +enum pci_mmap_api { + PCI_MMAP_SYSFS, /* mmap on /sys/bus/pci/devices//resource */ + PCI_MMAP_PROCFS /* mmap on /proc/bus/pci/ */ +}; extern int pci_mmap_fits(struct pci_dev *pdev, int resno, - struct vm_area_struct *vma); + struct vm_area_struct *vmai, + enum pci_mmap_api mmap_api); #endif int pci_probe_reset_function(struct pci_dev *dev); --- linux-2.6.35.orig/drivers/pci/proc.c +++ linux-2.6.35/drivers/pci/proc.c @@ -260,7 +260,7 @@ /* Make sure the caller is mapping a real resource for this device */ for (i = 0; i < PCI_ROM_RESOURCE; i++) { - if (pci_mmap_fits(dev, i, vma)) + if (pci_mmap_fits(dev, i, vma, PCI_MMAP_PROCFS)) break; } --- linux-2.6.35.orig/drivers/pci/pci-sysfs.c +++ linux-2.6.35/drivers/pci/pci-sysfs.c @@ -705,17 +705,21 @@ #ifdef HAVE_PCI_MMAP -int pci_mmap_fits(struct pci_dev *pdev, int resno, struct vm_area_struct *vma) +int pci_mmap_fits(struct pci_dev *pdev, int resno, struct vm_area_struct *vma, + enum pci_mmap_api mmap_api) { - unsigned long nr, start, size; + unsigned long nr, start, size, pci_start; + if (pci_resource_len(pdev, resno) == 0) + return 0; nr = (vma->vm_end - vma->vm_start) >> PAGE_SHIFT; start = vma->vm_pgoff; size = ((pci_resource_len(pdev, resno) - 1) >> PAGE_SHIFT) + 1; - if (start < size && size - start >= nr) + pci_start = (mmap_api == PCI_MMAP_PROCFS) ? + pci_resource_start(pdev, resno) >> PAGE_SHIFT : 0; + if (start >= pci_start && start < pci_start + size && + start + nr <= pci_start + size) return 1; - WARN(1, "process \"%s\" tried to map 0x%08lx-0x%08lx on %s BAR %d (size 0x%08lx)\n", - current->comm, start, start+nr, pci_name(pdev), resno, size); return 0; } @@ -745,8 +749,14 @@ if (i >= PCI_ROM_RESOURCE) return -ENODEV; - if (!pci_mmap_fits(pdev, i, vma)) + if (!pci_mmap_fits(pdev, i, vma, PCI_MMAP_SYSFS)) { + WARN(1, "process \"%s\" tried to map 0x%08lx bytes " + "at page 0x%08lx on %s BAR %d (start 0x%16Lx, size 0x%16Lx)\n", + current->comm, vma->vm_end-vma->vm_start, vma->vm_pgoff, + pci_name(pdev), i, + pci_resource_start(pdev, i), pci_resource_len(pdev, i)); return -EINVAL; + } /* pci_mmap_page_range() expects the same kind of entry as coming * from /proc/bus/pci/ which is a "user visible" value. If this is --- linux-2.6.35.orig/drivers/pci/dmar.c +++ linux-2.6.35/drivers/pci/dmar.c @@ -1414,6 +1414,11 @@ (unsigned long long)drhd->reg_base_addr, ret); return -1; } + + /* + * Clear any previous faults. + */ + dmar_fault(iommu->irq, iommu); } return 0; --- 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 @@ -1567,7 +1567,7 @@ debugf1(" HoleOffset=0x%x HoleValid=0x%x IntlvSel=0x%x\n", hole_off, hole_valid, intlv_sel); - if (intlv_en || + if (intlv_en && (intlv_sel != ((sys_addr >> 12) & intlv_en))) return -EINVAL; @@ -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/edac/i7core_edac.c +++ linux-2.6.35/drivers/edac/i7core_edac.c @@ -1140,6 +1140,7 @@ ATTR_COUNTER(0), ATTR_COUNTER(1), ATTR_COUNTER(2), + { .attr = { .name = NULL } } }; static struct mcidev_sysfs_group i7core_udimm_counters = { --- linux-2.6.35.orig/drivers/edac/edac_mc.c +++ linux-2.6.35/drivers/edac/edac_mc.c @@ -575,14 +575,16 @@ return NULL; } - /* marking MCI offline */ - mci->op_state = OP_OFFLINE; - del_mc_from_global_list(mci); mutex_unlock(&mem_ctls_mutex); - /* flush workq processes and remove sysfs */ + /* flush workq processes */ edac_mc_workq_teardown(mci); + + /* marking MCI offline */ + mci->op_state = OP_OFFLINE; + + /* remove from sysfs */ edac_remove_sysfs_mci_device(mci); edac_printk(KERN_INFO, EDAC_MC, --- 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(kt_entry->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/joydev.c +++ linux-2.6.35/drivers/input/joydev.c @@ -483,6 +483,9 @@ memcpy(joydev->abspam, abspam, len); + for (i = 0; i < joydev->nabs; i++) + joydev->absmap[joydev->abspam[i]] = i; + out: kfree(abspam); return retval; --- linux-2.6.35.orig/drivers/input/serio/i8042-x86ia64io.h +++ linux-2.6.35/drivers/input/serio/i8042-x86ia64io.h @@ -333,6 +333,13 @@ }, }, { + /* Sony Vaio VPCZ122GX */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), + DMI_MATCH(DMI_PRODUCT_NAME, "VPCZ122GX"), + }, + }, + { /* Sony Vaio FS-115b */ .matches = { DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), @@ -413,6 +420,13 @@ DMI_MATCH(DMI_PRODUCT_VERSION, "0100"), }, }, + { + /* Dell Vostro V13 */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Vostro V13"), + }, + }, { } }; @@ -534,6 +548,17 @@ }; #endif +static const struct dmi_system_id __initconst i8042_dmi_notimeout_table[] = { + { + /* Dell Vostro V13 */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Vostro V13"), + }, + }, + { } +}; + /* * Some Wistron based laptops need us to explicitly enable the 'Dritek * keyboard extension' to make their extra keys start generating scancodes. @@ -886,6 +911,9 @@ if (dmi_check_system(i8042_dmi_nomux_table)) i8042_nomux = true; + if (dmi_check_system(i8042_dmi_notimeout_table)) + i8042_notimeout = true; + if (dmi_check_system(i8042_dmi_dritek_table)) i8042_dritek = true; #endif /* CONFIG_X86 */ --- linux-2.6.35.orig/drivers/input/serio/i8042.c +++ linux-2.6.35/drivers/input/serio/i8042.c @@ -65,6 +65,10 @@ module_param_named(panicblink, i8042_blink_frequency, uint, 0600); MODULE_PARM_DESC(panicblink, "Frequency with which keyboard LEDs should blink when kernel panics"); +static bool i8042_notimeout; +module_param_named(notimeout, i8042_notimeout, bool, 0); +MODULE_PARM_DESC(notimeout, "Ignore timeouts signalled by i8042"); + #ifdef CONFIG_X86 static bool i8042_dritek; module_param_named(dritek, i8042_dritek, bool, 0); @@ -507,7 +511,7 @@ } else { dfl = ((str & I8042_STR_PARITY) ? SERIO_PARITY : 0) | - ((str & I8042_STR_TIMEOUT) ? SERIO_TIMEOUT : 0); + ((str & I8042_STR_TIMEOUT && !i8042_notimeout) ? SERIO_TIMEOUT : 0); port_no = (str & I8042_STR_AUXDATA) ? I8042_AUX_PORT_NO : I8042_KBD_PORT_NO; @@ -861,9 +865,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 +1021,8 @@ * Reset the controller if requested. */ - i8042_controller_selftest(); + if (i8042_reset) + i8042_controller_selftest(); /* * Restore the original control register setting. @@ -1094,23 +1096,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 +1108,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 +1154,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 +1183,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 +1408,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 +1504,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 @@ -409,8 +409,10 @@ /* general pen packet */ if ((data[1] & 0xb8) == 0xa0) { t = (data[6] << 2) | ((data[7] >> 6) & 3); - if (features->type >= INTUOS4S && features->type <= INTUOS4L) + if ((features->type >= INTUOS4S && features->type <= INTUOS4L) || + features->type == WACOM_21UX2) { t = (t << 1) | (data[1] & 1); + } input_report_abs(input, ABS_PRESSURE, t); input_report_abs(input, ABS_TILT_X, ((data[7] << 1) & 0x7e) | (data[8] >> 7)); @@ -822,6 +824,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 +917,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 +962,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 +1000,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 +1127,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 +1287,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 +1352,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 @@ -51,7 +51,8 @@ #define SYN_EXT_CAP_REQUESTS(c) (((c) & 0x700000) >> 20) #define SYN_CAP_MULTI_BUTTON_NO(ec) (((ec) & 0x00f000) >> 12) #define SYN_CAP_PRODUCT_ID(ec) (((ec) & 0xff0000) >> 16) -#define SYN_CAP_CLICKPAD(ex0c) ((ex0c) & 0x100100) +#define SYN_CAP_CLICKPAD(ex0c) ((ex0c) & 0x100000) /* 1-button ClickPad */ +#define SYN_CAP_CLICKPAD2BTN(ex0c) ((ex0c) & 0x000100) /* 2-button ClickPad */ #define SYN_CAP_MAX_DIMENSIONS(ex0c) ((ex0c) & 0x020000) /* synaptics modes query bits */ @@ -110,6 +111,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_0c)) + 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_0c)) { + 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. @@ -143,7 +148,7 @@ extern unsigned long this_cpu_load(void); -extern void calc_global_load(void); +extern void calc_global_load(unsigned long ticks); extern unsigned long get_parent_ip(unsigned long addr); @@ -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/gfp.h +++ linux-2.6.35/include/linux/gfp.h @@ -339,7 +339,7 @@ extern gfp_t gfp_allowed_mask; -extern void set_gfp_allowed_mask(gfp_t mask); -extern gfp_t clear_gfp_allowed_mask(gfp_t mask); +extern void pm_restrict_gfp_mask(void); +extern void pm_restore_gfp_mask(void); #endif /* __LINUX_GFP_H */ --- linux-2.6.35.orig/include/linux/binfmts.h +++ linux-2.6.35/include/linux/binfmts.h @@ -29,6 +29,7 @@ char buf[BINPRM_BUF_SIZE]; #ifdef CONFIG_MMU struct vm_area_struct *vma; + unsigned long vma_pages; #else # define MAX_ARG_PAGES 32 struct page *page[MAX_ARG_PAGES]; @@ -59,6 +60,10 @@ unsigned long loader, exec; }; +extern void acct_arg_size(struct linux_binprm *bprm, unsigned long pages); +extern struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos, + int write); + #define BINPRM_FLAGS_ENFORCE_NONDUMP_BIT 0 #define BINPRM_FLAGS_ENFORCE_NONDUMP (1 << BINPRM_FLAGS_ENFORCE_NONDUMP_BIT) --- 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/netfilter.h +++ linux-2.6.35/include/linux/netfilter.h @@ -215,7 +215,7 @@ int ret; if (!cond || - (ret = nf_hook_thresh(pf, hook, skb, in, out, okfn, INT_MIN) == 1)) + ((ret = nf_hook_thresh(pf, hook, skb, in, out, okfn, INT_MIN)) == 1)) ret = okfn(skb); return ret; } --- 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/tipc.h +++ linux-2.6.35/include/linux/tipc.h @@ -127,17 +127,23 @@ * TIPC topology subscription service definitions */ -#define TIPC_SUB_SERVICE 0x00 /* Filter for service availability */ -#define TIPC_SUB_PORTS 0x01 /* Filter for port availability */ -#define TIPC_SUB_CANCEL 0x04 /* Cancel a subscription */ +#define TIPC_SUB_PORTS 0x01 /* filter for port availability */ +#define TIPC_SUB_SERVICE 0x02 /* filter for service availability */ +#define TIPC_SUB_CANCEL 0x04 /* cancel a subscription */ +#if 0 +/* The following filter options are not currently implemented */ +#define TIPC_SUB_NO_BIND_EVTS 0x04 /* filter out "publish" events */ +#define TIPC_SUB_NO_UNBIND_EVTS 0x08 /* filter out "withdraw" events */ +#define TIPC_SUB_SINGLE_EVT 0x10 /* expire after first event */ +#endif #define TIPC_WAIT_FOREVER ~0 /* timeout for permanent subscription */ struct tipc_subscr { - struct tipc_name_seq seq; /* NBO. Name sequence of interest */ - __u32 timeout; /* NBO. Subscription duration (in ms) */ - __u32 filter; /* NBO. Bitmask of filter options */ - char usr_handle[8]; /* Opaque. Available for subscriber use */ + struct tipc_name_seq seq; /* name sequence of interest */ + __u32 timeout; /* subscription duration (in ms) */ + __u32 filter; /* bitmask of filter options */ + char usr_handle[8]; /* available for subscriber use */ }; #define TIPC_PUBLISHED 1 /* publication event */ @@ -145,11 +151,11 @@ #define TIPC_SUBSCR_TIMEOUT 3 /* subscription timeout event */ struct tipc_event { - __u32 event; /* NBO. Event type, as defined above */ - __u32 found_lower; /* NBO. Matching name seq instances */ - __u32 found_upper; /* " " " " " */ - struct tipc_portid port; /* NBO. Associated port */ - struct tipc_subscr s; /* Original, associated subscription */ + __u32 event; /* event type */ + __u32 found_lower; /* matching name seq instances */ + __u32 found_upper; /* " " " " */ + struct tipc_portid port; /* associated port */ + struct tipc_subscr s; /* associated subscription */ }; /* --- 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/radix-tree.h +++ linux-2.6.35/include/linux/radix-tree.h @@ -36,17 +36,6 @@ * RCU. */ #define RADIX_TREE_INDIRECT_PTR 1 -#define RADIX_TREE_RETRY ((void *)-1UL) - -static inline void *radix_tree_ptr_to_indirect(void *ptr) -{ - return (void *)((unsigned long)ptr | RADIX_TREE_INDIRECT_PTR); -} - -static inline void *radix_tree_indirect_to_ptr(void *ptr) -{ - return (void *)((unsigned long)ptr & ~RADIX_TREE_INDIRECT_PTR); -} static inline int radix_tree_is_indirect_ptr(void *ptr) { @@ -138,16 +127,29 @@ * removed. * * For use with radix_tree_lookup_slot(). Caller must hold tree at least read - * locked across slot lookup and dereference. More likely, will be used with - * radix_tree_replace_slot(), as well, so caller will hold tree write locked. + * locked across slot lookup and dereference. Not required if write lock is + * held (ie. items cannot be concurrently inserted). + * + * radix_tree_deref_retry must be used to confirm validity of the pointer if + * only the read lock is held. */ static inline void *radix_tree_deref_slot(void **pslot) { - void *ret = rcu_dereference(*pslot); - if (unlikely(radix_tree_is_indirect_ptr(ret))) - ret = RADIX_TREE_RETRY; - return ret; + return rcu_dereference(*pslot); } + +/** + * radix_tree_deref_retry - check radix_tree_deref_slot + * @arg: pointer returned by radix_tree_deref_slot + * Returns: 0 if retry is not required, otherwise retry is required + * + * radix_tree_deref_retry must be used with radix_tree_deref_slot. + */ +static inline int radix_tree_deref_retry(void *arg) +{ + return unlikely((unsigned long)arg & RADIX_TREE_INDIRECT_PTR); +} + /** * radix_tree_replace_slot - replace item in a slot * @pslot: pointer to slot, returned by radix_tree_lookup_slot --- 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/intel-gtt.h +++ linux-2.6.35/include/linux/intel-gtt.h @@ -0,0 +1,20 @@ +/* + * Common Intel AGPGART and GTT definitions. + */ +#ifndef _INTEL_GTT_H +#define _INTEL_GTT_H + +#include + +/* This is for Intel only GTT controls. + * + * Sandybridge: AGP_USER_CACHED_MEMORY default to LLC only + */ + +#define AGP_USER_CACHED_MEMORY_LLC_MLC (AGP_USER_TYPES + 2) +#define AGP_USER_UNCACHED_MEMORY (AGP_USER_TYPES + 4) + +/* flag for GFDT type */ +#define AGP_USER_CACHED_MEMORY_GFDT (1 << 3) + +#endif --- linux-2.6.35.orig/include/linux/pci_ids.h +++ linux-2.6.35/include/linux/pci_ids.h @@ -393,6 +393,9 @@ #define PCI_DEVICE_ID_VLSI_82C147 0x0105 #define PCI_DEVICE_ID_VLSI_VAS96011 0x0702 +/* AMD RD890 Chipset */ +#define PCI_DEVICE_ID_RD890_IOMMU 0x5a23 + #define PCI_VENDOR_ID_ADL 0x1005 #define PCI_DEVICE_ID_ADL_2301 0x2301 @@ -2035,6 +2038,7 @@ #define PCI_DEVICE_ID_AFAVLAB_P030 0x2182 #define PCI_SUBDEVICE_ID_AFAVLAB_P061 0x2150 +#define PCI_VENDOR_ID_BCM_GVC 0x14a4 #define PCI_VENDOR_ID_BROADCOM 0x14e4 #define PCI_DEVICE_ID_TIGON3_5752 0x1600 #define PCI_DEVICE_ID_TIGON3_5752M 0x1601 --- 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/socket.h +++ linux-2.6.35/include/linux/socket.h @@ -24,6 +24,9 @@ #include /* pid_t */ #include /* __user */ +struct pid; +struct cred; + #define __sockaddr_check_size(size) \ BUILD_BUG_ON(((size) > sizeof(struct __kernel_sockaddr_storage))) @@ -309,6 +312,8 @@ #define IPX_TYPE 1 #ifdef __KERNEL__ +extern void cred_to_ucred(struct pid *pid, const struct cred *cred, struct ucred *ucred); + extern int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len); extern int memcpy_fromiovecend(unsigned char *kdata, const struct iovec *iov, int offset, int len); --- 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_runtime.h +++ linux-2.6.35/include/linux/pm_runtime.h @@ -67,7 +67,8 @@ static inline bool pm_runtime_suspended(struct device *dev) { - return dev->power.runtime_status == RPM_SUSPENDED; + return dev->power.runtime_status == RPM_SUSPENDED + && !dev->power.disable_depth; } #else /* !CONFIG_PM_RUNTIME */ --- 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/bootmem.h +++ linux-2.6.35/include/linux/bootmem.h @@ -105,6 +105,8 @@ #define alloc_bootmem(x) \ __alloc_bootmem(x, SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS)) +#define alloc_bootmem_align(x, align) \ + __alloc_bootmem(x, align, __pa(MAX_DMA_ADDRESS)) #define alloc_bootmem_nopanic(x) \ __alloc_bootmem_nopanic(x, SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS)) #define alloc_bootmem_pages(x) \ --- linux-2.6.35.orig/include/linux/tty_driver.h +++ linux-2.6.35/include/linux/tty_driver.h @@ -224,6 +224,12 @@ * unless the tty also has a valid tty->termiox pointer. * * Optional: Called under the termios lock + * + * int (*get_icount)(struct tty_struct *tty, struct serial_icounter *icount); + * + * Called when the device receives a TIOCGICOUNT ioctl. Passed a kernel + * structure to complete. This method is optional and will only be called + * if provided (otherwise EINVAL will be returned). */ #include @@ -232,6 +238,7 @@ struct tty_struct; struct tty_driver; +struct serial_icounter_struct; struct tty_operations { struct tty_struct * (*lookup)(struct tty_driver *driver, @@ -268,6 +275,8 @@ unsigned int set, unsigned int clear); int (*resize)(struct tty_struct *tty, struct winsize *ws); int (*set_termiox)(struct tty_struct *tty, struct termiox *tnew); + int (*get_icount)(struct tty_struct *tty, + struct serial_icounter_struct *icount); #ifdef CONFIG_CONSOLE_POLL int (*poll_init)(struct tty_driver *driver, int line, char *options); int (*poll_get_char)(struct tty_driver *driver, int line); --- 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) --- linux-2.6.35.orig/include/linux/filter.h +++ linux-2.6.35/include/linux/filter.h @@ -91,6 +91,54 @@ #define BPF_TAX 0x00 #define BPF_TXA 0x80 +enum { + BPF_S_RET_K = 0, + BPF_S_RET_A, + BPF_S_ALU_ADD_K, + BPF_S_ALU_ADD_X, + BPF_S_ALU_SUB_K, + BPF_S_ALU_SUB_X, + BPF_S_ALU_MUL_K, + BPF_S_ALU_MUL_X, + BPF_S_ALU_DIV_X, + BPF_S_ALU_AND_K, + BPF_S_ALU_AND_X, + BPF_S_ALU_OR_K, + BPF_S_ALU_OR_X, + BPF_S_ALU_LSH_K, + BPF_S_ALU_LSH_X, + BPF_S_ALU_RSH_K, + BPF_S_ALU_RSH_X, + BPF_S_ALU_NEG, + BPF_S_LD_W_ABS, + BPF_S_LD_H_ABS, + BPF_S_LD_B_ABS, + BPF_S_LD_W_LEN, + BPF_S_LD_W_IND, + BPF_S_LD_H_IND, + BPF_S_LD_B_IND, + BPF_S_LD_IMM, + BPF_S_LDX_W_LEN, + BPF_S_LDX_B_MSH, + BPF_S_LDX_IMM, + BPF_S_MISC_TAX, + BPF_S_MISC_TXA, + BPF_S_ALU_DIV_K, + BPF_S_LD_MEM, + BPF_S_LDX_MEM, + BPF_S_ST, + BPF_S_STX, + BPF_S_JMP_JA, + BPF_S_JMP_JEQ_K, + BPF_S_JMP_JEQ_X, + BPF_S_JMP_JGE_K, + BPF_S_JMP_JGE_X, + BPF_S_JMP_JGT_K, + BPF_S_JMP_JGT_X, + BPF_S_JMP_JSET_K, + BPF_S_JMP_JSET_X, +}; + #ifndef BPF_MAXINSNS #define BPF_MAXINSNS 4096 #endif --- linux-2.6.35.orig/include/linux/pipe_fs_i.h +++ linux-2.6.35/include/linux/pipe_fs_i.h @@ -160,5 +160,6 @@ /* for F_SETPIPE_SZ and F_GETPIPE_SZ */ long pipe_fcntl(struct file *, unsigned int, unsigned long arg); +struct pipe_inode_info *get_pipe_info(struct file *file); #endif --- 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/kmod.h +++ linux-2.6.35/include/linux/kmod.h @@ -83,6 +83,8 @@ to call call_usermodehelper_exec */ void call_usermodehelper_freeinfo(struct subprocess_info *info); +extern void populate_rootfs_wait(void); + static inline int call_usermodehelper_fns(char *path, char **argv, char **envp, enum umh_wait wait, @@ -92,6 +94,8 @@ struct subprocess_info *info; gfp_t gfp_mask = (wait == UMH_NO_WAIT) ? GFP_ATOMIC : GFP_KERNEL; + populate_rootfs_wait(); + info = call_usermodehelper_setup(path, argv, envp, gfp_mask); if (info == NULL) --- linux-2.6.35.orig/include/linux/perf_event.h +++ linux-2.6.35/include/linux/perf_event.h @@ -764,6 +764,7 @@ int nr_active; int is_active; int nr_stat; + int rotate_disable; atomic_t refcount; struct task_struct *task; --- linux-2.6.35.orig/include/linux/cpuidle.h +++ linux-2.6.35/include/linux/cpuidle.h @@ -52,6 +52,8 @@ #define CPUIDLE_FLAG_SHALLOW (0x20) /* low latency, minimal savings */ #define CPUIDLE_FLAG_BALANCED (0x40) /* medium latency, moderate savings */ #define CPUIDLE_FLAG_DEEP (0x80) /* high latency, large savings */ +#define CPUIDLE_FLAG_IGNORE (0x100) /* ignore during this idle period */ +#define CPUIDLE_FLAG_TLB_FLUSHED (0x200) /* tlb will be flushed */ #define CPUIDLE_DRIVER_FLAGS_MASK (0xFFFF0000) @@ -84,6 +86,7 @@ struct cpuidle_device { unsigned int registered:1; unsigned int enabled:1; + unsigned int power_specified:1; unsigned int cpu; int last_residency; @@ -97,6 +100,8 @@ struct completion kobj_unregister; void *governor_data; struct cpuidle_state *safe_state; + + int (*prepare) (struct cpuidle_device *dev); }; DECLARE_PER_CPU(struct cpuidle_device *, cpuidle_devices); --- 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/user_namespace.h +++ linux-2.6.35/include/linux/user_namespace.h @@ -36,6 +36,9 @@ kref_put(&ns->kref, free_user_ns); } +uid_t user_ns_map_uid(struct user_namespace *to, const struct cred *cred, uid_t uid); +gid_t user_ns_map_gid(struct user_namespace *to, const struct cred *cred, gid_t gid); + #else static inline struct user_namespace *get_user_ns(struct user_namespace *ns) @@ -52,6 +55,17 @@ { } +static inline uid_t user_ns_map_uid(struct user_namespace *to, + const struct cred *cred, uid_t uid) +{ + return uid; +} +static inline gid_t user_ns_map_gid(struct user_namespace *to, + const struct cred *cred, gid_t gid) +{ + return gid; +} + #endif #endif /* _LINUX_USER_H */ --- linux-2.6.35.orig/include/linux/blkdev.h +++ linux-2.6.35/include/linux/blkdev.h @@ -325,7 +325,7 @@ unsigned char misaligned; unsigned char discard_misaligned; - unsigned char no_cluster; + unsigned char cluster; signed char discard_zeroes_data; }; @@ -448,7 +448,6 @@ #endif }; -#define QUEUE_FLAG_CLUSTER 0 /* cluster several segments into 1 */ #define QUEUE_FLAG_QUEUED 1 /* uses generic tag queueing */ #define QUEUE_FLAG_STOPPED 2 /* queue is stopped */ #define QUEUE_FLAG_SYNCFULL 3 /* read queue has been filled */ @@ -469,7 +468,6 @@ #define QUEUE_FLAG_NOXMERGES 17 /* No extended merges */ #define QUEUE_FLAG_DEFAULT ((1 << QUEUE_FLAG_IO_STAT) | \ - (1 << QUEUE_FLAG_CLUSTER) | \ (1 << QUEUE_FLAG_STACKABLE) | \ (1 << QUEUE_FLAG_SAME_COMP)) @@ -636,6 +634,11 @@ #define rq_data_dir(rq) ((rq)->cmd_flags & 1) +static inline unsigned int blk_queue_cluster(struct request_queue *q) +{ + return q->limits.cluster; +} + /* * We regard a request as sync, if either a read or a sync write */ @@ -936,7 +939,7 @@ extern void blk_queue_max_discard_sectors(struct request_queue *q, unsigned int max_discard_sectors); extern void blk_queue_logical_block_size(struct request_queue *, unsigned short); -extern void blk_queue_physical_block_size(struct request_queue *, unsigned short); +extern void blk_queue_physical_block_size(struct request_queue *, unsigned int); extern void blk_queue_alignment_offset(struct request_queue *q, unsigned int alignment); extern void blk_limits_io_min(struct queue_limits *limits, unsigned int min); @@ -1086,7 +1089,7 @@ return q->limits.physical_block_size; } -static inline int bdev_physical_block_size(struct block_device *bdev) +static inline unsigned int bdev_physical_block_size(struct block_device *bdev) { return queue_physical_block_size(bdev_get_queue(bdev)); } --- 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/serial.h +++ linux-2.6.35/include/linux/usb/serial.h @@ -271,6 +271,8 @@ int (*tiocmget)(struct tty_struct *tty, struct file *file); int (*tiocmset)(struct tty_struct *tty, struct file *file, unsigned int set, unsigned int clear); + int (*get_icount)(struct tty_struct *tty, + struct serial_icounter_struct *icount); /* Called by the tty layer for port level work. There may or may not be an attached tty at this point */ void (*dtr_rts)(struct usb_serial_port *port, int on); --- 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/mfd/wm8994/pdata.h +++ linux-2.6.35/include/linux/mfd/wm8994/pdata.h @@ -29,7 +29,7 @@ #define WM8994_CONFIGURE_GPIO 0x8000 #define WM8994_DRC_REGS 5 -#define WM8994_EQ_REGS 19 +#define WM8994_EQ_REGS 20 /** * DRC configurations are specified with a label and a set of register --- 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 */ @@ -1150,6 +1151,8 @@ /* Initialise core socket variables */ extern void sock_init_data(struct socket *sock, struct sock *sk); +extern void sk_filter_release_rcu(struct rcu_head *rcu); + /** * sk_filter_release - release a socket filter * @fp: filter to remove @@ -1160,7 +1163,7 @@ static inline void sk_filter_release(struct sk_filter *fp) { if (atomic_dec_and_test(&fp->refcnt)) - kfree(fp); + call_rcu_bh(&fp->rcu, sk_filter_release_rcu); } static inline void sk_filter_uncharge(struct sock *sk, struct sk_filter *fp) --- linux-2.6.35.orig/include/net/mac80211.h +++ linux-2.6.35/include/net/mac80211.h @@ -287,6 +287,9 @@ * @IEEE80211_TX_CTL_LDPC: tells the driver to use LDPC for this frame * @IEEE80211_TX_CTL_STBC: Enables Space-Time Block Coding (STBC) for this * frame and selects the maximum number of streams that it can use. + * + * Note: If you have to add new flags to the enumeration, then don't + * forget to update %IEEE80211_TX_TEMPORARY_FLAGS when necessary. */ enum mac80211_tx_control_flags { IEEE80211_TX_CTL_REQ_TX_STATUS = BIT(0), @@ -315,6 +318,19 @@ #define IEEE80211_TX_CTL_STBC_SHIFT 23 }; +/* + * This definition is used as a mask to clear all temporary flags, which are + * set by the tx handlers for each transmission attempt by the mac80211 stack. + */ +#define IEEE80211_TX_TEMPORARY_FLAGS (IEEE80211_TX_CTL_NO_ACK | \ + IEEE80211_TX_CTL_CLEAR_PS_FILT | IEEE80211_TX_CTL_FIRST_FRAGMENT | \ + IEEE80211_TX_CTL_SEND_AFTER_DTIM | IEEE80211_TX_CTL_AMPDU | \ + IEEE80211_TX_STAT_TX_FILTERED | IEEE80211_TX_STAT_ACK | \ + IEEE80211_TX_STAT_AMPDU | IEEE80211_TX_STAT_AMPDU_NO_BACK | \ + IEEE80211_TX_CTL_RATE_CTRL_PROBE | IEEE80211_TX_CTL_PSPOLL_RESPONSE | \ + IEEE80211_TX_CTL_MORE_FRAMES | IEEE80211_TX_CTL_LDPC | \ + IEEE80211_TX_CTL_STBC) + /** * enum mac80211_rate_control_flags - per-rate flags set by the * Rate Control algorithm. --- linux-2.6.35.orig/include/net/af_unix.h +++ linux-2.6.35/include/net/af_unix.h @@ -10,6 +10,7 @@ extern void unix_notinflight(struct file *fp); extern void unix_gc(void); extern void wait_for_unix_gc(void); +extern struct sock *unix_get_socket(struct file *filp); #define UNIX_HASH_SIZE 256 @@ -23,7 +24,8 @@ }; struct unix_skb_parms { - struct ucred creds; /* Skb credentials */ + struct pid *pid; /* Skb credentials */ + const struct cred *cred; struct scm_fp_list *fp; /* Passed files */ #ifdef CONFIG_SECURITY_NETWORK u32 secid; /* Security ID */ @@ -31,7 +33,6 @@ }; #define UNIXCB(skb) (*(struct unix_skb_parms *)&((skb)->cb)) -#define UNIXCREDS(skb) (&UNIXCB((skb)).creds) #define UNIXSID(skb) (&UNIXCB((skb)).secid) #define unix_state_lock(s) spin_lock(&unix_sk(s)->lock) @@ -56,6 +57,7 @@ spinlock_t lock; unsigned int gc_candidate : 1; unsigned int gc_maybe_cycle : 1; + unsigned char recursion_level; struct socket_wq peer_wq; }; #define unix_sk(__sk) ((struct unix_sock *)__sk) --- 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/scm.h +++ linux-2.6.35/include/net/scm.h @@ -19,6 +19,8 @@ }; struct scm_cookie { + struct pid *pid; /* Skb credentials */ + const struct cred *cred; struct ucred creds; /* Skb credentials */ struct scm_fp_list *fp; /* Passed files */ #ifdef CONFIG_SECURITY_NETWORK @@ -42,8 +44,27 @@ { } #endif /* CONFIG_SECURITY_NETWORK */ +static __inline__ void scm_set_cred(struct scm_cookie *scm, + struct pid *pid, const struct cred *cred) +{ + scm->pid = get_pid(pid); + scm->cred = get_cred(cred); + cred_to_ucred(pid, cred, &scm->creds); +} + +static __inline__ void scm_destroy_cred(struct scm_cookie *scm) +{ + put_pid(scm->pid); + scm->pid = NULL; + + if (scm->cred) + put_cred(scm->cred); + scm->cred = NULL; +} + static __inline__ void scm_destroy(struct scm_cookie *scm) { + scm_destroy_cred(scm); if (scm && scm->fp) __scm_destroy(scm); } @@ -51,10 +72,7 @@ static __inline__ int scm_send(struct socket *sock, struct msghdr *msg, struct scm_cookie *scm) { - struct task_struct *p = current; - scm->creds.uid = current_uid(); - scm->creds.gid = current_gid(); - scm->creds.pid = task_tgid_vnr(p); + scm_set_cred(scm, task_tgid(current), current_cred()); scm->fp = NULL; unix_get_peersec_dgram(sock, scm); if (msg->msg_controllen <= 0) @@ -96,6 +114,8 @@ if (test_bit(SOCK_PASSCRED, &sock->flags)) put_cmsg(msg, SOL_SOCKET, SCM_CREDENTIALS, sizeof(scm->creds), &scm->creds); + scm_destroy_cred(scm); + scm_passec(sock, msg, scm); if (!scm->fp) --- 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/drmP.h +++ linux-2.6.35/include/drm/drmP.h @@ -802,7 +802,6 @@ */ int (*gem_init_object) (struct drm_gem_object *obj); void (*gem_free_object) (struct drm_gem_object *obj); - void (*gem_free_object_unlocked) (struct drm_gem_object *obj); /* vga arb irq handler */ void (*vgaarb_irq)(struct drm_device *dev, bool state); @@ -1149,6 +1148,7 @@ extern int drm_mmap(struct file *filp, struct vm_area_struct *vma); extern int drm_mmap_locked(struct file *filp, struct vm_area_struct *vma); extern void drm_vm_open_locked(struct vm_area_struct *vma); +extern void drm_vm_close_locked(struct vm_area_struct *vma); extern resource_size_t drm_core_get_map_ofs(struct drm_local_map * map); extern resource_size_t drm_core_get_reg_ofs(struct drm_device *dev); extern unsigned int drm_poll(struct file *filp, struct poll_table_struct *wait); @@ -1430,7 +1430,6 @@ void drm_gem_destroy(struct drm_device *dev); void drm_gem_object_release(struct drm_gem_object *obj); void drm_gem_object_free(struct kref *kref); -void drm_gem_object_free_unlocked(struct kref *kref); struct drm_gem_object *drm_gem_object_alloc(struct drm_device *dev, size_t size); int drm_gem_object_init(struct drm_device *dev, @@ -1456,8 +1455,12 @@ static inline void drm_gem_object_unreference_unlocked(struct drm_gem_object *obj) { - if (obj != NULL) - kref_put(&obj->refcount, drm_gem_object_free_unlocked); + if (obj != NULL) { + struct drm_device *dev = obj->dev; + mutex_lock(&dev->struct_mutex); + kref_put(&obj->refcount, drm_gem_object_free); + mutex_unlock(&dev->struct_mutex); + } } int drm_gem_handle_create(struct drm_file *file_priv, --- linux-2.6.35.orig/include/drm/drm_pciids.h +++ linux-2.6.35/include/drm/drm_pciids.h @@ -85,7 +85,6 @@ {0x1002, 0x5460, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY}, \ {0x1002, 0x5462, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY}, \ {0x1002, 0x5464, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY}, \ - {0x1002, 0x5657, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_NEW_MEMMAP}, \ {0x1002, 0x5548, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_NEW_MEMMAP}, \ {0x1002, 0x5549, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_NEW_MEMMAP}, \ {0x1002, 0x554A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_NEW_MEMMAP}, \ @@ -103,6 +102,7 @@ {0x1002, 0x564F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV410|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ {0x1002, 0x5652, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV410|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ {0x1002, 0x5653, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV410|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ + {0x1002, 0x5657, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV410|RADEON_NEW_MEMMAP}, \ {0x1002, 0x5834, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS300|RADEON_IS_IGP}, \ {0x1002, 0x5835, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS300|RADEON_IS_IGP|RADEON_IS_MOBILITY}, \ {0x1002, 0x5954, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS480|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_IS_IGPGART}, \ @@ -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/wm8900.c +++ linux-2.6.35/sound/soc/codecs/wm8900.c @@ -188,7 +188,6 @@ { switch (reg) { case WM8900_REG_ID: - case WM8900_REG_POWER1: return 1; default: return 0; @@ -1236,11 +1235,6 @@ goto err; } - /* Read back from the chip */ - reg = snd_soc_read(codec, WM8900_REG_POWER1); - reg = (reg >> 12) & 0xf; - dev_info(&i2c->dev, "WM8900 revision %d\n", reg); - wm8900_reset(codec); /* Turn the chip on */ --- linux-2.6.35.orig/sound/soc/codecs/wm8580.c +++ linux-2.6.35/sound/soc/codecs/wm8580.c @@ -171,7 +171,7 @@ static const u16 wm8580_reg[] = { 0x0121, 0x017e, 0x007d, 0x0014, /*R3*/ 0x0121, 0x017e, 0x007d, 0x0194, /*R7*/ - 0x001c, 0x0002, 0x0002, 0x00c2, /*R11*/ + 0x0010, 0x0002, 0x0002, 0x00c2, /*R11*/ 0x0182, 0x0082, 0x000a, 0x0024, /*R15*/ 0x0009, 0x0000, 0x00ff, 0x0000, /*R19*/ 0x00ff, 0x00ff, 0x00ff, 0x00ff, /*R23*/ @@ -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/wm_hubs.c +++ linux-2.6.35/sound/soc/codecs/wm_hubs.c @@ -293,7 +293,7 @@ SOC_DOUBLE_R("Speaker ZC Switch", WM8993_SPEAKER_VOLUME_LEFT, WM8993_SPEAKER_VOLUME_RIGHT, 7, 1, 0), -SOC_DOUBLE_TLV("Speaker Boost Volume", WM8993_SPKOUT_BOOST, 0, 3, 7, 0, +SOC_DOUBLE_TLV("Speaker Boost Volume", WM8993_SPKOUT_BOOST, 3, 0, 7, 0, spkboost_tlv), SOC_ENUM("Speaker Reference", speaker_ref), SOC_ENUM("Speaker Mode", speaker_mode), --- linux-2.6.35.orig/sound/soc/codecs/wm8961.c +++ linux-2.6.35/sound/soc/codecs/wm8961.c @@ -711,7 +711,7 @@ if (fs <= 24000) reg |= WM8961_DACSLOPE; else - reg &= WM8961_DACSLOPE; + reg &= ~WM8961_DACSLOPE; snd_soc_write(codec, WM8961_ADC_DAC_CONTROL_2, reg); return 0; @@ -736,7 +736,7 @@ freq /= 2; } else { dev_dbg(codec->dev, "Using MCLK/1 for %dHz MCLK\n", freq); - reg &= WM8961_MCLKDIV; + reg &= ~WM8961_MCLKDIV; } snd_soc_write(codec, WM8961_CLOCKING1, reg); --- 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/soc/codecs/wm8955.c +++ linux-2.6.35/sound/soc/codecs/wm8955.c @@ -384,7 +384,8 @@ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); struct wm8955_priv *wm8955 = snd_soc_codec_get_drvdata(codec); - return wm8955->deemph; + ucontrol->value.enumerated.item[0] = wm8955->deemph; + return 0; } static int wm8955_put_deemph(struct snd_kcontrol *kcontrol, --- linux-2.6.35.orig/sound/soc/codecs/wm8904.c +++ linux-2.6.35/sound/soc/codecs/wm8904.c @@ -820,7 +820,8 @@ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); struct wm8904_priv *wm8904 = snd_soc_codec_get_drvdata(codec); - return wm8904->deemph; + ucontrol->value.enumerated.item[0] = wm8904->deemph; + return 0; } static int wm8904_put_deemph(struct snd_kcontrol *kcontrol, --- 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/soundcard.c +++ linux-2.6.35/sound/oss/soundcard.c @@ -86,7 +86,7 @@ int i, n; for (i = 0; i < num_mixer_volumes; i++) { - if (strcmp(name, mixer_vols[i].name) == 0) { + if (strncmp(name, mixer_vols[i].name, 32) == 0) { if (present) mixer_vols[i].num = i; return mixer_vols[i].levels; @@ -98,7 +98,7 @@ } n = num_mixer_volumes++; - strcpy(mixer_vols[n].name, name); + strncpy(mixer_vols[n].name, name, 32); if (present) mixer_vols[n].num = n; @@ -389,11 +389,11 @@ case SND_DEV_DSP: case SND_DEV_DSP16: case SND_DEV_AUDIO: - return audio_ioctl(dev, file, cmd, p); + ret = audio_ioctl(dev, file, cmd, p); break; case SND_DEV_MIDIN: - return MIDIbuf_ioctl(dev, file, cmd, p); + ret = MIDIbuf_ioctl(dev, file, cmd, p); break; } --- 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/rawmidi.c +++ linux-2.6.35/sound/core/rawmidi.c @@ -535,13 +535,15 @@ { struct snd_rawmidi_file *rfile; struct snd_rawmidi *rmidi; + struct module *module; rfile = file->private_data; rmidi = rfile->rmidi; rawmidi_release_priv(rfile); kfree(rfile); + module = rmidi->card->module; snd_card_file_remove(rmidi->card, file); - module_put(rmidi->card->module); + module_put(module); return 0; } --- 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/control.c +++ linux-2.6.35/sound/core/control.c @@ -31,6 +31,7 @@ /* max number of user-defined controls */ #define MAX_USER_CONTROLS 32 +#define MAX_CONTROL_COUNT 1028 struct snd_kctl_ioctl { struct list_head list; /* list of all ioctls */ @@ -195,6 +196,10 @@ if (snd_BUG_ON(!control || !control->count)) return NULL; + + if (control->count > MAX_CONTROL_COUNT) + return NULL; + kctl = kzalloc(sizeof(*kctl) + sizeof(struct snd_kcontrol_volatile) * control->count, GFP_KERNEL); if (kctl == NULL) { snd_printk(KERN_ERR "Cannot allocate control instance\n"); --- 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/core/oss/pcm_oss.c +++ linux-2.6.35/sound/core/oss/pcm_oss.c @@ -1510,16 +1510,19 @@ static int snd_pcm_oss_reset(struct snd_pcm_oss_file *pcm_oss_file) { struct snd_pcm_substream *substream; + struct snd_pcm_runtime *runtime; + int i; - substream = pcm_oss_file->streams[SNDRV_PCM_STREAM_PLAYBACK]; - if (substream != NULL) { - snd_pcm_kernel_ioctl(substream, SNDRV_PCM_IOCTL_DROP, NULL); - substream->runtime->oss.prepare = 1; - } - substream = pcm_oss_file->streams[SNDRV_PCM_STREAM_CAPTURE]; - if (substream != NULL) { + for (i = 0; i < 2; i++) { + substream = pcm_oss_file->streams[i]; + if (!substream) + continue; + runtime = substream->runtime; snd_pcm_kernel_ioctl(substream, SNDRV_PCM_IOCTL_DROP, NULL); - substream->runtime->oss.prepare = 1; + runtime->oss.prepare = 1; + runtime->oss.buffer_used = 0; + runtime->oss.prev_hw_ptr_period = 0; + runtime->oss.period_ptr = 0; } return 0; } --- linux-2.6.35.orig/sound/core/oss/mixer_oss.c +++ linux-2.6.35/sound/core/oss/mixer_oss.c @@ -618,8 +618,10 @@ if (numid == ID_UNKNOWN) return; down_read(&card->controls_rwsem); - if ((kctl = snd_ctl_find_numid(card, numid)) == NULL) + if ((kctl = snd_ctl_find_numid(card, numid)) == NULL) { + up_read(&card->controls_rwsem); return; + } uinfo = kzalloc(sizeof(*uinfo), GFP_KERNEL); uctl = kzalloc(sizeof(*uctl), GFP_KERNEL); if (uinfo == NULL || uctl == NULL) @@ -658,7 +660,7 @@ return; down_read(&card->controls_rwsem); if ((kctl = snd_ctl_find_numid(card, numid)) == NULL) { - up_read(&fmixer->card->controls_rwsem); + up_read(&card->controls_rwsem); return; } uinfo = kzalloc(sizeof(*uinfo), GFP_KERNEL); @@ -797,7 +799,7 @@ uctl = kzalloc(sizeof(*uctl), GFP_KERNEL); if (uinfo == NULL || uctl == NULL) { err = -ENOMEM; - goto __unlock; + goto __free_only; } down_read(&card->controls_rwsem); kctl = snd_mixer_oss_test_id(mixer, "Capture Source", 0); @@ -826,6 +828,7 @@ err = 0; __unlock: up_read(&card->controls_rwsem); + __free_only: kfree(uctl); kfree(uinfo); return err; @@ -847,7 +850,7 @@ uctl = kzalloc(sizeof(*uctl), GFP_KERNEL); if (uinfo == NULL || uctl == NULL) { err = -ENOMEM; - goto __unlock; + goto __free_only; } down_read(&card->controls_rwsem); kctl = snd_mixer_oss_test_id(mixer, "Capture Source", 0); @@ -880,6 +883,7 @@ err = 0; __unlock: up_read(&card->controls_rwsem); + __free_only: kfree(uctl); kfree(uinfo); return err; --- 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 @@ -1860,6 +1866,12 @@ }, { .subvendor = 0x1028, + .subdevice = 0x0182, + .name = "Dell Latitude D610", /* STAC9750/51 */ + .type = AC97_TUNE_HP_ONLY + }, + { + .subvendor = 0x1028, .subdevice = 0x0186, .name = "Dell Latitude D810", /* cf. Malone #41015 */ .type = AC97_TUNE_HP_MUTE_LED --- 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,20 +3020,26 @@ [CXT5066_DELL_VOSTO] = "dell-vostro", [CXT5066_IDEAPAD] = "ideapad", [CXT5066_THINKPAD] = "thinkpad", + [CXT5066_HP_LAPTOP] = "hp-laptop", }; static struct snd_pci_quirk cxt5066_cfg_tbl[] = { SND_PCI_QUIRK(0x14f1, 0x0101, "Conexant Reference board", CXT5066_LAPTOP), - SND_PCI_QUIRK(0x1028, 0x02f5, "Dell", - CXT5066_DELL_LAPTOP), + SND_PCI_QUIRK(0x1028, 0x02f5, "Dell Vostro 320", CXT5066_IDEAPAD), 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(0x1043, 0x13f3, "Asus A52J", 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, 0x21c5, "Thinkpad Edge 13", CXT5066_THINKPAD), SND_PCI_QUIRK(0x17aa, 0x21b3, "Thinkpad Edge 13 (197)", CXT5066_IDEAPAD), + SND_PCI_QUIRK(0x17aa, 0x21c8, "Thinkpad Edge 11", CXT5066_THINKPAD), SND_PCI_QUIRK(0x17aa, 0x21b4, "Thinkpad Edge", CXT5066_IDEAPAD), SND_PCI_QUIRK(0x17aa, 0x3a0d, "ideapad", CXT5066_IDEAPAD), SND_PCI_QUIRK(0x17aa, 0x215e, "Lenovo Thinkpad", CXT5066_THINKPAD), @@ -3031,6 +3095,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 @@ -286,6 +286,7 @@ unsigned int platform_type:1; unsigned int swap:1; unsigned int override:1; + unsigned int fixup:1; /* Means that this sku is set by driver, not read from hw */ }; struct alc_spec { @@ -1261,6 +1262,11 @@ spec->unsol_event = alc_sku_unsol_event; } +/* Could be any non-zero and even value. When used as fixup, tells + * the driver to ignore any present sku defines. + */ +#define ALC_FIXUP_SKU_IGNORE (2) + static int alc_auto_parse_customize_define(struct hda_codec *codec) { unsigned int ass, tmp, i; @@ -1269,6 +1275,13 @@ spec->cdefine.enable_pcbeep = 1; /* assume always enabled */ + if (spec->cdefine.fixup) { + ass = spec->cdefine.sku_cfg; + if (ass == ALC_FIXUP_SKU_IGNORE) + return -1; + goto do_sku; + } + ass = codec->subsystem_id & 0xffff; if (ass != codec->bus->pci->subsystem_device && (ass & 1)) goto do_sku; @@ -1336,6 +1349,13 @@ unsigned nid; struct alc_spec *spec = codec->spec; + if (spec->cdefine.fixup) { + ass = spec->cdefine.sku_cfg; + if (ass == ALC_FIXUP_SKU_IGNORE) + return 0; + goto do_sku; + } + ass = codec->subsystem_id & 0xffff; if ((ass != codec->bus->pci->subsystem_device) && (ass & 1)) goto do_sku; @@ -1391,6 +1411,7 @@ spec->init_amp = ALC_INIT_GPIO3; break; case 5: + default: spec->init_amp = ALC_INIT_DEFAULT; break; } @@ -1455,6 +1476,7 @@ }; struct alc_fixup { + unsigned int sku; const struct alc_pincfg *pins; const struct hda_verb *verbs; }; @@ -1465,12 +1487,22 @@ int pre_init) { const struct alc_pincfg *cfg; + struct alc_spec *spec; quirk = snd_pci_quirk_lookup(codec->bus->pci, quirk); if (!quirk) return; fix += quirk->value; cfg = fix->pins; + if (pre_init && fix->sku) { +#ifdef CONFIG_SND_DEBUG_VERBOSE + snd_printdd(KERN_INFO "hda_codec: %s: Apply sku override for %s\n", + codec->chip_name, quirk->name); +#endif + spec = codec->spec; + spec->cdefine.sku_cfg = fix->sku; + spec->cdefine.fixup = 1; + } if (pre_init && cfg) { #ifdef CONFIG_SND_DEBUG_VERBOSE snd_printdd(KERN_INFO "hda_codec: %s: Apply pincfg for %s\n", @@ -4239,6 +4271,7 @@ SND_PCI_QUIRK(0x1734, 0x10b0, "Fujitsu", ALC880_FUJITSU), SND_PCI_QUIRK(0x1854, 0x0018, "LG LW20", ALC880_LG_LW), SND_PCI_QUIRK(0x1854, 0x003b, "LG", ALC880_LG), + SND_PCI_QUIRK(0x1854, 0x005f, "LG P1 Express", ALC880_LG), SND_PCI_QUIRK(0x1854, 0x0068, "LG w1", ALC880_LG), SND_PCI_QUIRK(0x1854, 0x0077, "LG LW25", ALC880_LG_LW), SND_PCI_QUIRK(0x19db, 0x4188, "TCL S700", ALC880_TCL_S700), @@ -5183,6 +5216,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 +6897,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 +7038,7 @@ .num_items = 4, .items = { { "Mic", 0x0 }, - { "iMic", 0x1 }, + { "Int Mic", 0x1 }, { "Line", 0x2 }, { "CD", 0x4 }, }, @@ -8573,8 +8608,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 */ }; @@ -9470,7 +9505,6 @@ SND_PCI_QUIRK(0x17aa, 0x3bfc, "Lenovo NB0763", ALC883_LENOVO_NB0763), SND_PCI_QUIRK(0x17aa, 0x3bfd, "Lenovo NB0763", ALC883_LENOVO_NB0763), SND_PCI_QUIRK(0x17aa, 0x101d, "Lenovo Sky", ALC888_LENOVO_SKY), - SND_PCI_QUIRK(0x17c0, 0x4071, "MEDION MD2", ALC883_MEDION_MD2), SND_PCI_QUIRK(0x17c0, 0x4085, "MEDION MD96630", ALC888_LENOVO_MS7195_DIG), SND_PCI_QUIRK(0x17f2, 0x5000, "Albatron KI690-AM2", ALC883_6ST_DIG), SND_PCI_QUIRK(0x1991, 0x5625, "Haier W66", ALC883_HAIER_W66), @@ -10265,7 +10299,8 @@ * Pin config fixes */ enum { - PINFIX_ABIT_AW9D_MAX + PINFIX_ABIT_AW9D_MAX, + PINFIX_ACER_ASPIRE_7736, }; static struct alc_pincfg alc882_abit_aw9d_pinfix[] = { @@ -10279,10 +10314,14 @@ [PINFIX_ABIT_AW9D_MAX] = { .pins = alc882_abit_aw9d_pinfix }, + [PINFIX_ACER_ASPIRE_7736] = { + .sku = ALC_FIXUP_SKU_IGNORE, + }, }; static struct snd_pci_quirk alc882_fixup_tbl[] = { SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", PINFIX_ABIT_AW9D_MAX), + SND_PCI_QUIRK(0x1025, 0x0296, "Acer Aspire 7736z", PINFIX_ACER_ASPIRE_7736), {} }; @@ -10539,8 +10578,6 @@ codec->spec = spec; - alc_auto_parse_customize_define(codec); - switch (codec->vendor_id) { case 0x10ec0882: case 0x10ec0885: @@ -10568,6 +10605,8 @@ if (board_config == ALC882_AUTO) alc_pick_fixup(codec, alc882_fixup_tbl, alc882_fixups, 1); + alc_auto_parse_customize_define(codec); + if (board_config == ALC882_AUTO) { /* automatic parse from the BIOS config */ err = alc882_parse_auto_config(codec); @@ -13024,6 +13063,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 +13344,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 +14267,7 @@ enum { ALC269_FIXUP_SONY_VAIO, + ALC269_FIXUP_DELL_M101Z, }; static const struct hda_verb alc269_sony_vaio_fixup_verbs[] = { @@ -14238,10 +14279,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), {} }; @@ -16288,7 +16339,7 @@ static int alc861vd_auto_create_input_ctls(struct hda_codec *codec, const struct auto_pin_cfg *cfg) { - return alc_auto_create_input_ctls(codec, cfg, 0x15, 0x09, 0); + return alc_auto_create_input_ctls(codec, cfg, 0x0b, 0x22, 0); } @@ -18343,6 +18394,8 @@ return 0x02; else if (nid >= 0x0c && nid <= 0x0e) return nid - 0x0c + 0x02; + else if (nid == 0x26) /* ALC887-VD has this DAC too */ + return 0x25; else return 0; } @@ -18351,7 +18404,7 @@ static hda_nid_t alc662_dac_to_mix(struct hda_codec *codec, hda_nid_t pin, hda_nid_t dac) { - hda_nid_t mix[4]; + hda_nid_t mix[5]; int i, num; num = snd_hda_get_connections(codec, pin, mix, ARRAY_SIZE(mix)); @@ -18666,6 +18719,36 @@ alc_inithook(codec); } +enum { + ALC662_FIXUP_ASPIRE, + ALC662_FIXUP_IDEAPAD, +}; + +static const struct alc_fixup alc662_fixups[] = { + [ALC662_FIXUP_ASPIRE] = { + .pins = (const struct alc_pincfg[]) { + { 0x15, 0x99130112 }, /* subwoofer */ + { } + } + }, + [ALC662_FIXUP_IDEAPAD] = { + .pins = (const struct alc_pincfg[]) { + { 0x17, 0x99130112 }, /* subwoofer */ + { } + } + }, +}; + +static struct snd_pci_quirk alc662_fixup_tbl[] = { + SND_PCI_QUIRK(0x1025, 0x038b, "Acer Aspire 8943G", ALC662_FIXUP_ASPIRE), + SND_PCI_QUIRK(0x144d, 0xc051, "Samsung R720", ALC662_FIXUP_IDEAPAD), + SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo Ideapad Y550P", ALC662_FIXUP_IDEAPAD), + SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Ideapad Y550", ALC662_FIXUP_IDEAPAD), + {} +}; + + + static int patch_alc662(struct hda_codec *codec) { struct alc_spec *spec; @@ -18698,6 +18781,7 @@ } if (board_config == ALC662_AUTO) { + alc_pick_fixup(codec, alc662_fixup_tbl, alc662_fixups, 1); /* automatic parse from the BIOS config */ err = alc662_parse_auto_config(codec); if (err < 0) { @@ -18756,8 +18840,11 @@ spec->vmaster_nid = 0x02; codec->patch_ops = alc_patch_ops; - if (board_config == ALC662_AUTO) + if (board_config == ALC662_AUTO) { spec->init_hook = alc662_auto_init; + alc_pick_fixup(codec, alc662_fixup_tbl, alc662_fixups, 0); + } + #ifdef CONFIG_SND_HDA_POWER_SAVE if (!spec->loopback.amplist) spec->loopback.amplist = alc662_loopbacks; @@ -18770,7 +18857,10 @@ { if ((alc_read_coef_idx(codec, 0) & 0x00f0)==0x0030){ kfree(codec->chip_name); - codec->chip_name = kstrdup("ALC888-VD", GFP_KERNEL); + if (codec->vendor_id == 0x10ec0887) + codec->chip_name = kstrdup("ALC887-VD", GFP_KERNEL); + else + codec->chip_name = kstrdup("ALC888-VD", GFP_KERNEL); if (!codec->chip_name) { alc_free(codec); return -ENOMEM; @@ -18812,7 +18902,7 @@ { .id = 0x10ec0885, .rev = 0x100103, .name = "ALC889A", .patch = patch_alc882 }, { .id = 0x10ec0885, .name = "ALC885", .patch = patch_alc882 }, - { .id = 0x10ec0887, .name = "ALC887", .patch = patch_alc882 }, + { .id = 0x10ec0887, .name = "ALC887", .patch = patch_alc888 }, { .id = 0x10ec0888, .rev = 0x100101, .name = "ALC1200", .patch = patch_alc882 }, { .id = 0x10ec0888, .name = "ALC888", .patch = patch_alc888 }, --- linux-2.6.35.orig/sound/pci/hda/patch_analog.c +++ linux-2.6.35/sound/pci/hda/patch_analog.c @@ -3641,6 +3641,7 @@ /* Lenovo Thinkpad T61/X61 */ SND_PCI_QUIRK_VENDOR(0x17aa, "Lenovo Thinkpad", AD1984_THINKPAD), SND_PCI_QUIRK(0x1028, 0x0214, "Dell T3400", AD1984_DELL_DESKTOP), + SND_PCI_QUIRK(0x1028, 0x0233, "Dell Latitude E6400", AD1984_DELL_DESKTOP), {} }; --- linux-2.6.35.orig/sound/pci/hda/hda_intel.c +++ linux-2.6.35/sound/pci/hda/hda_intel.c @@ -457,6 +457,7 @@ AZX_DRIVER_ULI, AZX_DRIVER_NVIDIA, AZX_DRIVER_TERA, + AZX_DRIVER_CTX, AZX_DRIVER_GENERIC, AZX_NUM_DRIVERS, /* keep this as last entry */ }; @@ -472,6 +473,7 @@ [AZX_DRIVER_ULI] = "HDA ULI M5461", [AZX_DRIVER_NVIDIA] = "HDA NVidia", [AZX_DRIVER_TERA] = "HDA Teradici", + [AZX_DRIVER_CTX] = "HDA Creative", [AZX_DRIVER_GENERIC] = "HD-Audio Generic", }; @@ -562,7 +564,10 @@ /* reset the rirb hw write pointer */ azx_writew(chip, RIRBWP, ICH6_RIRBWP_RST); /* set N=1, get RIRB response interrupt for new entry */ - azx_writew(chip, RINTCNT, 1); + if (chip->driver_type == AZX_DRIVER_CTX) + azx_writew(chip, RINTCNT, 0xc0); + else + azx_writew(chip, RINTCNT, 1); /* enable rirb dma and response irq */ azx_writeb(chip, RIRBCTL, ICH6_RBCTL_DMA_EN | ICH6_RBCTL_IRQ_EN); spin_unlock_irq(&chip->reg_lock); @@ -1135,8 +1140,11 @@ /* clear rirb int */ status = azx_readb(chip, RIRBSTS); if (status & RIRB_INT_MASK) { - if (status & RIRB_INT_RESPONSE) + if (status & RIRB_INT_RESPONSE) { + if (chip->driver_type == AZX_DRIVER_CTX) + udelay(80); azx_update_rirb(chip); + } azx_writeb(chip, RIRBSTS, RIRB_INT_MASK); } @@ -2005,6 +2013,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 +2047,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; } @@ -2283,9 +2303,11 @@ */ static struct snd_pci_quirk position_fix_list[] __devinitdata = { SND_PCI_QUIRK(0x1025, 0x009f, "Acer Aspire 5110", POS_FIX_LPIB), + SND_PCI_QUIRK(0x1025, 0x026f, "Acer Aspire 5538", POS_FIX_LPIB), SND_PCI_QUIRK(0x1028, 0x01cc, "Dell D820", POS_FIX_LPIB), SND_PCI_QUIRK(0x1028, 0x01de, "Dell Precision 390", POS_FIX_LPIB), SND_PCI_QUIRK(0x1028, 0x01f6, "Dell Latitude 131L", POS_FIX_LPIB), + SND_PCI_QUIRK(0x1028, 0x0470, "Dell Inspiron 1120", POS_FIX_LPIB), SND_PCI_QUIRK(0x103c, 0x306d, "HP dv3", POS_FIX_LPIB), SND_PCI_QUIRK(0x1043, 0x813d, "ASUS P5AD2", POS_FIX_LPIB), SND_PCI_QUIRK(0x1043, 0x81b3, "ASUS", POS_FIX_LPIB), @@ -2790,10 +2812,10 @@ { PCI_DEVICE(PCI_VENDOR_ID_CREATIVE, PCI_ANY_ID), .class = PCI_CLASS_MULTIMEDIA_HD_AUDIO << 8, .class_mask = 0xffffff, - .driver_data = AZX_DRIVER_GENERIC }, + .driver_data = AZX_DRIVER_CTX }, #else /* this entry seems still valid -- i.e. without emu20kx chip */ - { PCI_DEVICE(0x1102, 0x0009), .driver_data = AZX_DRIVER_GENERIC }, + { PCI_DEVICE(0x1102, 0x0009), .driver_data = AZX_DRIVER_CTX }, #endif /* AMD/ATI Generic, PCI class code and Vendor ID for HD Audio */ { PCI_DEVICE(PCI_VENDOR_ID_ATI, PCI_ANY_ID), --- 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/patch_ca0110.c +++ linux-2.6.35/sound/pci/hda/patch_ca0110.c @@ -489,7 +489,7 @@ if (cfg->dig_outs && snd_hda_get_connections(codec, cfg->dig_out_pins[0], &spec->dig_out, 1) == 1) - spec->multiout.dig_out_nid = cfg->dig_out_pins[0]; + spec->multiout.dig_out_nid = spec->dig_out; } static int ca0110_parse_auto_config(struct hda_codec *codec) --- 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; @@ -1616,6 +1619,8 @@ static struct snd_pci_quirk stac92hd73xx_codec_id_cfg_tbl[] = { SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02a1, "Alienware M17x", STAC_ALIENWARE_M17X), + SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x043a, + "Alienware M17x", STAC_ALIENWARE_M17X), {} /* terminator */ }; @@ -1631,10 +1636,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 +1663,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 +1676,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 +3831,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 +5034,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 +5098,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 +5184,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 +5332,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 +5555,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 +5813,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 +5918,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 +6054,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 +6211,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/rme9652/hdsp.c +++ linux-2.6.35/sound/pci/rme9652/hdsp.c @@ -4609,6 +4609,7 @@ if (err < 0) return err; + memset(&info, 0, sizeof(info)); spin_lock_irqsave(&hdsp->lock, flags); info.pref_sync_ref = (unsigned char)hdsp_pref_sync_ref(hdsp); info.wordclock_sync_check = (unsigned char)hdsp_wc_sync_check(hdsp); --- linux-2.6.35.orig/sound/pci/rme9652/hdspm.c +++ linux-2.6.35/sound/pci/rme9652/hdspm.c @@ -4127,6 +4127,7 @@ case SNDRV_HDSPM_IOCTL_GET_CONFIG_INFO: + memset(&info, 0, sizeof(info)); spin_lock_irq(&hdspm->lock); info.pref_sync_ref = hdspm_pref_sync_ref(hdspm); info.wordclock_sync_check = hdspm_wc_sync_check(hdspm); --- linux-2.6.35.orig/sound/pci/oxygen/oxygen.c +++ linux-2.6.35/sound/pci/oxygen/oxygen.c @@ -543,6 +543,10 @@ chip->model.suspend = claro_suspend; chip->model.resume = claro_resume; chip->model.set_adc_params = set_ak5385_params; + chip->model.device_config = PLAYBACK_0_TO_I2S | + PLAYBACK_1_TO_SPDIF | + CAPTURE_0_FROM_I2S_2 | + CAPTURE_1_FROM_SPDIF; break; } if (id->driver_data == MODEL_MERIDIAN || --- 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;